linux/arch/arm
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
..
boot ARM: dts: hix5hd2: don't change the existing compatible string 2016-12-20 14:12:29 -05:00
common Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
configs ARM: SoC defconfig updates for v4.10 2016-12-15 15:41:04 -08:00
crypto crypto: arm/crc32 - accelerated support based on x86 SSE implementation 2016-12-07 20:01:24 +08:00
firmware
include ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs 2017-01-10 23:32:26 +00:00
kernel ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs 2017-01-10 23:32:26 +00:00
kvm Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
lib Merge branches 'clkdev', 'fixes', 'misc' and 'sa1100-base' into for-linus 2016-12-14 11:13:46 +00:00
mach-alpine
mach-artpec ARM: ARTPEC-6: add select MFD_SYSCON to MACH_ARTPEC6 2016-11-26 00:06:34 +01:00
mach-asm9260
mach-aspeed
mach-at91
mach-axxia
mach-bcm
mach-berlin
mach-clps711x
mach-cns3xxx
mach-davinci clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-exynos
mach-footbridge clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM/imx/mmcd: Fix broken cpu hotplug handling 2016-12-25 10:47:40 +01:00
mach-integrator ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
mach-iop13xx Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
mach-iop32x
mach-iop33x
mach-ixp4xx clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-keystone
mach-ks8695
mach-lpc18xx
mach-lpc32xx ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
mach-mediatek
mach-meson
mach-mmp clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-moxart
mach-mv78xx0
mach-mvebu cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1
mach-omap2 clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-orion5x ARM: orion5x: remove legacy support of ls-chl 2016-11-19 09:14:28 +01:00
mach-oxnas ARM: oxnas: Add OX820 config and makefile entry 2016-11-23 09:53:55 +01:00
mach-picoxcell
mach-prima2
mach-pxa ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
mach-qcom
mach-realview
mach-rockchip
mach-rpc Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
mach-s3c24xx
mach-s3c64xx MTD updates for v4.10-rc1: 2016-12-17 16:41:10 -08:00
mach-s5pv210
mach-sa1100 Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-12-15 16:06:15 -08:00
mach-shmobile ARM: SoC driver updates for v4.10 2016-12-15 16:03:25 -08:00
mach-socfpga
mach-spear
mach-sti
mach-stm32
mach-sunxi
mach-tango
mach-tegra
mach-u300
mach-uniphier
mach-ux500
mach-versatile
mach-vexpress
mach-vt8500
mach-w90x900
mach-zx
mach-zynq
mm cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
net
nwfpe
oprofile
plat-iop clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
plat-omap
plat-orion
plat-pxa
plat-samsung virtio, vhost: new device, fixes, speedups 2016-12-15 18:13:41 -08:00
plat-versatile
probes
tools Merge branch 'syscalls' into for-linus 2016-12-14 11:14:00 +00:00
vdso
vfp cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
xen cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
Kconfig ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
Kconfig-nommu
Kconfig.debug
Makefile Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-12-15 16:06:15 -08:00