android_kernel_xiaomi_sm8350/arch/powerpc/include/asm
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
..
iseries
8xx_immap.h
8253pit.h
abs_addr.h
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
asm-compat.h
atomic.h
auxvec.h
backlight.h
bitops.h powerpc: expose the multi-bit ops that underlie single-bit ops. 2009-08-20 10:12:23 +10:00
bitsperlong.h
bootx.h
btext.h
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h
cell-pmu.h
cell-regs.h powerpc/cell: Move CBE_IOPTE_* to <asm/cell-regs.h> 2009-08-20 10:29:26 +10:00
checksum.h
clk_interface.h
code-patching.h
compat.h
cpm1.h powerpc/cpm1: Remove IMAP_ADDR 2009-06-23 08:09:54 -05:00
cpm2.h
cpm.h
cputable.h
cputhreads.h powerpc/mm: Add HW threads support to no_hash TLB management 2009-08-20 10:12:37 +10:00
cputime.h cputime: Optimize jiffies_to_cputime(1) 2009-08-03 14:48:36 +02:00
current.h
dbdma.h
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
delay.h powerpc: Fix spin_event_timeout() to be robust over context switches 2009-07-08 13:50:24 +10:00
device.h powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
disassemble.h
div64.h
dma-mapping.h powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
dma.h
edac.h
eeh_event.h
eeh.h
elf.h
emergency-restart.h
emulated_ops.h
errno.h
exception-64e.h powerpc/book3e-64: Add helper function to setup IVORs 2009-08-28 14:24:13 +10:00
exception-64s.h powerpc: Remove use of a second scratch SPRG in STAB code 2009-08-20 10:12:28 +10:00
fb.h
fcntl.h
feature-fixups.h
firmware.h powerpc: Fix hypervisor TLB batching 2009-10-14 16:58:37 +11:00
fixmap.h
floppy.h
fs_pd.h
fsl_gtm.h
fsl_lbc.h
fsldma.h fsldma: Add DMA_SLAVE support 2009-09-08 17:53:04 -07:00
ftrace.h
futex.h
gpio.h
grackle.h
hardirq.h powerpc: Switch to asm-generic/hardirq.h 2009-08-20 10:29:27 +10:00
heathrow.h
highmem.h powerpc/mm: Make k(un)map_atomic out of line 2009-06-26 14:37:25 +10:00
hugetlb.h powerpc/mm: Bring hugepage PTE accessor functions back into sync with normal accessors 2009-10-30 17:21:23 +11:00
hvcall.h
hvconsole.h
hvcserver.h
hw_irq.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
hydra.h
i8259.h
ibmebus.h
ide.h
immap_86xx.h
immap_cpm2.h
immap_qe.h
io-defs.h
io.h
ioctl.h
ioctls.h
iommu.h powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
ipcbuf.h
ipic.h
irq_regs.h
irq.h powerpc: Remove get_irq_desc() 2009-10-30 17:20:55 +11:00
irqflags.h
Kbuild
kdebug.h
kdump.h
kexec.h
keylargo.h
kgdb.h
kmap_types.h
kprobes.h
kvm_44x.h
kvm_asm.h
kvm_e500.h
kvm_host.h KVM: Prepare memslot data structures for multiple hugepage sizes 2009-09-10 08:33:02 +03:00
kvm_para.h
kvm_ppc.h
kvm.h
libata-portmap.h
linkage.h
lmb.h
local.h
lppaca.h
lv1call.h
machdep.h powerpc/pci: Pull ppc32 PCI features into common 2009-08-28 14:24:15 +10:00
macio.h
mc146818rtc.h
mediabay.h
mman.h mm: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions 2009-09-22 07:17:41 -07:00
mmu_context.h powerpc: Add TLB management code for 64-bit Book3E 2009-08-20 10:25:09 +10:00
mmu-8xx.h powerpc: Add TLB management code for 64-bit Book3E 2009-08-20 10:25:09 +10:00
mmu-40x.h powerpc: Add TLB management code for 64-bit Book3E 2009-08-20 10:25:09 +10:00
mmu-44x.h powerpc: Add TLB management code for 64-bit Book3E 2009-08-20 10:25:09 +10:00
mmu-book3e.h powerpc/booke: Move MMUCSR definition into mmu-book3e.h 2009-08-24 20:48:05 -05:00
mmu-hash32.h powerpc: Name xpn & x fields in HW Hash PTE format 2009-08-28 14:24:12 +10:00
mmu-hash64.h powerpc/mm: Bring hugepage PTE accessor functions back into sync with normal accessors 2009-10-30 17:21:23 +11:00
mmu.h powerpc/mm: Add MMU features for TLB reservation & Paired MAS registers 2009-08-28 14:24:12 +10:00
mmzone.h
module.h
mpc5xxx.h
mpc6xx.h
mpc8xx.h
mpc52xx_psc.h
mpc52xx.h
mpc8260.h
mpic.h
msgbuf.h
msi_bitmap.h
mutex.h
nvram.h powerpc/nvram: Enable use Generic NVRAM driver for different size chips 2009-09-11 16:02:11 +10:00
of_device.h
of_platform.h
ohare.h
oprofile_impl.h
paca.h perf: Tidy up after the big rename 2009-09-21 14:34:11 +02:00
page_32.h
page_64.h powerpc/mm: Cleanup initialization of hugepages on powerpc 2009-10-30 17:20:58 +11:00
page.h powerpc/mm: Allow more flexible layouts for hugepage pagetables 2009-10-30 17:20:58 +11:00
param.h
parport.h
pasemi_dma.h
pci-bridge.h powerpc/pci: Pull ppc32 PCI features into common 2009-08-28 14:24:15 +10:00
pci.h Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-09-16 07:49:54 -07:00
percpu.h
perf_event.h perf_event, powerpc: Fix compilation after big perf_counter rename 2009-09-22 09:30:40 +02:00
pgalloc-32.h powerpc/mm: Cleanup management of kmem_caches for pagetables 2009-10-30 17:20:57 +11:00
pgalloc-64.h powerpc/mm: Cleanup management of kmem_caches for pagetables 2009-10-30 17:20:57 +11:00
pgalloc.h powerpc/mm: Cleanup management of kmem_caches for pagetables 2009-10-30 17:20:57 +11:00
pgtable-ppc32.h powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT 2009-09-02 16:20:41 +10:00
pgtable-ppc64-4k.h
pgtable-ppc64-64k.h powerpc/mm: Fix misplaced #endif in pgtable-ppc64-64k.h 2009-08-20 10:12:35 +10:00
pgtable-ppc64.h powerpc/mm: Allow more flexible layouts for hugepage pagetables 2009-10-30 17:20:58 +11:00
pgtable.h powerpc/mm: Allow more flexible layouts for hugepage pagetables 2009-10-30 17:20:58 +11:00
phyp_dump.h
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h powerpc/pmc: Don't access lppaca on Book3E 2009-09-24 15:31:39 +10:00
pmi.h
poll.h
posix_types.h
ppc4xx.h
ppc_asm.h powerpc: Adjust base and index registers in Altivec macros 2009-08-28 14:24:12 +10:00
ppc-opcode.h powerpc/mm: Add opcode definitions for tlbivax and tlbsrx. 2009-08-20 10:12:38 +10:00
ppc-pci.h powerpc/pci: Merge ppc32 and ppc64 versions of phb_scan() 2009-09-02 15:45:53 +10:00
processor.h
prom.h
ps3.h
ps3av.h
ps3fb.h
ps3gpu.h
ps3stor.h
pSeries_reconfig.h
pte-8xx.h powerpc/mm: Fix 40x and 8xx vs. _PAGE_SPECIAL 2009-09-24 15:31:49 +10:00
pte-40x.h powerpc/mm: Fix 40x and 8xx vs. _PAGE_SPECIAL 2009-09-24 15:31:49 +10:00
pte-44x.h powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
pte-book3e.h powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT 2009-09-02 16:20:41 +10:00
pte-common.h powerpc/mm: Fix 40x and 8xx vs. _PAGE_SPECIAL 2009-09-24 15:31:49 +10:00
pte-fsl-booke.h powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT 2009-09-02 16:20:41 +10:00
pte-hash32.h powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
pte-hash64-4k.h
pte-hash64-64k.h powerpc/mm: Fix potential access to freed pages when using hugetlbfs 2009-06-26 16:55:36 +10:00
pte-hash64.h
ptrace.h
qe_ic.h
qe.h powerpc/qe: Implement qe_alive_during_sleep() helper function 2009-08-30 21:51:33 -07:00
reg_8xx.h
reg_booke.h powerpc/book3e-64: Add support to initial_tlb_book3e for non-HES TLB 2009-08-28 14:24:14 +10:00
reg_fsl_emb.h
reg.h powerpc: Add definitions used by exception handling on 64-bit Book3E 2009-08-20 10:25:07 +10:00
resource.h
rheap.h
rio.h
rtas.h powerpc: Use one common impl. of RTAS timebase sync and use raw spinlock 2009-06-26 16:55:25 +10:00
rtc.h
rwsem.h
scatterlist.h
seccomp.h
sections.h
sembuf.h
serial.h
setjmp.h
setup.h powerpc: derive COMMAND_LINE_SIZE from asm-generic 2009-08-28 14:24:16 +10:00
sfp-machine.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp.h cpumask: remove arch_send_call_function_ipi 2009-09-24 09:34:47 +09:30
smu.h
socket.h net: implement a SO_DOMAIN getsockoption 2009-08-05 13:02:57 -07:00
sockios.h
sparsemem.h
spinlock_types.h
spinlock.h locking, powerpc: Rename __spin_try_lock() and friends 2009-08-31 18:08:48 +02:00
spu_csa.h
spu_info.h
spu_priv1.h
spu.h
sstep.h
stat.h
statfs.h
string.h
suspend.h
swab.h
swiotlb.h powerpc: use dma_map_ops struct 2009-08-28 14:24:10 +10:00
synch.h
syscall.h
syscalls.h
systbl.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
system.h
tce.h
termbits.h
termios.h
thread_info.h sched: INIT_PREEMPT_COUNT 2009-07-10 14:24:05 -07:00
time.h
timex.h
tlb.h powerpc/mm: Rework & cleanup page table freeing code path 2009-08-20 10:24:56 +10:00
tlbflush.h powerpc/mm: Make low level TLB flush ops on BookE take additional args 2009-08-20 10:12:41 +10:00
topology.h cpumask: remove obsolete topology_core_siblings and topology_thread_siblings: powerpc 2009-09-24 09:34:42 +09:30
tsi108_irq.h
tsi108_pci.h
tsi108.h
types.h
uaccess.h
ucc_fast.h
ucc_slow.h
ucc.h
ucontext.h
udbg.h
uic.h
unaligned.h
uninorth.h
unistd.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
user.h
vdso_datapage.h
vdso.h powerpc: Move 64bit VDSO to improve context switch performance 2009-08-20 10:12:24 +10:00
vga.h
vio.h
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h