summaryrefslogtreecommitdiffstats
path: root/sys/dev/sym
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2013-06-04 20:49:17 +0000
committermarius <marius@FreeBSD.org>2013-06-04 20:49:17 +0000
commite44e86f2ac06954613af9495cb38c4d4da6ce1d8 (patch)
tree24b56de62188a91351705ab1c889ce62cf93fd48 /sys/dev/sym
parent058cacb0224235da6e2a9fb150ef9ccc437730f9 (diff)
downloadFreeBSD-src-e44e86f2ac06954613af9495cb38c4d4da6ce1d8.zip
FreeBSD-src-e44e86f2ac06954613af9495cb38c4d4da6ce1d8.tar.gz
CAM_DEV_QFREEZE handling should only be done on request submission but
neither on completion nor by SIM drivers in the first place. This issue has been revealed by r249466. Reviewed by: mav MFC after: 3 days
Diffstat (limited to 'sys/dev/sym')
-rw-r--r--sys/dev/sym/sym_hipd.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c
index 7eebfd3..33633d7 100644
--- a/sys/dev/sym/sym_hipd.c
+++ b/sys/dev/sym/sym_hipd.c
@@ -2352,17 +2352,6 @@ static void sym_enqueue_cam_ccb(ccb_p cp)
/*
* Complete a pending CAM CCB.
*/
-static void _sym_xpt_done(hcb_p np, union ccb *ccb)
-{
- SYM_LOCK_ASSERT(MA_OWNED);
-
- KASSERT((ccb->ccb_h.status & CAM_SIM_QUEUED) == 0,
- ("%s: status=CAM_SIM_QUEUED", __func__));
-
- if (ccb->ccb_h.flags & CAM_DEV_QFREEZE)
- sym_freeze_cam_ccb(ccb);
- xpt_done(ccb);
-}
static void sym_xpt_done(hcb_p np, union ccb *ccb, ccb_p cp)
{
@@ -2374,7 +2363,7 @@ static void sym_xpt_done(hcb_p np, union ccb *ccb, ccb_p cp)
ccb->ccb_h.status &= ~CAM_SIM_QUEUED;
ccb->ccb_h.sym_hcb_ptr = NULL;
}
- _sym_xpt_done(np, ccb);
+ xpt_done(ccb);
}
static void sym_xpt_done2(hcb_p np, union ccb *ccb, int cam_status)
@@ -2382,7 +2371,7 @@ static void sym_xpt_done2(hcb_p np, union ccb *ccb, int cam_status)
SYM_LOCK_ASSERT(MA_OWNED);
sym_set_cam_status(ccb, cam_status);
- _sym_xpt_done(np, ccb);
+ xpt_done(ccb);
}
/*
@@ -8935,7 +8924,7 @@ static int sym_cam_attach(hcb_p np)
goto fail;
np->sim = sim;
- if (xpt_create_path(&path, 0,
+ if (xpt_create_path(&path, NULL,
cam_sim_path(np->sim), CAM_TARGET_WILDCARD,
CAM_LUN_WILDCARD) != CAM_REQ_CMP) {
goto fail;
OpenPOWER on IntegriCloud