MMCCAM: defer release of ccb until we're done with it

If we've found a device, we attempt to call xpt_action() on a ccb that's
already been released. Simply defer release until after we're done with it.

Reviewed by:	imp, scottl
MFC after:	1 week
This commit is contained in:
Kyle Evans 2019-11-22 19:54:14 +00:00
parent cb285f7c7c
commit 5b0a8ee218
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=355015

View File

@ -1082,7 +1082,6 @@ mmcprobe_done(struct cam_periph *periph, union ccb *done_ccb)
//xpt_async(AC_LOST_DEVICE, path, NULL);
}
xpt_release_ccb(done_ccb);
if (softc->action != PROBE_INVALID)
xpt_schedule(periph, priority);
/* Drop freeze taken due to CAM_DEV_QFREEZE flag set. */
@ -1099,6 +1098,7 @@ mmcprobe_done(struct cam_periph *periph, union ccb *done_ccb)
xpt_async(AC_FOUND_DEVICE, path, done_ccb);
}
}
xpt_release_ccb(done_ccb);
if (softc->action == PROBE_DONE || softc->action == PROBE_INVALID) {
cam_periph_invalidate(periph);
cam_periph_release_locked(periph);