FreeBSD Bugzilla – Attachment 211781 Details for
Bug 244250
sys.file.flock_test.main panics kernel after [r358153, r358170]
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Do not call sigfastblock_setpend() while owning mutexes.
1.patch (text/plain), 953 bytes, created by
Konstantin Belousov
on 2020-02-20 19:59:10 UTC
(
hide
)
Description:
Do not call sigfastblock_setpend() while owning mutexes.
Filename:
MIME Type:
Creator:
Konstantin Belousov
Created:
2020-02-20 19:59:10 UTC
Size:
953 bytes
patch
obsolete
>diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c >index 5ef3f1c6935..8dd7b48e59e 100644 >--- a/sys/kern/subr_trap.c >+++ b/sys/kern/subr_trap.c >@@ -326,21 +326,23 @@ ast(struct trapframe *framep) > if (flags & TDF_NEEDSIGCHK || p->p_pendingcnt > 0 || > !SIGISEMPTY(p->p_siglist)) { > sigfastblock_fetch(td); >- PROC_LOCK(p); >- mtx_lock(&p->p_sigacts->ps_mtx); > if ((td->td_pflags & TDP_SIGFASTBLOCK) != 0 && > td->td_sigblock_val != 0) { > sigfastblock_setpend(td); >+ PROC_LOCK(p); > reschedule_signals(p, fastblock_mask, >- SIGPROCMASK_PS_LOCKED | SIGPROCMASK_FASTBLK); >+ SIGPROCMASK_FASTBLK); >+ PROC_UNLOCK(p); > } else { >+ PROC_LOCK(p); >+ mtx_lock(&p->p_sigacts->ps_mtx); > while ((sig = cursig(td)) != 0) { > KASSERT(sig >= 0, ("sig %d", sig)); > postsig(sig); > } >+ mtx_unlock(&p->p_sigacts->ps_mtx); >+ PROC_UNLOCK(p); > } >- mtx_unlock(&p->p_sigacts->ps_mtx); >- PROC_UNLOCK(p); > } > > /*
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 244250
: 211781