diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-11-02 13:16:44 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-11-02 13:16:44 -0500 |
commit | 0bf82cccd1e17135f880c161bc7926f5b25df34c (patch) | |
tree | 45935237f81b08d34f52c7bf5fe8d3d3c6a8b11b | |
parent | 391e572cd1a63aee9c8d4c2d5e3dada91d86bc43 (diff) | |
parent | 5769907ade8dda7002b304c03ef9e4ee5c1e0821 (diff) |
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.
-rw-r--r-- | arch/sparc/include/asm/processor_64.h | 4 | ||||
-rw-r--r-- | arch/sparc/include/asm/uaccess_64.h | 4 | ||||
-rw-r--r-- | arch/sparc64/kernel/pci.c | 10 |
3 files changed, 13 insertions, 5 deletions
diff --git a/arch/sparc/include/asm/processor_64.h b/arch/sparc/include/asm/processor_64.h index 137a6bd72fc8..59fcebb8f440 100644 --- a/arch/sparc/include/asm/processor_64.h +++ b/arch/sparc/include/asm/processor_64.h | |||
@@ -36,10 +36,10 @@ | |||
36 | #define VPTE_SIZE (1 << (VA_BITS - PAGE_SHIFT + 3)) | 36 | #define VPTE_SIZE (1 << (VA_BITS - PAGE_SHIFT + 3)) |
37 | #endif | 37 | #endif |
38 | 38 | ||
39 | #define TASK_SIZE ((unsigned long)-VPTE_SIZE) | ||
40 | #define TASK_SIZE_OF(tsk) \ | 39 | #define TASK_SIZE_OF(tsk) \ |
41 | (test_tsk_thread_flag(tsk,TIF_32BIT) ? \ | 40 | (test_tsk_thread_flag(tsk,TIF_32BIT) ? \ |
42 | (1UL << 32UL) : TASK_SIZE) | 41 | (1UL << 32UL) : ((unsigned long)-VPTE_SIZE)) |
42 | #define TASK_SIZE TASK_SIZE_OF(current) | ||
43 | #ifdef __KERNEL__ | 43 | #ifdef __KERNEL__ |
44 | 44 | ||
45 | #define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE) | 45 | #define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE) |
diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h index 296ef30e05c8..c64e767a3e4b 100644 --- a/arch/sparc/include/asm/uaccess_64.h +++ b/arch/sparc/include/asm/uaccess_64.h | |||
@@ -265,8 +265,8 @@ extern long __strnlen_user(const char __user *, long len); | |||
265 | 265 | ||
266 | #define strlen_user __strlen_user | 266 | #define strlen_user __strlen_user |
267 | #define strnlen_user __strnlen_user | 267 | #define strnlen_user __strnlen_user |
268 | #define __copy_to_user_inatomic __copy_to_user | 268 | #define __copy_to_user_inatomic ___copy_to_user |
269 | #define __copy_from_user_inatomic __copy_from_user | 269 | #define __copy_from_user_inatomic ___copy_from_user |
270 | 270 | ||
271 | #endif /* __ASSEMBLY__ */ | 271 | #endif /* __ASSEMBLY__ */ |
272 | 272 | ||
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c index 242ac1ccae7d..bdb7c0a6d83d 100644 --- a/arch/sparc64/kernel/pci.c +++ b/arch/sparc64/kernel/pci.c | |||
@@ -889,6 +889,7 @@ static int __pci_mmap_make_offset(struct pci_dev *pdev, | |||
889 | 889 | ||
890 | for (i = 0; i <= PCI_ROM_RESOURCE; i++) { | 890 | for (i = 0; i <= PCI_ROM_RESOURCE; i++) { |
891 | struct resource *rp = &pdev->resource[i]; | 891 | struct resource *rp = &pdev->resource[i]; |
892 | resource_size_t aligned_end; | ||
892 | 893 | ||
893 | /* Active? */ | 894 | /* Active? */ |
894 | if (!rp->flags) | 895 | if (!rp->flags) |
@@ -906,8 +907,15 @@ static int __pci_mmap_make_offset(struct pci_dev *pdev, | |||
906 | continue; | 907 | continue; |
907 | } | 908 | } |
908 | 909 | ||
910 | /* Align the resource end to the next page address. | ||
911 | * PAGE_SIZE intentionally added instead of (PAGE_SIZE - 1), | ||
912 | * because actually we need the address of the next byte | ||
913 | * after rp->end. | ||
914 | */ | ||
915 | aligned_end = (rp->end + PAGE_SIZE) & PAGE_MASK; | ||
916 | |||
909 | if ((rp->start <= user_paddr) && | 917 | if ((rp->start <= user_paddr) && |
910 | (user_paddr + user_size) <= (rp->end + 1UL)) | 918 | (user_paddr + user_size) <= aligned_end) |
911 | break; | 919 | break; |
912 | } | 920 | } |
913 | 921 | ||