git: c30a767c6fd6 - main - linux(4): Microoptimize rt_sendsig(), convert signal mask once
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 30 May 2022 17:04:19 UTC
The branch main has been updated by dchagin:
URL: https://cgit.FreeBSD.org/src/commit/?id=c30a767c6fd6d3f19e897fb800513e75175249b9
commit c30a767c6fd6d3f19e897fb800513e75175249b9
Author: Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2022-05-30 16:49:45 +0000
Commit: Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2022-05-30 16:49:45 +0000
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
---
sys/amd64/linux/linux_sysvec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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;