svn commit: r232358 - head/sys/dev/usb/storage
Hans Petter Selasky
hselasky at FreeBSD.org
Thu Mar 1 20:10:56 UTC 2012
Author: hselasky
Date: Thu Mar 1 20:10:54 2012
New Revision: 232358
URL: http://svn.freebsd.org/changeset/base/232358
Log:
Close a detach race. Make sure all pending
CCB's get canceled at device detach.
MFC after: 1 week
Modified:
head/sys/dev/usb/storage/umass.c
Modified: head/sys/dev/usb/storage/umass.c
==============================================================================
--- head/sys/dev/usb/storage/umass.c Thu Mar 1 20:03:44 2012 (r232357)
+++ head/sys/dev/usb/storage/umass.c Thu Mar 1 20:10:54 2012 (r232358)
@@ -1056,6 +1056,11 @@ umass_detach(device_t dev)
#if (__FreeBSD_version >= 700037)
mtx_lock(&sc->sc_mtx);
#endif
+
+ /* cancel any leftover CCB's */
+
+ umass_cancel_ccb(sc);
+
umass_cam_detach_sim(sc);
#if (__FreeBSD_version >= 700037)
@@ -1607,8 +1612,7 @@ umass_command_start(struct umass_softc *
if (sc->sc_xfer[sc->sc_last_xfer_index]) {
usbd_transfer_start(sc->sc_xfer[sc->sc_last_xfer_index]);
} else {
- ccb->ccb_h.status = CAM_TID_INVALID;
- xpt_done(ccb);
+ umass_cancel_ccb(sc);
}
}
More information about the svn-src-all
mailing list