[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>
Šī revīzija ir iekļauta:

revīziju iesūtīja
James Bottomley

vecāks
cca5335caf
revīzija
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;
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user