Loading
powerpc/32: Restore clearing of MSR[RI] at interrupt/syscall exit
Commit 13799748 ("powerpc/64: use interrupt restart table to speed up return from interrupt") removed the inconditional clearing of MSR[RI] when returning from interrupt into kernel. But powerpc/32 doesn't implement interrupt restart table hence still need MSR[RI] to be cleared. It could be added back in interrupt_exit_kernel_prepare() but it is easier and better to add it back in entry_32.S for following reasons: - Writing to MSR must be followed by a synchronising instruction - The smaller the non recoverable section is the better it is So add a macro called clr_ri and use it in the three places that play up with SRR0/SRR1. Use it just before another mtspr for synchronisation to avoid having to add an isync. Now that's done in entry_32.S, exit_must_hard_disable() can return false for non book3s/64, taking into account that BOOKE doesn't have MSR_RI. Also add back blacklisting syscall_exit_finish for kprobe. This was initially added by commit 7cdf4401 ("powerpc/entry32: Blacklist syscall exit points for kprobe.") then lost with commit 6f76a011 ("powerpc/syscall: implement system call entry/exit logic in C for PPC32"). Fixes: 6f76a011 ("powerpc/syscall: implement system call entry/exit logic in C for PPC32") Fixes: 13799748 ("powerpc/64: use interrupt restart table to speed up return from interrupt") Signed-off-by:Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by:
Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/66d0ab070563ad460ed481328ab0887c27f21a2c.1757593807.git.christophe.leroy@csgroup.eu