linux/arch/arm64/kernel
Mark Salter 982d8d92f2 arm64: fix NULL dereference in have_cpu_die()
commit 335d2c2d19 upstream.

Commit 5c492c3f52 ("arm64: smp: Add function to determine if cpus are
stuck in the kernel") added a helper function to determine if die() is
supported in cpu_ops. This function assumes a cpu will have a valid
cpu_ops entry, but that may not be the case for cpu0 is spin-table or
parking protocol is used to boot secondary cpus. In that case, there
is a NULL dereference if have_cpu_die() is called by cpu0. So add a
check for a valid cpu_ops before dereferencing it.

Fixes: 5c492c3f52 ("arm64: smp: Add function to determine if cpus are stuck in the kernel")
Signed-off-by: Mark Salter <msalter@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-07-05 14:40:31 +02:00
..
probes arm64: migrate exception table users off module.h and onto extable.h 2016-09-20 09:36:21 +01:00
vdso arm64/vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW 2017-06-29 13:00:30 +02:00
.gitignore arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
acpi.c ARM64: ACPI: enable ACPI_SPCR_TABLE 2016-09-28 17:46:57 +02:00
acpi_numa.c arm64/numa: avoid inconsistent information to be printed 2016-09-09 14:59:08 +01:00
acpi_parking_protocol.c arm64: kernel: acpi: fix ioremap in ACPI parking protocol cpu_postboot 2016-02-26 15:39:52 +00:00
alternative.c arm64: alternative: Add support for patching adrp instructions 2016-09-09 15:03:28 +01:00
arm64ksyms.c arm: kernel: Add SMC structure parameter 2017-04-12 12:41:21 +02:00
armv8_deprecated.c arm64: armv8_deprecated: ensure extension of addr 2017-05-25 15:44:45 +02:00
asm-offsets.c arm: kernel: Add SMC structure parameter 2017-04-12 12:41:21 +02:00
cacheinfo.c arm64: simplify sysreg manipulation 2016-09-09 11:43:50 +01:00
cpu-reset.h arm64: Add back cpu reset routines 2016-06-27 16:31:25 +01:00
cpu-reset.S arm64: Add back cpu reset routines 2016-06-27 16:31:25 +01:00
cpu_errata.c arm64: cpufeature: Schedule enable() calls instead of calling them via IPI 2016-10-20 09:50:53 +01:00
cpu_ops.c arm64: apply __ro_after_init to some objects 2016-08-22 12:32:29 +01:00
cpufeature.c arm64: fix erroneous __raw_read_system_reg() cases 2017-03-12 06:41:48 +01:00
cpuidle.c arm64: add support for ACPI Low Power Idle(LPI) 2016-07-21 23:29:38 +02:00
cpuinfo.c arm64: Rearrange CPU errata workaround checks 2016-09-09 15:03:28 +01:00
debug-monitors.c arm64: simplify sysreg manipulation 2016-09-09 11:43:50 +01:00
efi-entry.S arm64: move early boot code to the .init segment 2016-04-14 18:11:30 +01:00
efi.c arm64: efi: avoid block mappings for unaligned UEFI memory regions 2016-07-01 11:56:26 +01:00
entry-fpsimd.S arm64: fpsimd: fix a typo in fpsimd_save_partial_state ENDPROC 2014-07-31 11:42:42 +01:00
entry-ftrace.S ftrace: Remove CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST from config 2016-08-24 12:15:13 +02:00
entry.S arm64: entry: improve data abort handling of tagged pointers 2017-06-14 15:06:05 +02:00
entry32.S arm64: entry32: remove pointless register assignment 2015-07-10 16:47:13 +01:00
fpsimd.c arm64/FP/SIMD: Convert to hotplug state machine 2016-09-19 21:44:25 +02:00
ftrace.c ftrace: Add return address pointer to ftrace_ret_stack 2016-08-24 12:15:14 +02:00
head.S arm64: kernel: Init MDCR_EL2 even in the absence of a PMU 2016-10-17 15:54:30 +01:00
hibernate-asm.S arm64: Introduce raw_{d,i}cache_line_size 2016-09-09 15:03:29 +01:00
hibernate.c Revert "arm64: hibernate: Refuse to hibernate if the boot cpu is offline" 2016-08-26 11:21:25 +01:00
hw_breakpoint.c arm64: hw_breakpoint: fix watchpoint matching for tagged pointers 2017-06-14 15:06:05 +02:00
hyp-stub.S arm64: Add back cpu reset routines 2016-06-27 16:31:25 +01:00
image.h arm64 updates for 4.7: 2016-05-16 17:17:24 -07:00
insn.c arm64: insn: Add helpers for adrp offsets 2016-09-09 15:03:28 +01:00
io.c arm64: optimize memcpy_{from,to}io() and memset_io() 2014-11-06 17:25:27 +00:00
irq.c arm64: remove irq_count and do_softirq_own_stack() 2015-12-21 17:26:01 +00:00
jump_label.c jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
kaslr.c arm64: kaslr: Fix up the kernel image alignment 2017-03-30 09:41:26 +02:00
kgdb.c arm64: kgdb: handle read-only text / modules 2016-09-23 11:25:01 +01:00
kuser32.S arm64: Add __NR_* definitions for compat syscalls 2014-07-10 11:02:40 +01:00
machine_kexec.c arm64/kexec: Add pr_debug output 2016-06-27 16:31:26 +01:00
Makefile arm64: Set UTS_MACHINE in the Makefile 2016-08-31 12:31:38 +01:00
module-plts.c arm64: add support for module PLTs 2016-02-24 14:57:24 +00:00
module.c arm64: add support for kernel ASLR 2016-02-24 14:57:27 +00:00
module.lds arm64: add support for module PLTs 2016-02-24 14:57:24 +00:00
paravirt.c arm64: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops 2015-12-21 14:40:54 +00:00
pci.c arm64: PCI: Add local struct device pointers 2017-04-12 12:41:17 +02:00
perf_callchain.c perf core: Add a 'nr' field to perf_event_callchain_context 2016-05-16 23:11:51 -03:00
perf_event.c KVM: arm64: Fix the issues when guest PMCCFILTR is configured 2016-11-18 09:06:58 +00:00
perf_regs.c perf: Move task_pt_regs sampling into arch code 2015-01-09 11:12:28 +01:00
process.c arm64: fix show_regs fallout from KERN_CONT changes 2016-10-20 15:27:56 +01:00
psci.c ARM: 8511/1: ARM64: kernel: PSCI: move PSCI idle management code to drivers/firmware 2016-02-11 15:33:38 +00:00
ptrace.c arm64/ptrace: Reject attempts to set incomplete hardware breakpoint fields 2017-01-26 08:24:41 +01:00
relocate_kernel.S arm64: Introduce raw_{d,i}cache_line_size 2016-09-09 15:03:29 +01:00
return_address.c arm64: ftrace: fix a stack tracer's output under function graph tracer 2015-12-21 17:26:02 +00:00
setup.c arm64: Set UTS_MACHINE in the Makefile 2016-08-31 12:31:38 +01:00
signal.c arm64: factor work_pending state machine to C 2016-08-22 10:00:48 +01:00
signal32.c arm64: Fix misspellings in comments. 2016-03-04 18:19:17 +00:00
sleep.S kprobes: Unpoison stack in jprobe_return() for KASAN 2016-10-16 11:02:31 +02:00
smccc-call.S firmware: qcom: scm: Fix interrupted SCM calls 2017-04-12 12:41:21 +02:00
smp.c arm64: fix NULL dereference in have_cpu_die() 2017-07-05 14:40:31 +02:00
smp_spin_table.c arm64: vmlinux.ld: Add mmuoff data sections and move mmuoff text into idmap 2016-08-25 18:00:30 +01:00
stacktrace.c arm64: fix dump_backtrace/unwind_frame with NULL tsk 2016-09-26 14:24:01 +01:00
suspend.c arm64: suspend: Reconfigure PSTATE after resume from idle 2016-10-20 09:50:54 +01:00
sys.c arm64: compat: Check for AArch32 state 2016-04-20 12:22:42 +01:00
sys32.c arm64: fix implementation of mmap2 compat syscall 2015-03-19 10:43:51 +00:00
sys_compat.c arm64: simplify sysreg manipulation 2016-09-09 11:43:50 +01:00
time.c arm64: ftrace: fix a stack tracer's output under function graph tracer 2015-12-21 17:26:02 +00:00
topology.c arm64: kernel: remove non-legit DT warnings when booting using ACPI 2015-07-27 11:08:41 +01:00
trace-events-emulation.h arm64: Trace emulation of AArch32 legacy instructions 2014-11-20 16:35:02 +00:00
traps.c arm64: traps: fix userspace cache maintenance emulation on a tagged pointer 2017-06-14 15:06:04 +02:00
vdso.c arm64/vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW 2017-06-29 13:00:30 +02:00
vmlinux.lds.S nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00