sfc: Fix missing cleanup in failure path of efx_pci_probe()
We need to clear the private data pointer in the PCI device. Also reorder cleanup in efx_pci_remove() for symmetry. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
@ -2497,8 +2497,8 @@ static void efx_pci_remove(struct pci_dev *pci_dev)
|
||||
efx_fini_io(efx);
|
||||
netif_dbg(efx, drv, efx->net_dev, "shutdown successful\n");
|
||||
|
||||
pci_set_drvdata(pci_dev, NULL);
|
||||
efx_fini_struct(efx);
|
||||
pci_set_drvdata(pci_dev, NULL);
|
||||
free_netdev(efx->net_dev);
|
||||
};
|
||||
|
||||
@ -2700,6 +2700,7 @@ static int __devinit efx_pci_probe(struct pci_dev *pci_dev,
|
||||
fail2:
|
||||
efx_fini_struct(efx);
|
||||
fail1:
|
||||
pci_set_drvdata(pci_dev, NULL);
|
||||
WARN_ON(rc > 0);
|
||||
netif_dbg(efx, drv, efx->net_dev, "initialisation failed. rc=%d\n", rc);
|
||||
free_netdev(net_dev);
|
||||
|
Reference in New Issue
Block a user