Correct domain/area exclusion logic.
In an FL topology, limit port recognition to those devices
not within the same area and domain of the ISP. The
firmware will recogonize such devices during local-loop
discovery.
Some devices may respond to a PLOGI before they have
completed their fabric login or they may not be a public
device. In this case they will report:
domain == 00
area == 00
alpa == <XX>
which is valid. Exclude such devices from local loop
discovery.
Signed-off-by: Andrew Vasquez <[EMAIL PROTECTED]>
---
drivers/scsi/qla2xxx/qla_init.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
051e6f0a69a8a9b3012dfe568eb11d74362df53c
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1904,7 +1904,8 @@ qla2x00_configure_local_loop(scsi_qla_ho
continue;
/* Bypass if not same domain and area of adapter. */
- if (area != ha->d_id.b.area || domain != ha->d_id.b.domain)
+ if (area && domain &&
+ (area != ha->d_id.b.area || domain != ha->d_id.b.domain))
continue;
/* Bypass invalid local loop ID. */
@@ -2404,6 +2405,12 @@ qla2x00_find_all_fabric_devs(scsi_qla_ho
if (new_fcport->d_id.b24 == ha->d_id.b24)
continue;
+ /* Bypass if same domain and area of adapter. */
+ if (((new_fcport->d_id.b24 & 0xffff00) ==
+ (ha->d_id.b24 & 0xffff00)) && ha->current_topology ==
+ ISP_CFG_FL)
+ continue;
+
/* Bypass reserved domain fields. */
if ((new_fcport->d_id.b.domain & 0xf0) == 0xf0)
continue;
--
Andrew Vasquez
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html