diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-06 17:58:22 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-06 17:58:22 -0800 | 
| commit | e4e88f31bcb5f05f24b9ae518d4ecb44e1a7774d (patch) | |
| tree | 9eef6998f5bbd1a2c999011d9e0151f00c6e7297 /arch/powerpc/mm/hugetlbpage-book3e.c | |
| parent | 9753dfe19a85e7e45a34a56f4cb2048bb4f50e27 (diff) | |
| parent | ef88e3911c0e0301e73fa3b3b2567aabdbe17cc4 (diff) | |
| download | olio-linux-3.10-e4e88f31bcb5f05f24b9ae518d4ecb44e1a7774d.tar.xz olio-linux-3.10-e4e88f31bcb5f05f24b9ae518d4ecb44e1a7774d.zip  | |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (185 commits)
  powerpc: fix compile error with 85xx/p1010rdb.c
  powerpc: fix compile error with 85xx/p1023_rds.c
  powerpc/fsl: add MSI support for the Freescale hypervisor
  arch/powerpc/sysdev/fsl_rmu.c: introduce missing kfree
  powerpc/fsl: Add support for Integrated Flash Controller
  powerpc/fsl: update compatiable on fsl 16550 uart nodes
  powerpc/85xx: fix PCI and localbus properties in p1022ds.dts
  powerpc/85xx: re-enable ePAPR byte channel driver in corenet32_smp_defconfig
  powerpc/fsl: Update defconfigs to enable some standard FSL HW features
  powerpc: Add TBI PHY node to first MDIO bus
  sbc834x: put full compat string in board match check
  powerpc/fsl-pci: Allow 64-bit PCIe devices to DMA to any memory address
  powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit
  offb: Fix setting of the pseudo-palette for >8bpp
  offb: Add palette hack for qemu "standard vga" framebuffer
  offb: Fix bug in calculating requested vram size
  powerpc/boot: Change the WARN to INFO for boot wrapper overlap message
  powerpc/44x: Fix build error on currituck platform
  powerpc/boot: Change the load address for the wrapper to fit the kernel
  powerpc/44x: Enable CRASH_DUMP for 440x
  ...
Fix up a trivial conflict in arch/powerpc/include/asm/cputime.h due to
the additional sparse-checking code for cputime_t.
Diffstat (limited to 'arch/powerpc/mm/hugetlbpage-book3e.c')
| -rw-r--r-- | arch/powerpc/mm/hugetlbpage-book3e.c | 21 | 
1 files changed, 11 insertions, 10 deletions
diff --git a/arch/powerpc/mm/hugetlbpage-book3e.c b/arch/powerpc/mm/hugetlbpage-book3e.c index 343ad0b8726..3bc700655fc 100644 --- a/arch/powerpc/mm/hugetlbpage-book3e.c +++ b/arch/powerpc/mm/hugetlbpage-book3e.c @@ -37,31 +37,32 @@ static inline int book3e_tlb_exists(unsigned long ea, unsigned long pid)  	return found;  } -void book3e_hugetlb_preload(struct mm_struct *mm, unsigned long ea, pte_t pte) +void book3e_hugetlb_preload(struct vm_area_struct *vma, unsigned long ea, +			    pte_t pte)  {  	unsigned long mas1, mas2;  	u64 mas7_3;  	unsigned long psize, tsize, shift;  	unsigned long flags; +	struct mm_struct *mm;  #ifdef CONFIG_PPC_FSL_BOOK3E -	int index, lz, ncams; -	struct vm_area_struct *vma; +	int index, ncams;  #endif  	if (unlikely(is_kernel_addr(ea)))  		return; +	mm = vma->vm_mm; +  #ifdef CONFIG_PPC_MM_SLICES -	psize = mmu_get_tsize(get_slice_psize(mm, ea)); -	tsize = mmu_get_psize(psize); +	psize = get_slice_psize(mm, ea); +	tsize = mmu_get_tsize(psize);  	shift = mmu_psize_defs[psize].shift;  #else -	vma = find_vma(mm, ea); -	psize = vma_mmu_pagesize(vma);	/* returns actual size in bytes */ -	asm (PPC_CNTLZL "%0,%1" : "=r" (lz) : "r" (psize)); -	shift = 31 - lz; -	tsize = 21 - lz; +	psize = vma_mmu_pagesize(vma); +	shift = __ilog2(psize); +	tsize = shift - 10;  #endif  	/*  |