android_kernel_xiaomi_sm8350/arch/powerpc/kernel
Benjamin Herrenschmidt 64b3d0e812 powerpc/mm: Rework usage of _PAGE_COHERENT/NO_CACHE/GUARDED
Currently, we never set _PAGE_COHERENT in the PTEs, we just OR it in
in the hash code based on some CPU feature bit.  We also manipulate
_PAGE_NO_CACHE and _PAGE_GUARDED by hand in all sorts of places.

This changes the logic so that instead, the PTE now contains
_PAGE_COHERENT for all normal RAM pages thay have I = 0 on platforms
that need it.  The hash code clears it if the feature bit is not set.

It also adds some clean accessors to setup various valid combinations
of access flags and change various bits of code to use them instead.

This should help having the PTE actually containing the bit
combinations that we really want.

I also removed _PAGE_GUARDED from _PAGE_BASE on 44x and instead
set it explicitely from the TLB miss.  I will ultimately remove it
completely as it appears that it might not be needed after all
but in the meantime, having it in the TLB miss makes things a
lot easier.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-12-21 14:21:16 +11:00
..
vdso32 powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
vdso64 powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
.gitignore powerpc: Ignore generated vmlinux.lds in git 2008-10-07 14:26:18 +11:00
align.c powerpc: Fix uninitialised variable in VSX alignment code 2008-09-03 20:53:14 +10:00
asm-offsets.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
audit.c
btext.c powerpc: Use the common ascii hex helpers 2008-08-20 16:34:57 +10:00
clock.c
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S powerpc/virtex5: Fix Virtex5 machine check handling 2008-12-05 14:34:26 -05:00
cpu_setup_pa6t.S
cpu_setup_ppc970.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
cputable.c powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
crash_dump.c powerpc: Support for relocatable kdump kernel 2008-10-22 15:01:22 +11:00
crash.c
dma-iommu.c powerpc: Update remaining dma_mapping_ops to use map/unmap_page 2008-10-31 16:13:48 +11:00
dma.c powerpc: Add sync_*_for_* to dma_ops 2008-12-03 20:46:36 +11:00
entry_32.S ftrace: rename FTRACE to FUNCTION_TRACER 2008-10-20 18:27:03 +02:00
entry_64.S powerpc: Fix system calls on Cell entered with XER.SO=1 2008-12-01 09:40:19 +11:00
firmware.c
fpu.S
ftrace.c ftrace, powerpc, sparc64, x86: remove notrace from arch ftrace file 2008-10-23 16:00:25 +02:00
head_8xx.S
head_32.S powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
head_40x.S
head_44x.S powerpc/mm: Rework usage of _PAGE_COHERENT/NO_CACHE/GUARDED 2008-12-21 14:21:16 +11:00
head_64.S powerpc/ppc64/kdump: Better flag for running relocatable 2008-10-31 16:11:49 +11:00
head_booke.h
head_fsl_booke.S powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
ibmebus.c powerpc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-16 15:53:38 +11:00
idle_6xx.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_e500.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_power4.S
idle.c powerpc: Fix failure to shutdown with CPU hotplug 2008-09-30 13:25:06 +10:00
init_task.c
io.c
iomap.c
iommu.c powerpc: Update remaining dma_mapping_ops to use map/unmap_page 2008-10-31 16:13:48 +11:00
irq.c powerpc: Make the irq reverse mapping radix tree lockless 2008-09-15 11:08:45 -07:00
isa-bridge.c
kgdb.c kgdb, x86, arm, mips, powerpc: ignore user space single stepping 2008-09-26 10:36:41 -05:00
kprobes.c
l2cr_6xx.S
legacy_serial.c
lparcfg.c powerpc: Replace __FUNCTION__ with __func__ 2008-08-20 16:34:57 +10:00
machine_kexec_32.c kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
machine_kexec_64.c powerpc: Kexec exit should not use magic numbers 2008-10-31 16:11:44 +11:00
machine_kexec.c powerpc: Support for relocatable kdump kernel 2008-10-22 15:01:22 +11:00
Makefile ftrace: rename FTRACE to FUNCTION_TRACER 2008-10-20 18:27:03 +02:00
misc_32.S powerpc/mm: Split low level tlb invalidate for nohash processors 2008-12-21 14:21:16 +11:00
misc_64.S powerpc: Kexec exit should not use magic numbers 2008-10-31 16:11:44 +11:00
misc.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
module_32.c
module_64.c Fix compile failure with non modular builds 2008-09-17 09:14:42 -07:00
module.c powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
msi.c
nvram_64.c
of_device.c powerpc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-16 15:53:38 +11:00
of_platform.c
paca.c powerpc: Update page-in counter for CMM 2008-11-05 22:08:28 +11:00
pci_32.c powerpc: Remove `have_of' global variable 2008-12-16 15:52:57 +11:00
pci_64.c powerpc/pci: Split pcibios_fixup_bus() into bus setup and device setup 2008-11-06 09:22:37 +11:00
pci_dn.c
pci-common.c powerpc/mm: Rework usage of _PAGE_COHERENT/NO_CACHE/GUARDED 2008-12-21 14:21:16 +11:00
pmc.c
ppc32.h
ppc_ksyms.c powerpc/mm: Add SMP support to no-hash TLB handling 2008-12-21 14:21:16 +11:00
proc_ppc64.c
process.c powerpc: Allow the max stack trace depth to be configured 2008-12-03 20:46:35 +11:00
prom_init_check.sh powerpc: Fix build issue with CONFIG_RELOCATABLE=y 2008-10-21 15:17:49 +11:00
prom_init.c Revert "powerpc: Sync RPA note in zImage with kernel's RPA note" 2008-10-31 22:36:21 +11:00
prom_parse.c Merge branch 'merge' 2008-12-03 20:11:06 +11:00
prom.c powerpc: Add of_find_next_cache_node() 2008-12-21 14:21:14 +11:00
ptrace32.c
ptrace.c
reloc_64.S powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
rtas_flash.c
rtas_pci.c powerpc/pci: Fix various pseries PCI hotplug issues 2008-11-06 09:31:52 +11:00
rtas-proc.c
rtas-rtc.c
rtas.c powerpc/pseries: Check for GIQ indicator before calling set-indicator 2008-12-16 15:53:13 +11:00
setup_32.c powerpc/mm: Runtime allocation of mmu context maps for nohash CPUs 2008-12-21 14:21:16 +11:00
setup_64.c powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
setup-common.c powerpc: Move memory size print into common show_cpuinfo for 32-bit 2008-10-22 11:00:25 +11:00
setup.h
signal_32.c powerpc: Fix msr check in compat_sys_swapcontext 2008-11-11 19:42:22 +11:00
signal_64.c powerpc: Fix swapcontext system for VSX + old ucontext size 2008-10-31 16:12:00 +11:00
signal.c
signal.h x86, um: get rid of uml signal.h 2008-10-22 22:55:20 -07:00
smp-tbsync.c powerpc: Silence software timebase sync 2008-11-05 22:08:28 +11:00
smp.c powerpc: Convert cpu_to_l2cache() to of_find_next_cache_node() 2008-12-21 14:21:14 +11:00
softemu8xx.c Remove asm/a.out.h files for all architectures without a.out support. 2008-09-06 19:30:24 +01:00
stacktrace.c
suspend.c
swsusp_32.S powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
swsusp_64.c
swsusp_asm64.S powerpc: Fix 64-bit hibernation with 64k pages 2008-10-07 14:26:20 +11:00
swsusp.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
sys_ppc32.c compat: generic compat get/settimeofday 2008-10-16 11:21:33 -07:00
syscalls.c
sysfs.c powerpc: Convert sysfs cache code to of_find_next_cache_node() 2008-12-21 14:21:14 +11:00
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c
time.c powerpc: Eliminate unused do_gtod variable 2008-11-06 09:49:28 +11:00
traps.c powerpc: Add SPE/EFP math emulation for E500v1/v2 processors. 2008-12-03 08:19:16 -06:00
udbg_16550.c powerpc: Unsigned speed cannot be negative in udbg_16559.c 2008-10-21 15:17:47 +11:00
udbg.c
vdso.c powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
vecemu.c
vector.S
vio.c powerpc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-16 15:53:38 +11:00
vmlinux.lds.S powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00