]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/signal64: Replace restore_sigcontext() w/ unsafe_restore_sigcontext()
authorChristopher M. Riedl <cmr@codefail.de>
Sat, 27 Feb 2021 01:12:56 +0000 (19:12 -0600)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 29 Mar 2021 01:49:47 +0000 (12:49 +1100)
commit129ece3663b6c9d77cd742b40e54faab0af3391e
tree4bda5c53393540d31b4da2bbe81edd3bb8892362
parente4e150baa10ab55c181b82060535e67c005245a1
powerpc/signal64: Replace restore_sigcontext() w/ unsafe_restore_sigcontext()

Previously restore_sigcontext() performed a costly KUAP switch on every
uaccess operation. These repeated uaccess switches cause a significant
drop in signal handling performance.

Rewrite restore_sigcontext() to assume that a userspace read access
window is open by replacing all uaccess functions with their 'unsafe'
versions. Modify the callers to first open, call
unsafe_restore_sigcontext(), and then close the uaccess window.

Signed-off-by: Christopher M. Riedl <cmr@codefail.de>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210227011259.11992-8-cmr@codefail.de
arch/powerpc/kernel/signal_64.c