android_kernel_xiaomi_sm7250/arch/powerpc/kernel
Zhouyi Zhou 4bb1188e2b powerpc/64: Init jump labels before parse_early_param()
[ Upstream commit ca829e05d3d4f728810cc5e4b468d9ebc7745eb3 ]

On 64-bit, calling jump_label_init() in setup_feature_keys() is too
late because static keys may be used in subroutines of
parse_early_param() which is again subroutine of early_init_devtree().

For example booting with "threadirqs":

  static_key_enable_cpuslocked(): static key '0xc000000002953260' used before call to jump_label_init()
  WARNING: CPU: 0 PID: 0 at kernel/jump_label.c:166 static_key_enable_cpuslocked+0xfc/0x120
  ...
  NIP static_key_enable_cpuslocked+0xfc/0x120
  LR  static_key_enable_cpuslocked+0xf8/0x120
  Call Trace:
    static_key_enable_cpuslocked+0xf8/0x120 (unreliable)
    static_key_enable+0x30/0x50
    setup_forced_irqthreads+0x28/0x40
    do_early_param+0xa0/0x108
    parse_args+0x290/0x4e0
    parse_early_options+0x48/0x5c
    parse_early_param+0x58/0x84
    early_init_devtree+0xd4/0x518
    early_setup+0xb4/0x214

So call jump_label_init() just before parse_early_param() in
early_init_devtree().

