diff options
author | vkashyap <vkashyap@FreeBSD.org> | 2005-06-11 00:14:23 +0000 |
---|---|---|
committer | vkashyap <vkashyap@FreeBSD.org> | 2005-06-11 00:14:23 +0000 |
commit | 79ca8ce4826a3a923d1cd391bd2400cb70887243 (patch) | |
tree | f27d3320a6d63ba1b350f455ac1e86fffe3dd87e /sys/dev/twa | |
parent | 3bb055500e2853f81a74bc846a5c94bf99a5c906 (diff) | |
download | FreeBSD-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.c | 4 | ||||
-rw-r--r-- | sys/dev/twa/tw_osl_share.h | 2 |
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 |