diff options
| author | Matt Jacob <mjacob@FreeBSD.org> | 1999-10-28 02:48:42 +0000 |
|---|---|---|
| committer | Matt Jacob <mjacob@FreeBSD.org> | 1999-10-28 02:48:42 +0000 |
| commit | 2668d67e9c059a5e27eacfc92eff75d9c0279387 (patch) | |
| tree | e2a9dd8e3d80aa5df802d62862b6c44bd7a55795 /sys/dev/isp/isp.c | |
| parent | 0d6985e2c191824083c838ca7107d9d5555f56f4 (diff) | |
Notes
Diffstat (limited to 'sys/dev/isp/isp.c')
| -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 5feff26cf602..5390a3adc761 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; |
