android_kernel_xiaomi_sdm845/arch/powerpc/mm
David Gibson 0895ecda79 powerpc/mm: Bring hugepage PTE accessor functions back into sync with normal accessors
The hugepage arch code provides a number of hook functions/macros
which mirror the functionality of various normal page pte access
functions.  Various changes in the normal page accessors (in
particular BenH's recent changes to the handling of lazy icache
flushing and PAGE_EXEC) have caused the hugepage versions to get out
of sync with the originals.  In some cases, this is a bug, at least on
some MMU types.

One of the reasons that some hooks were not identical to the normal
page versions, is that the fact we're dealing with a hugepage needed
to be passed down do use the correct dcache-icache flush function.
This patch makes the main flush_dcache_icache_page() function hugepage
aware (by checking for the PageCompound flag).  That in turn means we
can make set_huge_pte_at() just a call to set_pte_at() bringing it
back into sync.  As a bonus, this lets us remove the
hash_huge_page_do_lazy_icache() function, replacing it with a call to
the hash_page_do_lazy_icache() function it was based on.

Some other hugepage pte access hooks - huge_ptep_get_and_clear() and
huge_ptep_clear_flush() - are not so easily unified, but this patch at
least brings them back into sync with the current versions of the
corresponding normal page functions.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-10-30 17:21:23 +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: read buffer overflow 2009-08-20 10:27:12 +10: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 powerpc: Free a PTE bit on ppc64 with 64K pages 2008-06-30 22:30:53 +10:00
hash_native_64.c powerpc: Add 2.06 tlbie mnemonics 2009-05-21 15:44:21 +10:00
hash_utils_64.c powerpc/mm: Bring hugepage PTE accessor functions back into sync with normal accessors 2009-10-30 17:21:23 +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: Bring hugepage PTE accessor functions back into sync with normal accessors 2009-10-30 17:21:23 +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: Split mmu_context handling 2008-12-21 14:21:15 +11:00
mmu_context_nohash.c powerpc/mm: Fix switch_mmu_context to iterate of the proper list of cpus 2009-08-20 10:25:12 +10:00
mmu_decl.h powerpc/mm: Add support for SPARSEMEM_VMEMMAP on 64-bit Book3E 2009-08-20 10:25:10 +10: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] Provide a way to protect 4k subpages when using 64k pages 2008-01-24 10:06:01 +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