scsi: lpfc: Don't return internal MBXERR_ERROR code from probe function
authorStefano Brivio <sbrivio@redhat.com>
Wed, 6 Sep 2017 09:02:56 +0000 (11:02 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Mon, 1 Jan 2018 20:50:48 +0000 (20:50 +0000)
commit 5c756065e47dc3e84b00577bd109f0a8e69903d7 upstream.

Internal error codes happen to be positive, thus the PCI driver core
won't treat them as failure, but we do. This would cause a crash later
on as lpfc_pci_remove_one() is called (e.g. as shutdown function).

Fixes: 6d368e532168 ("[SCSI] lpfc 8.3.24: Add resource extent support")
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Acked-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/scsi/lpfc/lpfc_init.c

index 1421ca3..0fa2c20 100644 (file)
@@ -4490,6 +4490,7 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba)
                        lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
                                "2999 Unsupported SLI4 Parameters "
                                "Extents and RPI headers enabled.\n");
+                       rc = -EIO;
                        goto out_free_bsmbx;
                }
        }