summaryrefslogtreecommitdiff
path: root/sys/dev/isp
diff options
context:
space:
mode:
authorMatt Jacob <mjacob@FreeBSD.org>2010-06-21 04:37:39 +0000
committerMatt Jacob <mjacob@FreeBSD.org>2010-06-21 04:37:39 +0000
commite56335882a4f5d01b5f89e5110a4749291e189ae (patch)
tree192a3785de3d35e9f397d8fe758a1d5d26fc3d0c /sys/dev/isp
parente0e1f8038fd4525caf49e53154173b00966ac01d (diff)
Notes
Diffstat (limited to 'sys/dev/isp')
-rw-r--r--sys/dev/isp/isp_freebsd.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c
index f7912d1b3e44..c7e3bb03b235 100644
--- a/sys/dev/isp/isp_freebsd.c
+++ b/sys/dev/isp/isp_freebsd.c
@@ -4499,6 +4499,7 @@ isp_action(struct cam_sim *sim, union ccb *ccb)
fcparam *fcp = FCPARAM(isp, bus);
struct ccb_trans_settings_scsi *scsi = &cts->proto_specific.scsi;
struct ccb_trans_settings_fc *fc = &cts->xport_specific.fc;
+ unsigned int hdlidx;
cts->protocol = PROTO_SCSI;
cts->protocol_version = SCSI_REV_2;
@@ -4510,8 +4511,9 @@ isp_action(struct cam_sim *sim, union ccb *ccb)
fc->valid = CTS_FC_VALID_SPEED;
fc->bitrate = 100000;
fc->bitrate *= fcp->isp_gbspeed;
- if (tgt > 0 && tgt < MAX_FC_TARG) {
- fcportdb_t *lp = &fcp->portdb[tgt];
+ hdlidx = fcp->isp_dev_map[tgt] - 1;
+ if (hdlidx < MAX_FC_TARG) {
+ fcportdb_t *lp = &fcp->portdb[hdlidx];
fc->wwnn = lp->node_wwn;
fc->wwpn = lp->port_wwn;
fc->port = lp->portid;