|
@@ -452,7 +452,7 @@ static int prism2_plx_probe(struct pci_dev *pdev,
|
|
memset(hw_priv, 0, sizeof(*hw_priv));
|
|
memset(hw_priv, 0, sizeof(*hw_priv));
|
|
|
|
|
|
if (pci_enable_device(pdev))
|
|
if (pci_enable_device(pdev))
|
|
- return -EIO;
|
|
|
|
|
|
+ goto err_out_free;
|
|
|
|
|
|
/* National Datacomm NCP130 based on TMD7160, not PLX9052. */
|
|
/* National Datacomm NCP130 based on TMD7160, not PLX9052. */
|
|
tmd7160 = (pdev->vendor == 0x15e8) && (pdev->device == 0x0131);
|
|
tmd7160 = (pdev->vendor == 0x15e8) && (pdev->device == 0x0131);
|
|
@@ -567,9 +567,6 @@ static int prism2_plx_probe(struct pci_dev *pdev,
|
|
return hostap_hw_ready(dev);
|
|
return hostap_hw_ready(dev);
|
|
|
|
|
|
fail:
|
|
fail:
|
|
- prism2_free_local_data(dev);
|
|
|
|
- kfree(hw_priv);
|
|
|
|
-
|
|
|
|
if (irq_registered && dev)
|
|
if (irq_registered && dev)
|
|
free_irq(dev->irq, dev);
|
|
free_irq(dev->irq, dev);
|
|
|
|
|
|
@@ -577,6 +574,10 @@ static int prism2_plx_probe(struct pci_dev *pdev,
|
|
iounmap(attr_mem);
|
|
iounmap(attr_mem);
|
|
|
|
|
|
pci_disable_device(pdev);
|
|
pci_disable_device(pdev);
|
|
|
|
+ prism2_free_local_data(dev);
|
|
|
|
+
|
|
|
|
+ err_out_free:
|
|
|
|
+ kfree(hw_priv);
|
|
|
|
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
}
|
|
}
|