Commit 0bf82ccc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 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
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -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)
+2 −2
Original line number Original line Diff line number Diff line
@@ -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__ */


+9 −1
Original line number Original line Diff line number Diff line
@@ -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,
				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;
	}
	}