linux_dsm_epyc7002/arch/arm/kernel
Mark Rutland ddc37832a1 ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs
On APQ8060, the kernel crashes in arch_hw_breakpoint_init, taking an
undefined instruction trap within write_wb_reg. This is because Scorpion
CPUs erroneously appear to set DBGPRSR.SPD when WFI is issued, even if
the core is not powered down. When DBGPRSR.SPD is set, breakpoint and
watchpoint registers are treated as undefined.

It's possible to trigger similar crashes later on from userspace, by
requesting the kernel to install a breakpoint or watchpoint, as we can
go idle at any point between the reset of the debug registers and their
later use. This has always been the case.

Given that this has always been broken, no-one has complained until now,
and there is no clear workaround, disable hardware breakpoints and
watchpoints on Scorpion to avoid these issues.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reported-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: stable@vger.kernel.org
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2017-01-10 23:32:26 +00:00
..
.gitignore
arch_timer.c
armksyms.c Revert "arm: move exports to definitions" 2016-11-23 10:00:03 +00:00
asm-offsets.c ARM: save and reset the address limit when entering an exception 2016-07-07 16:01:01 +01:00
atags_compat.c
atags_parse.c
atags_proc.c
atags.h
bios32.c Merge branches 'pci/demodularize-hosts' and 'pci/host-request-windows' into next 2016-08-01 12:23:57 -05:00
cpuidle.c ARM: 8595/2: apply more __ro_after_init 2016-08-12 16:47:06 +01:00
crash_dump.c
debug.S
devtree.c ARM: 8616/1: dt: Respect property size when parsing CPUs 2016-09-29 16:57:43 +01:00
dma-isa.c
dma.c
early_printk.c
efi.c
elf.c
entry-armv.S ARM: fix address limit restoration for undefined instructions 2016-08-09 22:57:59 +01:00
entry-common.S ARM: convert to generated system call tables 2016-10-18 21:34:06 +01:00
entry-ftrace.S Revert "arm: move exports to definitions" 2016-11-23 10:00:03 +00:00
entry-header.S ARM: save and reset the address limit when entering an exception 2016-07-07 16:01:01 +01:00
entry-v7m.S ARM: rename S_FRAME_SIZE to PT_REGS_SIZE 2016-06-22 19:54:28 +01:00
fiq.c
fiqasm.S
ftrace.c ftrace: Add return address pointer to ftrace_ret_stack 2016-08-24 12:15:14 +02:00
head-common.S
head-nommu.S ARM: 8607/1: V7M: Wire up caches for V7M processors with cache support. 2016-09-06 15:51:08 +01:00
head.S Revert "arm: move exports to definitions" 2016-11-23 10:00:03 +00:00
hibernate.c
hw_breakpoint.c ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs 2017-01-10 23:32:26 +00:00
hyp-stub.S ARM: 8600/1: Enforce some NS-SVC initialisation 2016-08-23 10:08:33 +01:00
insn.c
io.c
irq.c
isa.c
iwmmxt.S
jump_label.c
kgdb.c
machine_kexec.c ARM: kexec: fix kexec for Keystone 2 2016-08-02 19:35:29 -04:00
Makefile Revert "arm: move exports to definitions" 2016-11-23 10:00:03 +00:00
module-plts.c ARM: kernel: avoid brute force search on PLT generation 2016-08-30 17:45:34 +01:00
module.c
module.lds ARM: kernel: merge core and init PLTs 2016-08-30 17:45:34 +01:00
opcodes.c
paravirt.c
patch.c
perf_callchain.c
perf_event_v6.c
perf_event_v7.c arm: perf: move to common attr_group fields 2016-09-09 14:51:51 +01:00
perf_event_xscale.c
perf_regs.c
pj4-cp0.c
process.c ARM: use simpler API for random address requests 2016-10-11 15:06:32 -07:00
psci_smp.c
ptrace.c
reboot.c
reboot.h
relocate_kernel.S
return_address.c
setup.c ARM: 8604/1: V7M: Add support for reading the CTR with read_cpuid_cachetype() 2016-09-06 15:51:07 +01:00
signal.c
sigreturn_codes.S
sleep.S
smccc-call.S Revert "arm: move exports to definitions" 2016-11-23 10:00:03 +00:00
smp_scu.c
smp_tlb.c ARM: 8577/1: Fix Cortex-A15 798181 errata initialization 2016-07-02 12:13:03 +01:00
smp_twd.c cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
smp.c nmi_backtrace: do a local dump_stack() instead of a self-NMI 2016-10-07 18:46:30 -07:00
stacktrace.c
suspend.c
swp_emulate.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
sys_arm.c
sys_oabi-compat.c arm: oabi compat: add missing access checks 2016-08-10 12:57:45 -07:00
tcm.c
thumbee.c
time.c
topology.c ARM: 8622/3: add sysfs cpu_capacity attribute 2016-11-22 11:45:08 +00:00
traps.c ARM: fix backtrace 2016-11-15 15:25:39 +00:00
unwind.c
v7m.c
vdso.c Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-10-06 07:59:37 -07:00
vmlinux-xip.lds.S ARM: Fix XIP kernels 2016-11-16 23:51:19 +00:00
vmlinux.lds.S nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00
xscale-cp0.c