aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/linux
diff options
context:
space:
mode:
authorDmitry Chagin <dchagin@FreeBSD.org>2022-05-30 16:49:45 +0000
committerDmitry Chagin <dchagin@FreeBSD.org>2022-05-30 16:49:45 +0000
commitc30a767c6fd6d3f19e897fb800513e75175249b9 (patch)
treeb6d83ef187b33b2126c4e9a853b2473640af71dd /sys/amd64/linux
parent2ab9b59faafb68402dbebc285b424cfb06b59cf3 (diff)
downloadsrc-c30a767c6fd6d3f19e897fb800513e75175249b9.tar.gz
src-c30a767c6fd6d3f19e897fb800513e75175249b9.zip
linux(4): Microoptimize rt_sendsig(), convert signal mask once
On amd64 Linux saves the thread signal mask in both contexts, in the machine dependent and in the machine independent. Both contexts are user accessible. Convert the mask once, then copy it. MFC after: 2 weeks
Diffstat (limited to 'sys/amd64/linux')
-rw-r--r--sys/amd64/linux/linux_sysvec.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/amd64/linux/linux_sysvec.c b/sys/amd64/linux/linux_sysvec.c
index 7aa2cfc1b30e..4cd41b364b95 100644
--- a/sys/amd64/linux/linux_sysvec.c
+++ b/sys/amd64/linux/linux_sysvec.c
@@ -576,7 +576,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
/* Save user context. */
bzero(&sf, sizeof(sf));
bsd_to_linux_sigset(mask, &sf.sf_uc.uc_sigmask);
- bsd_to_linux_sigset(mask, &sf.sf_uc.uc_mcontext.sc_mask);
+ sf.sf_uc.uc_mcontext.sc_mask = sf.sf_uc.uc_sigmask;
sf.sf_uc.uc_stack.ss_sp = PTROUT(td->td_sigstk.ss_sp);
sf.sf_uc.uc_stack.ss_size = td->td_sigstk.ss_size;