diff options
author | mjacob <mjacob@FreeBSD.org> | 1999-10-28 02:48:42 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 1999-10-28 02:48:42 +0000 |
commit | 70c0d5902b70d073fc20490de2a4026c5e4434ca (patch) | |
tree | e2a9dd8e3d80aa5df802d62862b6c44bd7a55795 | |
parent | 869bd7a8e7f60349be187b9ec6cdc090b695ff0d (diff) | |
download | FreeBSD-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.c | 10 |
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; |