Date: Fri, 17 Jun 2022 19:41:24 GMT From: Dmitry Chagin <dchagin@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 0f23fc29f90f - stable/13 - linux(4): Avoid direct manipulation of td_sigmask Message-ID: <202206171941.25HJfOEC030436@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=0f23fc29f90f6ce49975f2576b149ce9e1e35784 commit 0f23fc29f90f6ce49975f2576b149ce9e1e35784 Author: Dmitry Chagin <dchagin@FreeBSD.org> AuthorDate: 2022-05-30 16:48:20 +0000 Commit: Dmitry Chagin <dchagin@FreeBSD.org> CommitDate: 2022-06-17 19:35:37 +0000 linux(4): Avoid direct manipulation of td_sigmask Use kern_sigprocmask() instead of direct manipulation of td_sigmask to reschedule newly blocked signals. MFC after: 2 weeks (cherry picked from commit 2ab9b59faafb68402dbebc285b424cfb06b59cf3) --- sys/amd64/linux/linux_sysvec.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sys/amd64/linux/linux_sysvec.c b/sys/amd64/linux/linux_sysvec.c index 329a0a2567c0..83aa646fee20 100644 --- a/sys/amd64/linux/linux_sysvec.c +++ b/sys/amd64/linux/linux_sysvec.c @@ -465,6 +465,7 @@ linux_rt_sigreturn(struct thread *td, struct linux_rt_sigreturn_args *args) struct l_sigcontext *context; struct trapframe *regs; unsigned long rflags; + sigset_t bmask; int error; ksiginfo_t ksi; @@ -513,11 +514,8 @@ linux_rt_sigreturn(struct thread *td, struct linux_rt_sigreturn_args *args) return (EINVAL); } - PROC_LOCK(p); - linux_to_bsd_sigset(&uc.uc_sigmask, &td->td_sigmask); - SIG_CANTMASK(td->td_sigmask); - signotify(td); - PROC_UNLOCK(p); + linux_to_bsd_sigset(&uc.uc_sigmask, &bmask); + kern_sigprocmask(td, SIG_SETMASK, &bmask, NULL, 0); regs->tf_rdi = context->sc_rdi; regs->tf_rsi = context->sc_rsi;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202206171941.25HJfOEC030436>