diff options
author | marius <marius@FreeBSD.org> | 2013-06-04 20:49:17 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2013-06-04 20:49:17 +0000 |
commit | e44e86f2ac06954613af9495cb38c4d4da6ce1d8 (patch) | |
tree | 24b56de62188a91351705ab1c889ce62cf93fd48 /sys/dev/sym | |
parent | 058cacb0224235da6e2a9fb150ef9ccc437730f9 (diff) | |
download | FreeBSD-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.c | 17 |
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; |