summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2001-03-21 00:46:44 +0000
committermjacob <mjacob@FreeBSD.org>2001-03-21 00:46:44 +0000
commit19e4ecac5bb0513cf60610a656c2a784e01692ce (patch)
tree2064ec668a4f57668f7903d13106a3f895e77673 /sys
parent528e5cb4118d15115d17542f8c4da0b920dbf4bc (diff)
downloadFreeBSD-src-19e4ecac5bb0513cf60610a656c2a784e01692ce.zip
FreeBSD-src-19e4ecac5bb0513cf60610a656c2a784e01692ce.tar.gz
Check CT2_SENDSTATUS/CT_SENDSTATUS against cto->ct_flags, not
CAM_SEND_STATUS. Set a timeout of 2 seconds per CTIO. Make sure that the 'real' tag value is being checked against- not the one that also carries the firmware handle.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/isp/isp_freebsd.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c
index 7365b2e..6ac2a8f 100644
--- a/sys/dev/isp/isp_freebsd.c
+++ b/sys/dev/isp/isp_freebsd.c
@@ -812,11 +812,12 @@ isp_target_start_ctio(struct ispsoftc *isp, union ccb *ccb)
*/
ccb->ccb_h.flags &= ~CAM_SEND_SENSE;
}
- if (cto->ct_flags & CAM_SEND_STATUS) {
+ if (cto->ct_flags & CT2_SENDSTATUS) {
isp_prt(isp, ISP_LOGTDEBUG2,
"CTIO2[%x] SCSI STATUS 0x%x datalength %u",
cto->ct_rxid, cso->scsi_status, cto->ct_resid);
}
+ cto->ct_timeout = 2;
hp = &cto->ct_syshandle;
} else {
ct_entry_t *cto = qe;
@@ -831,12 +832,12 @@ isp_target_start_ctio(struct ispsoftc *isp, union ccb *ccb)
cto->ct_tgt = ccb->ccb_h.target_id;
cto->ct_lun = ccb->ccb_h.target_lun;
cto->ct_fwhandle = cso->tag_id >> 8;
- if (cso->tag_id && cso->tag_action) {
+ cto->ct_tag_val = cso->tag_id & 0xff;
+ if (cto->ct_tag_val && cso->tag_action) {
/*
- * We don't specify a tag type for regular SCSI.
- * Just the tag value and set the flag.
+ * We don't specify a tag type for regular SCSI,
+ * just the tag value and set a flag.
*/
- cto->ct_tag_val = cso->tag_id & 0xff;
cto->ct_flags |= CT_TQAE;
}
if (ccb->ccb_h.flags & CAM_DIS_DISCONNECT) {
@@ -854,11 +855,12 @@ isp_target_start_ctio(struct ispsoftc *isp, union ccb *ccb)
cto->ct_scsi_status = cso->scsi_status;
cto->ct_resid = cso->resid;
}
- if (cto->ct_flags & CAM_SEND_STATUS) {
+ if (cto->ct_flags & CT_SENDSTATUS) {
isp_prt(isp, ISP_LOGTDEBUG2,
"CTIO SCSI STATUS 0x%x resid %d",
cso->scsi_status, cso->resid);
}
+ cto->ct_timeout = 2;
hp = &cto->ct_syshandle;
ccb->ccb_h.flags &= ~CAM_SEND_SENSE;
}
OpenPOWER on IntegriCloud