Fix panic message.

The panic message lead people to believe some userland CAM request had
caused a problem when in reallity it was for a kernel request (eg the
USER bit was cleared). Reword message. Also, improve a couple of
comments to reflect that the periph shouldn't be completely torn down
before we get here (so the path and sim pointers should be valid, but
aren't and the code is designed to be robust enough in the face of
that to give a specific panic message).
This commit is contained in:
Warner Losh 2019-02-13 00:10:12 +00:00
parent 37e3a57cc1
commit a73b2e25e1

View File

@ -5411,8 +5411,9 @@ xpt_done_process(struct ccb_hdr *ccb_h)
}
/*
* Insulate against a race where the periph is destroyed
* but CCBs are still not all processed.
* Insulate against a race where the periph is destroyed but CCBs are
* still not all processed. This shouldn't happen, but allows us better
* bug diagnostic when it does.
*/
if (ccb_h->path->bus)
sim = ccb_h->path->bus->sim;
@ -5434,7 +5435,7 @@ xpt_done_process(struct ccb_hdr *ccb_h)
if (sim)
devq = sim->devq;
KASSERT(devq, ("sim missing for XPT_FC_USER_CCB request"));
KASSERT(devq, ("Periph disappeared with request pending."));
mtx_lock(&devq->send_mtx);
devq->send_active--;