powerpc: Allow clearing and restoring registers independent of saved breakpoint state
authorJordan Niethe <jniethe5@gmail.com>
Wed, 9 Nov 2022 04:51:04 +0000 (15:51 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 30 Nov 2022 10:46:48 +0000 (21:46 +1100)
commit3671f4ebe3eb12e7222e4d7b0f94e85cfe34253a
tree606d44fbe2e07bb1682594de855651d64f885295
parente082e99f6f87f5204b2531d5a3db7bbd929d23b1
powerpc: Allow clearing and restoring registers independent of saved breakpoint state

For the coming temporary mm used for instruction patching, the
breakpoint registers need to be cleared to prevent them from
accidentally being triggered. As soon as the patching is done, the
breakpoints will be restored.

The breakpoint state is stored in the per-cpu variable current_brk[].
Add a suspend_breakpoints() function which will clear the breakpoint
registers without touching the state in current_brk[]. Add a pair
function restore_breakpoints() which will move the state in
current_brk[] back to the registers.

Signed-off-by: Jordan Niethe <jniethe5@gmail.com>
Signed-off-by: Benjamin Gray <bgray@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221109045112.187069-2-bgray@linux.ibm.com
arch/powerpc/include/asm/debug.h
arch/powerpc/kernel/process.c