[SCSI] qla2xxx: 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 <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
cca5335caf
commit
f7d289f62e
@ -1900,7 +1900,8 @@ qla2x00_configure_local_loop(scsi_qla_host_t *ha)
|
||||
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. */
|
||||
@ -2400,6 +2401,12 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *ha, struct list_head *new_fcports)
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user