aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mps
diff options
context:
space:
mode:
authorScott Long <scottl@FreeBSD.org>2014-07-01 10:51:20 +0000
committerScott Long <scottl@FreeBSD.org>2014-07-01 10:51:20 +0000
commit9b6ea4e794ccc51785ff4ac9f0afb2e3906be680 (patch)
tree2e584c43bf8627757c0e053a71690d817496f00c /sys/dev/mps
parent350d51816e11423d5901ac9f374063adaed66a85 (diff)
Notes
Diffstat (limited to 'sys/dev/mps')
-rw-r--r--sys/dev/mps/mps_sas.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/mps/mps_sas.c b/sys/dev/mps/mps_sas.c
index e961b3bff25c..83c5c3b1d004 100644
--- a/sys/dev/mps/mps_sas.c
+++ b/sys/dev/mps/mps_sas.c
@@ -1852,7 +1852,7 @@ mpssas_action_scsiio(struct mpssas_softc *sassc, union ccb *ccb)
* the I/O to the IR volume itself.
*/
if (sc->WD_valid_config) {
- if (mpssas_get_ccbstatus(ccb) != MPS_WD_RETRY) {
+ if (ccb->ccb_h.sim_priv.entries[0].field == MPS_WD_RETRY) {
mpssas_direct_drive_io(sassc, cm, ccb);
} else {
mpssas_set_ccbstatus(ccb, CAM_REQ_INPROG);
@@ -2219,10 +2219,11 @@ mpssas_scsiio_complete(struct mps_softc *sc, struct mps_command *cm)
*/
if (cm->cm_flags & MPS_CM_FLAGS_DD_IO) {
mps_free_command(sc, cm);
- mpssas_set_ccbstatus(ccb, MPS_WD_RETRY);
+ ccb->ccb_h.sim_priv.entries[0].field = MPS_WD_RETRY;
mpssas_action_scsiio(sassc, ccb);
return;
- }
+ } else
+ ccb->ccb_h.sim_priv.entries[0].field = 0;
switch (le16toh(rep->IOCStatus) & MPI2_IOCSTATUS_MASK) {
case MPI2_IOCSTATUS_SCSI_DATA_UNDERRUN: