Fix discovery issue when changing from Pt2Pt to Fabric.

Signed-off-by: Dick Kennedy <dick.kenn...@avagotech.com>
Signed-off-by: James Smart <james.sm...@avagotech.com>
---
 drivers/scsi/lpfc/lpfc_hbadisc.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index e93705d..0dfa566 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -4834,9 +4834,19 @@ lpfc_matchdid(struct lpfc_vport *vport, struct 
lpfc_nodelist *ndlp,
        if (matchdid.un.b.id == ndlpdid.un.b.id) {
                if ((mydid.un.b.domain == matchdid.un.b.domain) &&
                    (mydid.un.b.area == matchdid.un.b.area)) {
+                       /* This code is supposed to match the ID
+                        * for a private loop device that is
+                        * connect to fl_port. But we need to
+                        * check that the port did not just go
+                        * from pt2pt to fabric or we could end
+                        * up matching ndlp->nlp_DID 000001 to
+                        * fabric DID 0x20101
+                        */
                        if ((ndlpdid.un.b.domain == 0) &&
                            (ndlpdid.un.b.area == 0)) {
-                               if (ndlpdid.un.b.id)
+                               if (ndlpdid.un.b.id &&
+                                   vport->phba->fc_topology ==
+                                   LPFC_TOPOLOGY_LOOP)
                                        return 1;
                        }
                        return 0;
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to