Skip to content

Commit 366228e

Browse files
Lu Weidavem330
authored andcommitted
net: nixge: fix potential memory leak in nixge_probe()
If some processes in nixge_probe() fail, free_netdev(dev) needs to be called to aviod a memory leak. Fixes: 87ab207 ("net: nixge: Separate ctrl and dma resources") Fixes: abcd3d6 ("net: nixge: Fix error path for obtaining mac address") Reported-by: Hulk Robot <[email protected]> Signed-off-by: Lu Wei <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 82274d0 commit 366228e

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

drivers/net/ethernet/ni/nixge.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,19 +1299,21 @@ static int nixge_probe(struct platform_device *pdev)
12991299
netif_napi_add(ndev, &priv->napi, nixge_poll, NAPI_POLL_WEIGHT);
13001300
err = nixge_of_get_resources(pdev);
13011301
if (err)
1302-
return err;
1302+
goto free_netdev;
13031303
__nixge_hw_set_mac_address(ndev);
13041304

13051305
priv->tx_irq = platform_get_irq_byname(pdev, "tx");
13061306
if (priv->tx_irq < 0) {
13071307
netdev_err(ndev, "could not find 'tx' irq");
1308-
return priv->tx_irq;
1308+
err = priv->tx_irq;
1309+
goto free_netdev;
13091310
}
13101311

13111312
priv->rx_irq = platform_get_irq_byname(pdev, "rx");
13121313
if (priv->rx_irq < 0) {
13131314
netdev_err(ndev, "could not find 'rx' irq");
1314-
return priv->rx_irq;
1315+
err = priv->rx_irq;
1316+
goto free_netdev;
13151317
}
13161318

13171319
priv->coalesce_count_rx = XAXIDMA_DFT_RX_THRESHOLD;

0 commit comments

Comments
 (0)