Subject: [PATCH] ARM: hw_breakpoint: blacklist Scorpion CPUs

From: [email-masked] (Stephen Boyd)
Date: Thu, 5 Jan 2017 15:23:24 -0800

On 01/05, Mark Rutland wrote:
> 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.

I believe the workaround is to read DBGPRSR after exit from WFI?
I'm fine with the blacklisting approach though.

> 
> Signed-off-by: Mark Rutland <[email-masked]>
> Reported-by: Linus Walleij <[email-masked]>
> Cc: Russell King <[email-masked]>
> Cc: Stephen Boyd <[email-masked]>
> Cc: Will Deacon <[email-masked]>
> Cc: stable at vger.kernel.org
> ---

Reviewed-by: Stephen Boyd <[email-masked]>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project