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
@ -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 New Issue
Block a user