OpenCloudOS-Kernel/arch/powerpc/kernel
Christophe Leroy 215b823707 powerpc/32s: set up an early static hash table for KASAN.
KASAN requires early activation of hash table, before memblock()
functions are available.

This patch implements an early hash_table statically defined in
__initdata.

During early boot, a single page table is used.

For hash32, when doing the final init, one page table is allocated
for each PGD entry because of the _PAGE_HASHPTE flag which can't be
common to several virt pages. This is done after memblock get
available but before switching to the final hash table, otherwise
there are issues with TLB flushing due to the shared entries.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2019-05-03 01:20:26 +10:00
..
syscalls powerpc updates for 5.1 2019-03-07 12:56:26 -08:00
trace powerpc/64: Replace CURRENT_THREAD_INFO with PACA_THREAD_INFO 2019-02-23 22:31:40 +11:00
vdso32 powerpc/vdso: Drop unnecessary cc-ldoption 2019-05-01 10:49:58 +10:00
vdso64 powerpc/vdso: Drop unnecessary cc-ldoption 2019-05-01 10:49:58 +10:00
.gitignore
Makefile powerpc: disable KASAN instrumentation on early/critical files. 2019-05-03 01:20:26 +10:00
align.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
asm-offsets.c Merge branch 'topic/ppc-kvm' into next 2019-04-30 22:52:03 +10:00
audit.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
btext.c powerpc: Rework btext_find_display to use of_stdout and device_type helpers 2018-11-26 22:33:37 +11:00
cacheinfo.c powerpc/cacheinfo: Fix kobject memleak 2019-05-01 10:52:29 +10:00
cacheinfo.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
compat_audit.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpu_setup_6xx.S powerpc/6xx: fix setup and use of SPRN_SPRG_PGDIR for hash32 2019-03-19 00:30:19 +11:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/mm: move platform specific mmu-xxx.h in platform directories 2018-12-04 19:45:01 +11:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc: Turn off CPU_FTR_P9_TM_HV_ASSIST in non-hypervisor mode 2018-10-09 16:04:27 +11:00
cpu_setup_ppc970.S
cputable.c powerpc: don't use direct assignation during early boot. 2019-05-03 01:20:25 +10:00
crash.c powerpc: remove kdump.h from page.h 2018-07-30 22:47:53 +10:00
crash_dump.c powerpc: don't use ioremap_prot() nor __ioremap() unless really needed. 2018-10-14 18:04:09 +11:00
dbell.c powerpc: Add doorbell tracepoints 2019-05-01 16:45:05 +10:00
dma-iommu.c powerpc/dma: use the dma_direct mapping routines 2019-02-18 22:41:04 +11:00
dma-mask.c dma-mapping, powerpc: simplify the arch dma_set_mask override 2019-02-18 22:41:03 +11:00
dma-swiotlb.c powerpc/dma: use the generic direct mapping bypass 2019-02-18 22:41:04 +11:00
dt_cpu_ftrs.c treewide: add checks for the return value of memblock_alloc*() 2019-03-12 10:04:02 -07:00
early_32.c powerpc/32: use memset() instead of memset_io() to zero BSS 2019-05-03 01:20:26 +10:00
eeh.c powerpc/eeh: Add eeh_force_recover to debugfs 2019-02-22 00:10:15 +11:00
eeh_cache.c powerpc/eeh_cache: Bump log level of eeh_addr_cache_print() 2019-02-22 00:10:14 +11:00
eeh_dev.c powerpc/eeh: Cleanup list_head field names 2018-10-13 22:21:25 +11:00
eeh_driver.c powerpc/eeh: Improve recovery of passed-through devices 2019-02-05 11:55:44 +11:00
eeh_event.c powerpc/eeh: Add eeh_force_recover to debugfs 2019-02-22 00:10:15 +11:00
eeh_pe.c powerpc/eeh: Add include_passed to eeh_pe_state_clear() 2019-02-05 11:55:43 +11:00
eeh_sysfs.c powerpc/eeh: Add include_passed to eeh_pe_state_clear() 2019-02-05 11:55:43 +11:00
entry_32.S powerpc/32s: Implement Kernel Userspace Execution Prevention. 2019-04-21 23:11:46 +10:00
entry_64.S powerpc/64s: Implement KUAP for Radix MMU 2019-04-21 23:06:02 +10:00
epapr_hcalls.S powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU 2019-02-23 22:31:40 +11:00
epapr_paravirt.c
exceptions-64e.S powerpc/fsl: Fix the flush of branch predictor. 2019-02-27 22:52:38 +11:00
exceptions-64s.S Merge branch 'topic/ppc-kvm' into next 2019-04-30 22:52:03 +10:00
fadump.c powerpc/mm: move hugetlb_disabled into asm/hugetlb.h 2019-05-03 01:20:24 +10:00
firmware.c
fpu.S powerpc: clean inclusions of asm/feature-fixups.h 2018-07-30 22:48:17 +10:00
fsl_booke_entry_mapping.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head_8xx.S powerpc/32: Add KASAN support 2019-05-03 01:20:26 +10:00
head_32.S powerpc/32s: set up an early static hash table for KASAN. 2019-05-03 01:20:26 +10:00
head_40x.S powerpc/32: Add KASAN support 2019-05-03 01:20:26 +10:00
head_44x.S powerpc/32: Add KASAN support 2019-05-03 01:20:26 +10:00
head_64.S powerpc/64: Fix booting large kernels with STRICT_KERNEL_RWX 2019-04-20 22:02:12 +10:00
head_booke.h powerpc: Activate CONFIG_THREAD_INFO_IN_TASK 2019-02-23 22:31:40 +11:00
head_fsl_booke.S powerpc/32: Add KASAN support 2019-05-03 01:20:26 +10:00
hw_breakpoint.c powerpc: Add force enable of DAWR on P9 option 2019-04-20 22:20:45 +10:00
idle.c
idle_6xx.S powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU 2019-02-23 22:31:40 +11:00
idle_book3e.S powerpc/64: Replace CURRENT_THREAD_INFO with PACA_THREAD_INFO 2019-02-23 22:31:40 +11:00
idle_book3s.S powerpc/64s: Reimplement book3s idle code in C 2019-04-30 22:37:48 +10:00
idle_e500.S powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU 2019-02-23 22:31:40 +11:00
idle_power4.S powerpc/64: Replace CURRENT_THREAD_INFO with PACA_THREAD_INFO 2019-02-23 22:31:40 +11:00
ima_kexec.c powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
io-workarounds.c powerpc: handover page flags with a pgprot_t parameter 2018-10-14 18:04:09 +11:00
io.c
iomap.c powerpc: iomap.c: introduce io{read|write}64_{lo_hi|hi_lo} 2018-04-05 14:59:26 +10:00
iommu.c IOMMU Updates for Linux v4.21 2019-01-01 15:55:29 -08:00
irq.c powerpc: clean stack pointers naming 2019-02-23 22:31:40 +11:00
isa-bridge.c powerpc: Use device_type helpers to access the node type 2018-11-26 22:33:37 +11:00
jump_label.c jump_label: move 'asm goto' support test to Kconfig 2019-01-06 09:46:51 +09:00
kexec_elf_64.c kernel/kexec_file.c: allow archs to set purgatory load address 2018-04-13 17:10:28 -07:00
kgdb.c powerpc: Activate CONFIG_THREAD_INFO_IN_TASK 2019-02-23 22:31:40 +11:00
kprobes-ftrace.c bpf/error-inject/kprobes: Clear current_kprobe and enable preempt in kprobe 2018-06-21 12:33:19 +02:00
kprobes.c bpf/error-inject/kprobes: Clear current_kprobe and enable preempt in kprobe 2018-06-21 12:33:19 +02:00
kvm.c powerpc/kvm: Prefer fault_in_pages_readable function 2018-05-17 14:12:40 +10:00
kvm_emul.S powerpc: move ASM_CONST and stringify_in_c() into asm-const.h 2018-07-30 22:48:16 +10:00
l2cr_6xx.S powerpc: clean inclusions of asm/feature-fixups.h 2018-07-30 22:48:17 +10:00
legacy_serial.c powerpc: Use of_node_name_eq for node name comparisons 2018-12-22 21:29:50 +11:00
machine_kexec.c powerpc: remove kdump.h from page.h 2018-07-30 22:47:53 +10:00
machine_kexec_32.c
machine_kexec_64.c powerpc: Activate CONFIG_THREAD_INFO_IN_TASK 2019-02-23 22:31:40 +11:00
machine_kexec_file_64.c powerpc, kexec_file: factor out memblock-based arch_kexec_walk_mem() 2018-12-06 14:38:50 +00:00
mce.c powerpc/powernv/mce: Print additional information about MCE error. 2019-05-01 22:23:20 +10:00
mce_power.c powerpc/powernv/mce: Print additional information about MCE error. 2019-05-01 22:23:20 +10:00
misc.S powerpc/misc: merge reloc_offset() and add_reloc_offset() 2018-06-04 00:39:17 +10:00
misc_32.S powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU 2019-02-23 22:31:40 +11:00
misc_64.S powerpc: clean inclusions of asm/feature-fixups.h 2018-07-30 22:48:17 +10:00
module.c powerpc64/module elfv1: Set opd addresses after module relocation 2018-10-20 13:26:47 +11:00
module.lds powerpc/modules: Fix alignment of .toc section in kernel modules 2017-12-11 13:03:35 +11:00
module_32.c powerpc/sparse: Fix plain integer as NULL pointer warning 2018-05-25 12:04:38 +10:00
module_64.c powerpc/64/module: REL32 relocation range check 2018-10-20 13:26:47 +11:00
msi.c powerpc/msi: Fix NULL pointer access in teardown code 2018-11-29 23:49:11 +11:00
nvram_64.c powerpc: Adopt nvram module for PPC64 2019-01-22 10:21:45 +01:00
of_platform.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
optprobes.c powerpc/kprobes: Do not disable interrupts for optprobes and kprobes_on_ftrace 2017-11-12 23:51:41 +11:00
optprobes_head.S powerpc/64: Rename soft_enabled to irq_soft_mask 2018-01-19 22:37:01 +11:00
paca.c powerpc/mm: Add helpers for accessing hash translation related variables 2019-04-21 23:12:38 +10:00
pci-common.c powerpc updates for 5.1 2019-03-07 12:56:26 -08:00
pci-hotplug.c powerpc/pci: Unroll two pass loop when scanning bridges 2017-12-18 23:05:52 -06:00
pci_32.c treewide: add checks for the return value of memblock_alloc*() 2019-03-12 10:04:02 -07:00
pci_64.c powerpc: handover page flags with a pgprot_t parameter 2018-10-14 18:04:09 +11:00
pci_dn.c powerpc/pci: Separate SR-IOV Calls 2017-12-11 13:03:35 +11:00
pci_of_scan.c powerpc: Use device_type helpers to access the node type 2018-11-26 22:33:37 +11:00
pmc.c powerpc: change CONFIG_6xx to CONFIG_PPC_BOOK3S_32 2018-11-26 22:33:37 +11:00
ppc32.h
ppc_save_regs.S powerpc: move ASM_CONST and stringify_in_c() into asm-const.h 2018-07-30 22:48:16 +10:00
proc_powerpc.c powerpc: Use octal numbers for file permissions 2018-01-22 05:48:33 +11:00
process.c powerpc/64s: Remove 'dummy_copy_buffer' 2019-05-01 12:08:44 +10:00
prom.c powerpc: use memblock functions returning virtual address 2019-03-12 10:04:01 -07:00
prom_init.c powerpc: don't use direct assignation during early boot. 2019-05-03 01:20:25 +10:00
prom_init_check.sh powerpc/prom_init: don't use string functions from lib/ 2019-05-03 01:20:25 +10:00
prom_parse.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ptrace.c powerpc: Add force enable of DAWR on P9 option 2019-04-20 22:20:45 +10:00
ptrace32.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
reloc_32.S
reloc_64.S powerpc/asm: Convert .llong directives to .8byte 2017-08-31 14:26:47 +10:00
rtas-proc.c powerpc updates for 4.18 2018-06-07 10:23:33 -07:00
rtas-rtc.c powerpc: use time64_t in read_persistent_clock 2018-06-03 20:43:33 +10:00
rtas.c memblock: drop memblock_alloc_base() 2019-03-12 10:04:01 -07:00
rtas_flash.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
rtas_pci.c powerpc/kernel: Change retrieval of pci_dn 2017-08-31 14:26:40 +10:00
rtasd.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
security.c powerpc/security: Fix spectre_v2 reporting 2019-03-21 21:09:03 +11:00
setup-common.c powerpc/32: Add KASAN support 2019-05-03 01:20:26 +10:00
setup.h powerpc/tau: Synchronize function prototypes and body 2018-05-25 12:04:43 +10:00
setup_32.c powerpc/32: Move early_init() in a separate file 2019-05-03 01:20:25 +10:00
setup_64.c powerpc/64: Setup KUP on secondary CPUs 2019-04-21 23:05:59 +10:00
signal.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
signal.h powerpc/syscalls: signal_{32, 64} - switch to SYSCALL_DEFINE 2018-05-10 23:25:13 +10:00
signal_32.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
signal_64.c powerpc/tm: Avoid machine crash on rt_sigreturn() 2019-05-01 23:03:29 +10:00
smp-tbsync.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smp.c powerpc: 'current_set' is now a table of task_struct pointers 2019-02-23 22:31:40 +11:00
stacktrace.c powerpc: Remove export of save_stack_trace_tsk_reliable() 2019-03-02 14:43:05 +11:00
suspend.c
swsusp.c powerpc/swsusp: Include suspend.h to silence sparse warnings 2017-03-20 19:02:49 +11:00
swsusp_32.S powerpc: clean inclusions of asm/feature-fixups.h 2018-07-30 22:48:17 +10:00
swsusp_64.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/nmi.h> 2017-03-02 08:42:30 +01:00
swsusp_asm64.S powerpc/64s/hash: Simplify slb_flush_and_rebolt() 2018-10-14 18:04:09 +11:00
swsusp_booke.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sys_ppc32.c powerpc/syscalls: kill ppc32_select() 2018-05-10 23:25:15 +10:00
syscalls.c powerpc/64: Make sys_switch_endian() traceable 2019-02-22 00:10:15 +11:00
sysfs.c powerpc: change CONFIG_6xx to CONFIG_PPC_BOOK3S_32 2018-11-26 22:33:37 +11:00
systbl.S powerpc: remove nargs from __SYSCALL 2019-03-02 14:43:05 +11:00
systbl_chk.sh powerpc: Make it clearer that systbl check errors are errors 2018-05-10 23:25:16 +10:00
tau_6xx.c powerpc/tau: Make some function static 2018-05-25 12:04:44 +10:00
time.c powerpc: Remove duplicate headers 2019-04-20 22:02:44 +10:00
tm.S Merge branch 'fixes' into next 2018-10-09 16:51:05 +11:00
traps.c powerpc/64s: Include <asm/nmi.h> header file to fix a warning 2019-03-13 15:03:13 +11:00
udbg.c powerpc: use a CONSOLE_LOGLEVEL_DEBUG macro 2019-01-14 20:39:27 +11:00
udbg_16550.c
uprobes.c powerpc/uprobes: Implement arch_uretprobe_is_alive() 2017-08-24 16:19:21 +10:00
vdso.c powerpc/vdso: don't clear PG_reserved 2019-03-05 21:07:18 -08:00
vecemu.c powerpc: Add a missing include header 2018-05-25 12:04:46 +10:00
vector.S powerpc: move ASM_CONST and stringify_in_c() into asm-const.h 2018-07-30 22:48:16 +10:00
vmlinux.lds.S powerpc/kconfig: define CONFIG_DATA_SHIFT and CONFIG_ETEXT_SHIFT 2019-02-23 21:04:32 +11:00
watchdog.c powerpc/watchdog: Use hrtimers for per-CPU heartbeat 2019-04-30 11:31:02 +10:00