scsi: lpfc: Fix unmap of dpp bars affecting next driver load
authorJames Smart <jsmart2021@gmail.com>
Wed, 18 Dec 2019 23:58:05 +0000 (15:58 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 21 Dec 2019 18:42:42 +0000 (13:42 -0500)
When unattaching, the driver did not unmap the DPP bar. This caused the
next load of the driver, which attempts to enable wc, to not work correctly
and wc to be disabled due to an address mapping overlap.

Fix by unmapping on unattach.

Link: https://lore.kernel.org/r/20191218235808.31922-8-jsmart2021@gmail.com
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_init.c

index 3defada2602f59d14ee1465eb10082030aa1e392..4685745aa6ed3253d7361ba1a4d0a43bf3d42e7e 100644 (file)
@@ -10441,6 +10441,8 @@ lpfc_sli4_pci_mem_unset(struct lpfc_hba *phba)
        case LPFC_SLI_INTF_IF_TYPE_6:
                iounmap(phba->sli4_hba.drbl_regs_memmap_p);
                iounmap(phba->sli4_hba.conf_regs_memmap_p);
+               if (phba->sli4_hba.dpp_regs_memmap_p)
+                       iounmap(phba->sli4_hba.dpp_regs_memmap_p);
                break;
        case LPFC_SLI_INTF_IF_TYPE_1:
        default: