linux/arch/powerpc/mm
David Gibson 39adfa540f powerpc/mm: Fix bug in gup_hugepd()
Commit a4fe3ce769 introduced a new
get_user_pages() path for hugepages on powerpc.  Unfortunately, there
is a bug in it's loop logic, which can cause it to overrun the end of
the intended region.  This came about by copying the logic from the
normal page path, which assumes the address and end parameters have
been pagesize aligned at the top-level.  Since they're not *hugepage*
size aligned, the simplistic logic could step over the end of the gup
region without triggering the loop end condition.

This patch fixes the bug by using the technique that the normal page
path uses in levels above the lowest to truncate the ending address to
something we know we'll match with.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-11-27 14:24:30 +11:00
..
40x_mmu.c powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
44x_mmu.c powerpc: rework 4xx PTE access and TLB miss 2008-07-09 13:36:17 -04:00
dma-noncoherent.c powerpc: Fix up dma_alloc_coherent() on platforms without cache coherency. 2009-05-27 16:33:59 +10:00
fault.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
fsl_booke_mmu.c powerpc/fsl-booke: Rework TLB CAM code 2009-11-20 16:45:33 -06:00
gup.c powerpc/mm: Allow more flexible layouts for hugepage pagetables 2009-10-30 17:20:58 +11:00
hash_low_32.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
hash_low_64.S
hash_native_64.c powerpc: Add 2.06 tlbie mnemonics 2009-05-21 15:44:21 +10:00
hash_utils_64.c powerpc/mm: Fix bug in pagetable cache cleanup with CONFIG_PPC_SUBPAGE_PROT 2009-11-27 14:24:29 +11:00
highmem.c powerpc/mm: Make k(un)map_atomic out of line 2009-06-26 14:37:25 +10:00
hugetlbpage-hash64.c powerpc/mm: Bring hugepage PTE accessor functions back into sync with normal accessors 2009-10-30 17:21:23 +11:00
hugetlbpage.c powerpc/mm: Fix bug in gup_hugepd() 2009-11-27 14:24:30 +11:00
init_32.c kcore: use registerd physmem information 2009-09-23 07:39:41 -07:00
init_64.c powerpc/mm: Allow more flexible layouts for hugepage pagetables 2009-10-30 17:20:58 +11:00
Makefile powerpc/mm: Split hash MMU specific hugepage code into a new file 2009-10-30 17:20:59 +11:00
mem.c powerpc/mm: Bring hugepage PTE accessor functions back into sync with normal accessors 2009-10-30 17:21:23 +11:00
mmap_64.c powerpc/mm: Rename arch/powerpc/kernel/mmap.c to mmap_64.c 2009-03-24 13:47:33 +11:00
mmu_context_hash32.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
mmu_context_hash64.c powerpc/mm: Fix bug in pagetable cache cleanup with CONFIG_PPC_SUBPAGE_PROT 2009-11-27 14:24:29 +11:00
mmu_context_nohash.c powerpc/mm: Remove debug context clamping from nohash code 2009-11-05 16:41:59 +11:00
mmu_decl.h powerpc/fsl-booke: Rework TLB CAM code 2009-11-20 16:45:33 -06:00
numa.c powerpc: Set init_bootmem_done on NUMA platforms as well 2009-06-09 16:43:04 +10:00
pgtable_32.c powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
pgtable_64.c powerpc/mm: Add support for SPARSEMEM_VMEMMAP on 64-bit Book3E 2009-08-20 10:25:10 +10:00
pgtable.c powerpc/mm: Cleanup management of kmem_caches for pagetables 2009-10-30 17:20:57 +11:00
ppc_mmu_32.c powerpc/mm: Tweak PTE bit combination definitions 2009-03-24 13:47:33 +11:00
slb_low.S powerpc/mm: Fix hang accessing top of vmalloc space 2009-10-14 16:58:36 +11:00
slb.c powerpc/pseries: Fix to handle slb resize across migration 2009-09-02 16:19:01 +10:00
slice.c powerpc: is_hugepage_only_range() must account for both 4kB and 64kB slices 2009-01-16 16:15:16 +11:00
stab.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
subpage-prot.c powerpc/mm: Fix bug in pagetable cache cleanup with CONFIG_PPC_SUBPAGE_PROT 2009-11-27 14:24:29 +11:00
tlb_hash32.c powerpc/mm: Rework & cleanup page table freeing code path 2009-08-20 10:24:56 +10:00
tlb_hash64.c powerpc/mm: Make hpte_need_flush() correctly mask for multiple page sizes 2009-10-30 17:20:57 +11:00
tlb_low_64e.S powerpc/mm: Remove duplicated #include 2009-09-24 15:31:42 +10:00
tlb_nohash_low.S powerpc/booke: Move MMUCSR definition into mmu-book3e.h 2009-08-24 20:48:05 -05:00
tlb_nohash.c powerpc/mm: Add support for SPARSEMEM_VMEMMAP on 64-bit Book3E 2009-08-20 10:25:10 +10:00