On 07/09/2019 02:07, chenxiang wrote:
From: Xiang Chen <chenxian...@hisilicon.com>
For pci device, need to disable device when probe failed after enabled
device.
Signed-off-by: Xiang Chen <chenxian...@hisilicon.com>
Reviewed-by: John Garry <john.ga...@huawei.com>
---
drivers/scsi/megaraid.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
index 45a6604..ff6d4aa 100644
--- a/drivers/scsi/megaraid.c
+++ b/drivers/scsi/megaraid.c
@@ -4183,11 +4183,11 @@ megaraid_probe_one(struct pci_dev *pdev, const struct
pci_device_id *id)
*/
if (pdev->subsystem_vendor == PCI_VENDOR_ID_COMPAQ &&
pdev->subsystem_device == 0xC000)
- return -ENODEV;
+ goto out_disable_device;
/* Now check the magic signature byte */
pci_read_config_word(pdev, PCI_CONF_AMISIG, &magic);
if (magic != HBA_SIGNATURE_471 && magic != HBA_SIGNATURE)
- return -ENODEV;
+ goto out_disable_device;
It would be nicer if the driver didn't init the return code to -ENODEV
and we set it explicitly here, but that's a different change.
/* Ok it is probably a megaraid */
}