]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit46cee0d108c64a6357df0bab9d70ce345304ab27
tree9db2aba85bd44e99947b35a548a782b05c804240
parent992892232860d8d1fc5054e3d9ffa910512a506f
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