powerpc/watchpoint: Disable watchpoint hit by larx/stcx instructions
authorRavi Bangoria <ravi.bangoria@linux.ibm.com>
Tue, 10 Sep 2019 13:15:13 +0000 (18:45 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 11 Sep 2019 23:27:00 +0000 (09:27 +1000)
commitbc01bdf6c5df5023272a7399962cf64f8fedc93e
tree9db2aba85bd44e99947b35a548a782b05c804240
parent587164cd593c2cbdad376179f85159e31221989e
powerpc/watchpoint: Disable watchpoint hit by larx/stcx instructions

If watchpoint exception is generated by larx/stcx instructions, the
reservation created by larx gets lost while handling exception, and
thus stcx instruction always fails. Generally these instructions are
used in a while(1) loop, for example spinlocks. And because stcx
never succeeds, it loops forever and ultimately hangs the system.

Note that ptrace anyway works in one-shot mode and thus for ptrace
we don't change the behaviour. It's up to ptrace user to take care
of this.

Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190910131513.30499-1-ravi.bangoria@linux.ibm.com
arch/powerpc/kernel/hw_breakpoint.c