cxgb4: fix memory leak in init_one()
Free up mbox_log allocated for PF0 to PF3.
Fixes: 7829451c69
("cxgb4: Add control net_device for configuring PCIe VF")
Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2f3ca449a4
commit
d041784915
|
@ -5169,13 +5169,15 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
&v, &port_vec);
|
&v, &port_vec);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(adapter->pdev_dev, "Could not fetch port params\n");
|
dev_err(adapter->pdev_dev, "Could not fetch port params\n");
|
||||||
goto free_adapter;
|
goto free_mbox_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
adapter->params.nports = hweight32(port_vec);
|
adapter->params.nports = hweight32(port_vec);
|
||||||
pci_set_drvdata(pdev, adapter);
|
pci_set_drvdata(pdev, adapter);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
free_mbox_log:
|
||||||
|
kfree(adapter->mbox_log);
|
||||||
free_adapter:
|
free_adapter:
|
||||||
kfree(adapter);
|
kfree(adapter);
|
||||||
free_pci_region:
|
free_pci_region:
|
||||||
|
@ -5275,6 +5277,7 @@ static void remove_one(struct pci_dev *pdev)
|
||||||
unregister_netdev(adapter->port[0]);
|
unregister_netdev(adapter->port[0]);
|
||||||
iounmap(adapter->regs);
|
iounmap(adapter->regs);
|
||||||
kfree(adapter->vfinfo);
|
kfree(adapter->vfinfo);
|
||||||
|
kfree(adapter->mbox_log);
|
||||||
kfree(adapter);
|
kfree(adapter);
|
||||||
pci_disable_sriov(pdev);
|
pci_disable_sriov(pdev);
|
||||||
pci_release_regions(pdev);
|
pci_release_regions(pdev);
|
||||||
|
@ -5321,6 +5324,7 @@ static void shutdown_one(struct pci_dev *pdev)
|
||||||
unregister_netdev(adapter->port[0]);
|
unregister_netdev(adapter->port[0]);
|
||||||
iounmap(adapter->regs);
|
iounmap(adapter->regs);
|
||||||
kfree(adapter->vfinfo);
|
kfree(adapter->vfinfo);
|
||||||
|
kfree(adapter->mbox_log);
|
||||||
kfree(adapter);
|
kfree(adapter);
|
||||||
pci_disable_sriov(pdev);
|
pci_disable_sriov(pdev);
|
||||||
pci_release_regions(pdev);
|
pci_release_regions(pdev);
|
||||||
|
|
Loading…
Reference in New Issue