mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-21 01:03:42 +00:00
postsig() currently requires Giant to be held. Giant is held properly at
the first postsig() call, but not always held at the second place, resulting in an occassional panic.
This commit is contained in:
parent
e3718e310c
commit
085be199c6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=79222
|
@ -91,9 +91,11 @@ userret(p, frame, oticks)
|
|||
mi_switch();
|
||||
mtx_unlock_spin(&sched_lock);
|
||||
PICKUP_GIANT();
|
||||
mtx_lock(&Giant);
|
||||
PROC_LOCK(p);
|
||||
while ((sig = CURSIG(p)) != 0)
|
||||
postsig(sig);
|
||||
mtx_unlock(&Giant);
|
||||
mtx_lock_spin(&sched_lock);
|
||||
PROC_UNLOCK_NOSWITCH(p);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue