Commit 0bf82ccc authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc64: Fix PCI resource mapping on sparc64
  sparc64: Kill annoying warning when building compat_binfmt_elf.o
  sparc32: kernel/trace/trace.c wants DIE_OOPS
  sparc64: Fix __copy_{to,from}_user_inatomic defines.
parents 391e572c 5769907a
...@@ -36,10 +36,10 @@ ...@@ -36,10 +36,10 @@
#define VPTE_SIZE (1 << (VA_BITS - PAGE_SHIFT + 3)) #define VPTE_SIZE (1 << (VA_BITS - PAGE_SHIFT + 3))
#endif #endif
#define TASK_SIZE ((unsigned long)-VPTE_SIZE)
#define TASK_SIZE_OF(tsk) \ #define TASK_SIZE_OF(tsk) \
(test_tsk_thread_flag(tsk,TIF_32BIT) ? \ (test_tsk_thread_flag(tsk,TIF_32BIT) ? \
(1UL << 32UL) : TASK_SIZE) (1UL << 32UL) : ((unsigned long)-VPTE_SIZE))
#define TASK_SIZE TASK_SIZE_OF(current)
#ifdef __KERNEL__ #ifdef __KERNEL__
#define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE) #define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE)
......
...@@ -265,8 +265,8 @@ extern long __strnlen_user(const char __user *, long len); ...@@ -265,8 +265,8 @@ extern long __strnlen_user(const char __user *, long len);
#define strlen_user __strlen_user #define strlen_user __strlen_user
#define strnlen_user __strnlen_user #define strnlen_user __strnlen_user
#define __copy_to_user_inatomic __copy_to_user #define __copy_to_user_inatomic ___copy_to_user
#define __copy_from_user_inatomic __copy_from_user #define __copy_from_user_inatomic ___copy_from_user
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
...@@ -889,6 +889,7 @@ static int __pci_mmap_make_offset(struct pci_dev *pdev, ...@@ -889,6 +889,7 @@ static int __pci_mmap_make_offset(struct pci_dev *pdev,
for (i = 0; i <= PCI_ROM_RESOURCE; i++) { for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
struct resource *rp = &pdev->resource[i]; struct resource *rp = &pdev->resource[i];
resource_size_t aligned_end;
/* Active? */ /* Active? */
if (!rp->flags) if (!rp->flags)
...@@ -906,8 +907,15 @@ static int __pci_mmap_make_offset(struct pci_dev *pdev, ...@@ -906,8 +907,15 @@ static int __pci_mmap_make_offset(struct pci_dev *pdev,
continue; continue;
} }
/* Align the resource end to the next page address.
* PAGE_SIZE intentionally added instead of (PAGE_SIZE - 1),
* because actually we need the address of the next byte
* after rp->end.
*/
aligned_end = (rp->end + PAGE_SIZE) & PAGE_MASK;
if ((rp->start <= user_paddr) && if ((rp->start <= user_paddr) &&
(user_paddr + user_size) <= (rp->end + 1UL)) (user_paddr + user_size) <= aligned_end)
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment