diff options
author | mjacob <mjacob@FreeBSD.org> | 2000-02-15 00:53:49 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2000-02-15 00:53:49 +0000 |
commit | 56989ea7970eedf93b99ab14c2d3597e7275346f (patch) | |
tree | 8116db69c1e96189ca5857739d57c656aca22606 /sys/dev/isp | |
parent | 968b01c5e288e60e4880bb405f13f3141a860e59 (diff) | |
download | FreeBSD-src-56989ea7970eedf93b99ab14c2d3597e7275346f.zip FreeBSD-src-56989ea7970eedf93b99ab14c2d3597e7275346f.tar.gz |
Correctly identify which bus of dual bus SCSI adapters some target mode
commands (enable/disable/modify lun && immediate notify) we're talking about.
Approved: jkh
Diffstat (limited to 'sys/dev/isp')
-rw-r--r-- | sys/dev/isp/isp_target.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/isp/isp_target.c b/sys/dev/isp/isp_target.c index 23f7782..b53ad83 100644 --- a/sys/dev/isp/isp_target.c +++ b/sys/dev/isp/isp_target.c @@ -167,14 +167,18 @@ isp_target_notify(isp, vptr, optrp) * increment the firmware's resource count for them * (we set this initially in the Enable Lun entry). */ + bus = 0; if (IS_FC(isp)) { status = inot_fcp->in_status; seqid = inot_fcp->in_seqid; } else { status = inotp->in_status & 0xff; seqid = inotp->in_seqid; + if (IS_DUALBUS(isp)) { + bus = (inotp->in_iid & 0x80) >> 7; + inotp->in_iid &= ~0x80; + } } - bus = 0; /* XXX: Which Channel? */ ITDEBUG(2, ("isp_target_notify: Immediate Notify, " "status=0x%x seqid=0x%x\n", status, seqid)); switch (status) { @@ -272,9 +276,11 @@ isp_lun_cmd(isp, cmd, bus, tgt, lun, opaque) u_int16_t iptr, optr; void *outp; - bus = bus; /* XXX */ MEMZERO(&el, sizeof (el)); + if (IS_DUALBUS(isp)) { + el.le_rsvd = (bus & 0x1) << 7; + } el.le_cmd_count = DFLT_CMD_CNT; el.le_in_count = DFLT_INOTIFY; if (cmd == RQSTYPE_ENABLE_LUN) { |