]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
scsi: lpfc: Fix SLI3 commands being issued on SLI4 devices
authorJames Smart <jsmart2021@gmail.com>
Tue, 12 Mar 2019 23:30:07 +0000 (16:30 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 19 Mar 2019 16:57:02 +0000 (12:57 -0400)
During debug, it was seen that the driver is issuing commands specific to
SLI3 on SLI4 devices. Although the adapter correctly rejected the command,
this should not be done.

Revise the code to stop sending these commands on a SLI4 adapter.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_hbadisc.c

index 3fb20ade90057f029cd90d84f77dc56ab9446bc0..75e9d46d44d428508da99a968d82291519a1c7d8 100644 (file)
@@ -932,7 +932,11 @@ lpfc_linkdown(struct lpfc_hba *phba)
                }
        }
        lpfc_destroy_vport_work_array(phba, vports);
-       /* Clean up any firmware default rpi's */
+
+       /* Clean up any SLI3 firmware default rpi's */
+       if (phba->sli_rev > LPFC_SLI_REV3)
+               goto skip_unreg_did;
+
        mb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
        if (mb) {
                lpfc_unreg_did(phba, 0xffff, LPFC_UNREG_ALL_DFLT_RPIS, mb);
@@ -944,6 +948,7 @@ lpfc_linkdown(struct lpfc_hba *phba)
                }
        }
 
+ skip_unreg_did:
        /* Setup myDID for link up if we are in pt2pt mode */
        if (phba->pport->fc_flag & FC_PT2PT) {
                mb = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
@@ -4983,6 +4988,10 @@ lpfc_unreg_default_rpis(struct lpfc_vport *vport)
        LPFC_MBOXQ_t     *mbox;
        int rc;
 
+       /* Unreg DID is an SLI3 operation. */
+       if (phba->sli_rev > LPFC_SLI_REV3)
+               return;
+
        mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
        if (mbox) {
                lpfc_unreg_did(phba, vport->vpi, LPFC_UNREG_ALL_DFLT_RPIS,