summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authormjacob <mjacob@NetBSD.org>1999-10-28 02:50:34 +0000
committermjacob <mjacob@NetBSD.org>1999-10-28 02:50:34 +0000
commit7227a97ad0fe5720f5f0c375cf68c01df99cf00e (patch)
tree0c376f1991a777e61c6276dfa80734ea6a7b2c29 /sys/dev
parent3c606351d9e8663ad63ffd9e9720704c4afec5b2 (diff)
I was misinformed. I cannot get away from specifying tags for FC. Some devices
are happy w/o them- some are unhappy (IBM drives).
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ic/isp.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/dev/ic/isp.c b/sys/dev/ic/isp.c
index 8d4ae824860..f0ea420f3e4 100644
--- a/sys/dev/ic/isp.c
+++ b/sys/dev/ic/isp.c
@@ -1,4 +1,4 @@
-/* $NetBSD: isp.c,v 1.41 1999/10/26 22:23:20 mjacob Exp $ */
+/* $NetBSD: isp.c,v 1.42 1999/10/28 02:50:34 mjacob Exp $ */
/*
* Copyright (C) 1997, 1998, 1999 National Aeronautics & Space Administration
* All rights reserved.
@@ -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;