cam: Avoiding waking up doneq threads if we're dumping
Depending on the state of the target doneq thread at the time of the panic, the wakeup can hang indefinitely in thread_lock_block_wait(). That function should likely be modified to return immediately if the scheduler is stopped, but it is also preferable to avoid wakeups in general after a panic. Reported by: pho Reviewed by: mav, imp MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D32126
This commit is contained in:
parent
24a3897c2c
commit
ed8ef7ae8b
@ -4627,7 +4627,7 @@ xpt_done(union ccb *done_ccb)
|
||||
STAILQ_INSERT_TAIL(&queue->cam_doneq, &done_ccb->ccb_h, sim_links.stqe);
|
||||
done_ccb->ccb_h.pinfo.index = CAM_DONEQ_INDEX;
|
||||
mtx_unlock(&queue->cam_doneq_mtx);
|
||||
if (run)
|
||||
if (run && !dumping)
|
||||
wakeup(&queue->cam_doneq);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user