summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac/aac_cam.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/aac/aac_cam.c')
-rw-r--r--sys/dev/aac/aac_cam.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/aac/aac_cam.c b/sys/dev/aac/aac_cam.c
index e1874be..b7e22b1 100644
--- a/sys/dev/aac/aac_cam.c
+++ b/sys/dev/aac/aac_cam.c
@@ -286,7 +286,9 @@ aac_cam_action(struct cam_sim *sim, union ccb *ccb)
/* Async ops that require communcation with the controller */
+ AAC_LOCK_ACQUIRE(&sc->aac_io_lock);
if (aac_alloc_command(sc, &cm)) {
+ AAC_LOCK_RELEASE(&sc->aac_io_lock);
xpt_freeze_simq(sim, 1);
ccb->ccb_h.status = CAM_REQUEUE_REQ;
xpt_done(ccb);
@@ -402,6 +404,8 @@ aac_cam_action(struct cam_sim *sim, union ccb *ccb)
aac_enqueue_ready(cm);
aac_startio(cm->cm_sc);
+ AAC_LOCK_RELEASE(&sc->aac_io_lock);
+
return;
}
OpenPOWER on IntegriCloud