|
@@ -1134,13 +1134,15 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
printk(MYIOC_s_WARN_FMT
|
|
|
"Skipping because it's not operational!\n",
|
|
|
ioc->name);
|
|
|
- return -ENODEV;
|
|
|
+ error = -ENODEV;
|
|
|
+ goto out_mptsas_probe;
|
|
|
}
|
|
|
|
|
|
if (!ioc->active) {
|
|
|
printk(MYIOC_s_WARN_FMT "Skipping because it's disabled!\n",
|
|
|
ioc->name);
|
|
|
- return -ENODEV;
|
|
|
+ error = -ENODEV;
|
|
|
+ goto out_mptsas_probe;
|
|
|
}
|
|
|
|
|
|
/* Sanity check - ensure at least 1 port is INITIATOR capable
|
|
@@ -1164,7 +1166,8 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
printk(MYIOC_s_WARN_FMT
|
|
|
"Unable to register controller with SCSI subsystem\n",
|
|
|
ioc->name);
|
|
|
- return -1;
|
|
|
+ error = -1;
|
|
|
+ goto out_mptsas_probe;
|
|
|
}
|
|
|
|
|
|
spin_lock_irqsave(&ioc->FreeQlock, flags);
|
|
@@ -1238,7 +1241,7 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
mem = kmalloc(sz, GFP_ATOMIC);
|
|
|
if (mem == NULL) {
|
|
|
error = -ENOMEM;
|
|
|
- goto mptsas_probe_failed;
|
|
|
+ goto out_mptsas_probe;
|
|
|
}
|
|
|
|
|
|
memset(mem, 0, sz);
|
|
@@ -1256,7 +1259,7 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
mem = kmalloc(sz, GFP_ATOMIC);
|
|
|
if (mem == NULL) {
|
|
|
error = -ENOMEM;
|
|
|
- goto mptsas_probe_failed;
|
|
|
+ goto out_mptsas_probe;
|
|
|
}
|
|
|
|
|
|
memset(mem, 0, sz);
|
|
@@ -1309,14 +1312,14 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
if (error) {
|
|
|
dprintk((KERN_ERR MYNAM
|
|
|
"scsi_add_host failed\n"));
|
|
|
- goto mptsas_probe_failed;
|
|
|
+ goto out_mptsas_probe;
|
|
|
}
|
|
|
|
|
|
mptsas_scan_sas_topology(ioc);
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
-mptsas_probe_failed:
|
|
|
+out_mptsas_probe:
|
|
|
|
|
|
mptscsih_remove(pdev);
|
|
|
return error;
|