Suggested-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Zhouyi Zhou <zhouzhouyi@gmail.com>
[mpe: Add call trace to change log and minor wording edits.]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220726015747.11754-1-zhouzhouyi@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-25 11:15:47 +02:00
..
trace
vdso32
vdso64
.gitignore
align.c
asm-offsets.c
audit.c
btext.c powerpc/btext: add missing of_node_put 2022-01-27 09:04:28 +01:00
cacheinfo.c powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild 2020-01-27 14:50:55 +01:00
cacheinfo.h powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild 2020-01-27 14:50:55 +01:00
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_fsl_booke.S
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/64s: Don't init FSCR_DSCR in __init_FSCR() 2020-09-03 11:24:16 +02:00
cpu_setup_ppc970.S
cputable.c powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems 2020-03-11 14:15:12 +01:00
crash_dump.c
crash.c
dbell.c KVM: PPC: Book3S HV: use smp_mb() when setting/clearing host_ipi flag 2020-01-09 10:19:08 +01:00
dma-iommu.c powerpc/dma: Fix dma_map_ops::get_required_mask 2020-09-23 12:11:02 +02:00
dma-swiotlb.c
dma.c
dt_cpu_ftrs.c powerpc/64s: Don't let DT CPU features set FSCR_DSCR 2020-06-22 09:05:29 +02:00
eeh_cache.c
eeh_dev.c
eeh_driver.c powerpc/powernv/iov: Ensure the pdn for VFs always contains a valid PE number 2020-02-24 08:34:36 +01:00
eeh_event.c
eeh_pe.c
eeh_sysfs.c
eeh.c powerpc/eeh: Fix EEH handling for hugepages in ioremap space. 2021-05-22 10:59:20 +02:00
entry_32.S
entry_64.S
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S
exceptions-64s.S powerpc/64s: flush L1D after user accesses 2020-11-22 10:02:26 +01:00
fadump.c
firmware.c
fpu.S
fsl_booke_entry_mapping.S
head_8xx.S powerpc/8xx: Fix software emulation interrupt 2021-03-04 09:39:47 +01:00
head_32.S
head_40x.S
head_44x.S
head_64.S powerpc/64: Set up a kernel stack for secondaries before cpu_restore() 2020-12-30 11:25:51 +01:00
head_booke.h
head_fsl_booke.S
hw_breakpoint.c
idle_6xx.S powerpc/mm: Switch obsolete dssall to .long 2022-06-25 11:49:17 +02:00
idle_book3e.S
idle_book3s.S powerpc/powernv/idle: Restore AMR/UAMOR/AMOR after idle 2020-04-17 10:48:53 +02:00
idle_e500.S
idle_power4.S
idle.c powerpc/idle: Fix return value of __setup() handler 2022-06-14 16:59:24 +02:00
ima_kexec.c
io-workarounds.c
io.c
iomap.c
iommu.c powerpc/iommu: Annotate nested lock for lockdep 2021-05-22 10:59:42 +02:00
irq.c
isa-bridge.c
jump_label.c
kexec_elf_64.c
kgdb.c powerpc/kgdb: add kgdb_arch_set/remove_breakpoint() 2020-01-27 14:50:00 +01:00
kprobes-ftrace.c
kprobes.c powerpc/kprobes: Fix kprobe Oops happens in booke 2021-08-26 08:36:39 -04:00
kvm_emul.S
kvm.c powerpc/kvm: Fix kvm_use_magic_page 2022-04-15 14:14:40 +02:00
l2cr_6xx.S powerpc/mm: Switch obsolete dssall to .long 2022-06-25 11:49:17 +02:00
legacy_serial.c
machine_kexec_32.c
machine_kexec_64.c
machine_kexec_file_64.c
machine_kexec.c powerpc: Set crashkernel offset to mid of RMA region 2022-04-15 14:15:01 +02:00
Makefile powerpc/32: Fix boot failure with GCC latent entropy plugin 2022-02-08 18:23:06 +01:00
mce_power.c powerpc/mm/mce: Keep irqs disabled during lockless page table walk 2020-01-27 14:51:14 +01:00
mce.c
misc_32.S
misc_64.S
misc.S
module_32.c
module_64.c powerpc/module64: Fix comment in R_PPC64_ENTRY handling 2021-09-22 11:47:47 +02:00
module.c
module.lds
msi.c
nvram_64.c
of_platform.c
optprobes_head.S
optprobes.c
paca.c
pci_32.c
pci_64.c
pci_dn.c powerpc/sriov: Remove VF eeh_dev state when disabling SR-IOV 2020-02-24 08:34:50 +01:00
pci_of_scan.c powerpc/pci/of: Parse unassigned resources 2020-05-10 10:30:06 +02:00
pci-common.c powerpc/pci: Fix get_phb_number() locking 2022-08-25 11:15:41 +02:00
pci-hotplug.c
pmc.c
ppc32.h
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: Enable execve syscall exit tracepoint 2022-07-02 16:27:36 +02:00
prom_init_check.sh
prom_init.c powerpc/prom_init: Fix improper check of prom_getprop() 2022-01-27 09:04:22 +01:00
prom_parse.c
prom.c powerpc/64: Init jump labels before parse_early_param() 2022-08-25 11:15:47 +02:00
ptrace32.c
ptrace.c powerpc/32: Fix overread/overwrite of thread_struct via ptrace 2022-06-14 16:59:39 +02:00
reloc_32.S
reloc_64.S
rtas_flash.c
rtas_pci.c
rtas-proc.c
rtas-rtc.c
rtas.c powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address 2022-07-02 16:27:36 +02:00
rtasd.c
security.c powerpc/security: Add a helper to query stf_barrier type 2021-11-26 11:36:17 +01:00
setup_32.c
setup_64.c powerpc/64s: flush L1D after user accesses 2020-11-22 10:02:26 +01:00
setup-common.c powerpc/64: Set up a kernel stack for secondaries before cpu_restore() 2020-12-30 11:25:51 +01:00
setup.h
signal_32.c powerpc/tm: Fix clearing MSR[TS] in current when reclaiming on signal delivery 2020-02-28 16:38:48 +01:00
signal_64.c powerpc/64/tm: Don't let userspace set regs->trap via sigreturn 2020-04-17 10:48:53 +02:00
signal.c powerpc/tm: Fix clearing MSR[TS] in current when reclaiming on signal delivery 2020-02-28 16:38:48 +01:00
signal.h
smp-tbsync.c
smp.c powerpc: handle kdump appropriately with crash_kexec_post_notifiers option 2022-01-27 09:04:29 +01:00
stacktrace.c powerpc/stacktrace: Include linux/delay.h 2021-09-22 11:48:01 +02:00
suspend.c
swsusp_32.S powerpc/mm: Switch obsolete dssall to .long 2022-06-25 11:49:17 +02:00
swsusp_64.c
swsusp_asm64.S powerpc/mm: Switch obsolete dssall to .long 2022-06-25 11:49:17 +02:00
swsusp_booke.S
swsusp.c
sys_ppc32.c
syscalls.c
sysfs.c powerpc: Warn about use of smt_snooze_delay 2020-11-05 11:08:51 +01:00
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c powerpc/tau: Disable TAU between measurements 2020-10-30 10:38:19 +01:00
time.c Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled" 2020-04-29 16:31:14 +02:00
tm.S
traps.c powerpc: improve handling of unrecoverable system reset 2021-03-17 16:43:46 +01:00
udbg_16550.c
udbg.c
uprobes.c
vdso.c powerpc/vdso: Fix vdso cpu truncation 2020-08-19 08:14:57 +02:00
vecemu.c
vector.S
vmlinux.lds.S vmlinux.lds.h: Create section for protection against instrumentation 2021-03-24 11:07:31 +01:00
watchdog.c powerpc/watchdog: Fix missed watchdog reset due to memory ordering race 2022-01-27 09:04:29 +01:00