]> 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)
commit9d4bf96cd6cdae9c85e9ea6d7b625ba3b94cfc38
tree4bda5c53393540d31b4da2bbe81edd3bb8892362
parent37bd2fe6559abd147c264c6d2b78981d2cef15fa
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