linux-stable/arch/powerpc/kernel
Michael Ellerman be640317a1 powerpc/64s: Disable stack variable initialisation for prom_init
With GCC 12 allmodconfig prom_init fails to build:

  Error: External symbol 'memset' referenced from prom_init.c
  make[2]: *** [arch/powerpc/kernel/Makefile:204: arch/powerpc/kernel/prom_init_check] Error 1

The allmodconfig build enables KASAN, so all calls to memset in
prom_init should be converted to __memset by the #ifdefs in
asm/string.h, because prom_init must use the non-KASAN instrumented
versions.

The build failure happens because there's a call to memset that hasn't
been caught by the pre-processor and converted to __memset. Typically
that's because it's a memset generated by the compiler itself, and that
is the case here.

With GCC 12, allmodconfig enables CONFIG_INIT_STACK_ALL_PATTERN, which
causes the compiler to emit memset calls to initialise on-stack
variables with a pattern.

Because prom_init is non-user-facing boot-time only code, as a
workaround just disable stack variable initialisation to unbreak the
build.

Reported-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220718134418.354114-1-mpe@ellerman.id.au
2022-07-20 15:13:02 +10:00
..
ptrace powerpc/32: Fix overread/overwrite of thread_struct via ptrace 2022-06-09 23:32:56 +10:00
syscalls arch: syscalls: simplify uapi/kapi directory creation 2022-03-31 12:03:46 +09:00
trace powerpc/ftrace: Remove ftrace init tramp once kernel init is complete 2022-05-22 15:58:29 +10:00
vdso powerpc/vdso: Link with ld.lld when requested 2022-05-19 23:11:26 +10:00
.gitignore
Makefile powerpc/64s: Disable stack variable initialisation for prom_init 2022-07-20 15:13:02 +10:00
align.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
asm-offsets.c powerpc/ftrace: Add support for livepatch to PPC32 2022-02-07 21:03:10 +11:00
audit.c Revert "powerpc/audit: Convert powerpc to AUDIT_ARCH_COMPAT_GENERIC" 2021-10-27 22:30:32 +11:00
btext.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
cacheinfo.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
cacheinfo.h
compat_audit.c Revert "powerpc/audit: Convert powerpc to AUDIT_ARCH_COMPAT_GENERIC" 2021-10-27 22:30:32 +11:00
cpu_setup_6xx.S powerpc/32: Blacklist functions running with MMU disabled for kprobe 2020-06-02 20:59:11 +10:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc: Retire e200 core (mpc555x processor) 2020-12-05 21:49:18 +11:00
cpu_setup_pa6t.S
cpu_setup_power.c powerpc/64s: Always set PMU control registers to frozen/disabled when not in use 2021-11-24 21:08:57 +11:00
cpu_setup_ppc970.S
cputable.c powerpc: Enable the DAWR on POWER9 DD2.3 and above 2022-05-22 15:59:53 +10:00
crash_dump.c powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
dawr.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
dbell.c powerpc/64s/interrupt: Don't enable MSR[EE] in irq handlers unless perf is in use 2021-12-16 21:31:45 +11:00
dma-iommu.c powerpc/iommu: Report the correct most efficient DMA mask for PCI devices 2021-09-30 17:10:17 +10:00
dma-mask.c
dma-swiotlb.c swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction 2022-04-18 07:21:12 +02:00
dt_cpu_ftrs.c powerpc: Enable the DAWR on POWER9 DD2.3 and above 2022-05-22 15:59:53 +10:00
early_32.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
eeh.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
eeh_cache.c powerpc/kernel: Add __init attribute to eligible functions 2021-12-23 22:33:10 +11:00
eeh_driver.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
eeh_event.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
eeh_pe.c powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
eeh_sysfs.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
entry_32.S powerpc/rtas: Move rtas entry assembly into its own file 2022-05-19 23:11:27 +10:00
entry_64.S powerpc/rtas: Move rtas entry assembly into its own file 2022-05-19 23:11:27 +10:00
epapr_hcalls.S
epapr_paravirt.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
exceptions-64e.S powerpc: flexible GPR range save/restore macros 2021-11-29 23:15:20 +11:00
exceptions-64s.S KVM: PPC: Book3S PR: Disable SCV when AIL could be disabled 2022-03-08 13:13:58 +11:00
fadump.c powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
firmware.c powerpc: fix unbalanced node refcount in check_kvm_guest() 2021-10-09 00:15:59 +11:00
fpu.S powerpc/64s/interrupt: handle MSR EE and RI in interrupt entry wrapper 2021-12-16 21:31:45 +11:00
fsl_booke_entry_mapping.S powerpc/booke: Avoid link stack corruption in several places 2021-08-25 13:35:47 +10:00
head_8xx.S powerpc/32: Remove _ENTRY() macro 2022-02-07 21:03:10 +11:00
head_32.h powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
head_40x.S powerpc/32: Remove _ENTRY() macro 2022-02-07 21:03:10 +11:00
head_44x.S powerpc/32: Remove _ENTRY() macro 2022-02-07 21:03:10 +11:00
head_64.S powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
head_book3s_32.S powerpc updates for 5.18 2022-03-25 09:39:36 -07:00
head_booke.h powerpc: flexible GPR range save/restore macros 2021-11-29 23:15:20 +11:00
head_fsl_booke.S powerpc/32: Remove _ENTRY() macro 2022-02-07 21:03:10 +11:00
hw_breakpoint.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
hw_breakpoint_constraints.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
idle.c powerpc/idle: Fix return value of __setup() handler 2022-05-04 19:37:46 +10:00
idle_6xx.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
idle_book3e.S
idle_book3s.S powerpc/idle: Don't corrupt back chain when going idle 2021-10-20 21:37:58 +11:00
idle_e500.S powerpc/32: Return directly from power_save_ppc32_restore() 2021-03-29 13:22:10 +11:00
ima_arch.c
interrupt.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
interrupt_64.S powerpc: Replace PPC64_ELF_ABI_v{1/2} by CONFIG_PPC64_ELF_ABI_V{1/2} 2022-05-19 23:11:29 +10:00
io-workarounds.c powerpc: Fix reverse map real-mode address lookup with huge vmalloc 2021-05-28 22:54:27 +10:00
io.c
iomap.c powerpc: inline iomap accessors 2020-12-04 01:01:09 +11:00
iommu.c Merge branch 'topic/ppc-kvm' into next 2022-05-19 23:10:42 +10:00
irq.c Livepatching changes for 5.19 2022-06-02 08:55:01 -07:00
isa-bridge.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
jump_label.c powerpc: Don't use 'struct ppc_inst' to reference instruction location 2021-06-17 00:09:00 +10:00
kdebugfs.c powerpc: rename powerpc_debugfs_root to arch_debugfs_dir 2021-08-13 22:04:26 +10:00
kgdb.c powerpc/config: Add CONFIG_BOOKE_OR_40x 2021-12-09 22:41:19 +11:00
kprobes-ftrace.c ftrace: disable preemption when recursion locked 2021-10-27 11:21:49 -04:00
kprobes.c powerpc: Replace PPC64_ELF_ABI_v{1/2} by CONFIG_PPC64_ELF_ABI_V{1/2} 2022-05-19 23:11:29 +10:00
kvm.c gup: Turn fault_in_pages_{readable,writeable} into fault_in_{readable,writeable} 2021-10-18 16:33:03 +02:00
kvm_emul.S
l2cr_6xx.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
legacy_serial.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
mce.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
mce_power.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
misc.S powerpc: Avoid link stack corruption in misc asm functions 2021-08-25 13:35:47 +10:00
misc_32.S powerpc: Avoid link stack corruption in misc asm functions 2021-08-25 13:35:47 +10:00
misc_64.S powerpc: Replace PPC64_ELF_ABI_v{1/2} by CONFIG_PPC64_ELF_ABI_V{1/2} 2022-05-19 23:11:29 +10:00
module.c powerpc: Replace PPC64_ELF_ABI_v{1/2} by CONFIG_PPC64_ELF_ABI_V{1/2} 2022-05-19 23:11:29 +10:00
module_32.c powerpc/modules: Use PPC_LI macros instead of opencoding 2022-05-22 15:58:27 +10:00
module_64.c powerpc/modules: Use PPC_LI macros instead of opencoding 2022-05-22 15:58:27 +10:00
msi.c
note.S
nvram_64.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
of_platform.c powerpc/eeh: Remove eeh_dev_phb_init_dynamic() 2020-07-26 23:34:19 +10:00
optprobes.c powerpc/inst: Define ppc_inst_t as u32 on PPC32 2021-12-09 22:41:21 +11:00
optprobes_head.S powerpc: flexible GPR range save/restore macros 2021-11-29 23:15:20 +11:00
paca.c powerpc/mm: Remove CONFIG_PPC_MM_SLICES 2022-05-05 22:11:57 +10:00
pci-common.c powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
pci-hotplug.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
pci_32.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
pci_64.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
pci_dn.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
pci_of_scan.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
pmc.c
ppc32.h
ppc_save_regs.S
proc_powerpc.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
process.c powerpc: Enable execve syscall exit tracepoint 2022-06-18 10:19:10 +10:00
prom.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
prom_init.c powerpc/prom_init: Fix build failure with GCC_PLUGIN_STRUCTLEAK_BYREF_ALL and KASAN 2022-06-19 21:57:56 +10:00
prom_init_check.sh powerpc/prom_init: Fix kernel config grep 2022-06-24 13:47:26 +10:00
prom_parse.c
reloc_32.S powerpc: Avoid link stack corruption in misc asm functions 2021-08-25 13:35:47 +10:00
reloc_64.S powerpc/64: Add UADDR64 relocation support 2022-03-09 21:47:53 +11:00
rtas-proc.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
rtas-rtc.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
rtas.c powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address 2022-06-18 10:19:10 +10:00
rtas_entry.S powerpc/rtas: Leave MSR[RI] enabled over RTAS call 2022-05-19 23:11:27 +10:00
rtas_flash.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
rtas_pci.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
rtasd.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
secure_boot.c powerpc/pseries: Detect secure and trusted boot state of the system. 2020-07-16 14:49:53 +10:00
security.c powerpc: add link stack flush mitigation status in debugfs. 2022-01-31 13:45:23 +11:00
secvar-ops.c
secvar-sysfs.c powerpc/secvar: fix refcount leak in format_show() 2022-03-08 22:07:41 +11:00
setup-common.c powerpc/mm: Move CMA reservations after initmem_init() 2022-06-18 10:18:55 +10:00
setup.h powerpc/config: Add CONFIG_BOOKE_OR_40x 2021-12-09 22:41:19 +11:00
setup_32.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
setup_64.c Livepatching changes for 5.19 2022-06-02 08:55:01 -07:00
signal.c powerpc/signal: Report minimum signal frame size to userspace via AT_MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
signal.h powerpc/signal32: Fix sigset_t copy 2021-11-16 21:24:16 +11:00
signal_32.c powerpc/signal: Report minimum signal frame size to userspace via AT_MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
signal_64.c powerpc/signal: Report minimum signal frame size to userspace via AT_MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
smp-tbsync.c
smp.c powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
stacktrace.c kprobes: treewide: Make it harder to refer kretprobe_trampoline directly 2021-09-30 21:24:06 -04:00
static_call.c powerpc/32: Add support for out-of-line static calls 2021-10-22 15:22:05 +11:00
suspend.c
swsusp.c
swsusp_32.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
swsusp_64.c powerpc/machdep: Remove stale functions from ppc_md structure 2021-10-22 15:22:05 +11:00
swsusp_asm64.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
swsusp_booke.S
sys_ppc32.c powerpc/compat_sys: swap hi/lo parts of 64-bit syscall args in LE mode 2021-02-11 23:35:07 +11:00
syscalls.c powerpc: Remove redundant spaces to match coding style 2022-05-04 19:37:46 +10:00
sysfs.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
systbl.S powerpc/syscalls: switch to generic syscalltbl.sh 2021-04-14 23:04:16 +10:00
systbl_chk.sh
tau_6xx.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
time.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
tm.S powerpc/tm: Fix more userspace r13 corruption 2022-03-16 11:59:24 +11:00
traps.c powerpc/kasan: Don't instrument non-maskable or raw interrupts 2022-05-22 15:58:29 +10:00
ucall.S
udbg.c isystem: ship and use stdarg.h 2021-08-19 09:02:55 +09:00
udbg_16550.c powerpc/kernel: Add __init attribute to eligible functions 2021-12-23 22:33:10 +11:00
uprobes.c powerpc: Reject probes on instructions that can't be single stepped 2022-05-06 00:00:20 +10:00
vdso.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
vdso32_wrapper.S powerpc/vdso: Merge vdso64 and vdso32 into a single directory 2022-02-12 22:47:43 +11:00
vdso64_wrapper.S powerpc/vdso: Merge vdso64 and vdso32 into a single directory 2022-02-12 22:47:43 +11:00
vecemu.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
vector.S powerpc/64s/interrupt: handle MSR EE and RI in interrupt entry wrapper 2021-12-16 21:31:45 +11:00
vmlinux.lds.S powerpc/64: Add UADDR64 relocation support 2022-03-09 21:47:53 +11:00
watchdog.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00