summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>1999-10-28 02:48:42 +0000
committermjacob <mjacob@FreeBSD.org>1999-10-28 02:48:42 +0000
commit70c0d5902b70d073fc20490de2a4026c5e4434ca (patch)
treee2a9dd8e3d80aa5df802d62862b6c44bd7a55795
parent869bd7a8e7f60349be187b9ec6cdc090b695ff0d (diff)
downloadFreeBSD-src-70c0d5902b70d073fc20490de2a4026c5e4434ca.zip
FreeBSD-src-70c0d5902b70d073fc20490de2a4026c5e4434ca.tar.gz
I was misinformed. I cannot get away from specifying tags for FC. Some devices
are happy w/o them- some are unhappy (IBM drives).
-rw-r--r--sys/dev/isp/isp.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c
index 5feff26..5390a3a 100644
--- a/sys/dev/isp/isp.c
+++ b/sys/dev/isp/isp.c
@@ -1934,11 +1934,17 @@ ispscsicmd(xs)
XS_RESID(xs) = 0;
/*
- * Fibre Channel always requires some kind of tag, but
- * the firmware seems to be happy if we don't use a tag.
+ * Fibre Channel always requires some kind of tag.
+ * The Qlogic drivers seem be happy not to use a tag,
+ * but this breaks for some devices (IBM drives).
*/
if (XS_CANTAG(xs)) {
t2reqp->req_flags = XS_KINDOF_TAG(xs);
+ } else {
+ if (XS_CDBP(xs)[0] == 0x3) /* REQUEST SENSE */
+ t2reqp->req_flags = REQFLAG_HTAG;
+ else
+ t2reqp->req_flags = REQFLAG_OTAG;
}
} else {
sdparam *sdp = (sdparam *)isp->isp_param;
OpenPOWER on IntegriCloud