summaryrefslogtreecommitdiffstats
path: root/sys/dev/twa
diff options
context:
space:
mode:
authorvkashyap <vkashyap@FreeBSD.org>2005-06-11 00:14:23 +0000
committervkashyap <vkashyap@FreeBSD.org>2005-06-11 00:14:23 +0000
commit79ca8ce4826a3a923d1cd391bd2400cb70887243 (patch)
treef27d3320a6d63ba1b350f455ac1e86fffe3dd87e /sys/dev/twa
parent3bb055500e2853f81a74bc846a5c94bf99a5c906 (diff)
downloadFreeBSD-src-79ca8ce4826a3a923d1cd391bd2400cb70887243.zip
FreeBSD-src-79ca8ce4826a3a923d1cd391bd2400cb70887243.tar.gz
Acquire Giant before making some CAM calls that need Giant to be held.
Diffstat (limited to 'sys/dev/twa')
-rw-r--r--sys/dev/twa/tw_osl_cam.c4
-rw-r--r--sys/dev/twa/tw_osl_share.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/twa/tw_osl_cam.c b/sys/dev/twa/tw_osl_cam.c
index 1480cd0..d82f91e 100644
--- a/sys/dev/twa/tw_osl_cam.c
+++ b/sys/dev/twa/tw_osl_cam.c
@@ -189,6 +189,7 @@ tw_osli_cam_detach(struct twa_softc *sc)
{
tw_osli_dbg_dprintf(3, sc, "entered");
+ mtx_lock(&Giant);
if (sc->path)
xpt_free_path(sc->path);
if (sc->sim) {
@@ -196,6 +197,7 @@ tw_osli_cam_detach(struct twa_softc *sc)
/* Passing TRUE to cam_sim_free will free the devq as well. */
cam_sim_free(sc->sim, TRUE);
}
+ mtx_unlock(&Giant);
}
@@ -571,6 +573,7 @@ tw_osli_request_bus_scan(struct twa_softc *sc)
if ((ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK)) == NULL)
return(ENOMEM);
bzero(ccb, sizeof(union ccb));
+ mtx_lock(&Giant);
if (xpt_create_path(&path, xpt_periph, cam_sim_path(sc->sim),
CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP)
return(EIO);
@@ -580,6 +583,7 @@ tw_osli_request_bus_scan(struct twa_softc *sc)
ccb->ccb_h.cbfcnp = twa_bus_scan_cb;
ccb->crcn.flags = CAM_FLAG_NONE;
xpt_action(ccb);
+ mtx_unlock(&Giant);
return(0);
}
diff --git a/sys/dev/twa/tw_osl_share.h b/sys/dev/twa/tw_osl_share.h
index 07069bd..c19024d 100644
--- a/sys/dev/twa/tw_osl_share.h
+++ b/sys/dev/twa/tw_osl_share.h
@@ -65,7 +65,7 @@
#define TW_OSL_FLASH_FIRMWARE
#endif
-#define TW_OSL_DRIVER_VERSION_STRING "3.60.00.016"
+#define TW_OSL_DRIVER_VERSION_STRING "3.60.00.017"
#define TW_OSL_CAN_SLEEP
OpenPOWER on IntegriCloud