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:87ab207981
("net: nixge: Separate ctrl and dma resources") Fixes:abcd3d6fc6
("net: nixge: Fix error path for obtaining mac address") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Lu Wei <luwei32@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
82274d0755
Коммит
366228ed01
|
@ -1299,19 +1299,21 @@ static int nixge_probe(struct platform_device *pdev)
|
|||
netif_napi_add(ndev, &priv->napi, nixge_poll, NAPI_POLL_WEIGHT);
|
||||
err = nixge_of_get_resources(pdev);
|
||||
if (err)
|
||||
return err;
|
||||
goto free_netdev;
|
||||
__nixge_hw_set_mac_address(ndev);
|
||||
|
||||
priv->tx_irq = platform_get_irq_byname(pdev, "tx");
|
||||
if (priv->tx_irq < 0) {
|
||||
netdev_err(ndev, "could not find 'tx' irq");
|
||||
return priv->tx_irq;
|
||||
err = priv->tx_irq;
|
||||
goto free_netdev;
|
||||
}
|
||||
|
||||
priv->rx_irq = platform_get_irq_byname(pdev, "rx");
|
||||
if (priv->rx_irq < 0) {
|
||||
netdev_err(ndev, "could not find 'rx' irq");
|
||||
return priv->rx_irq;
|
||||
err = priv->rx_irq;
|
||||
goto free_netdev;
|
||||
}
|
||||
|
||||
priv->coalesce_count_rx = XAXIDMA_DFT_RX_THRESHOLD;
|
||||
|
|
Загрузка…
Ссылка в новой задаче