|
|
@@ -921,7 +921,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);
|
|
|
@@ -933,6 +937,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);
|
|
|
@@ -4855,6 +4860,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,
|