summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLu Wei <luwei32@huawei.com>2020-07-29 11:50:05 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-08-05 09:59:49 +0200
commit1158aa743a0b871ed2f827bbdf827a78855c5eb4 (patch)
treeb6ff79079911861330a0eaeb36d556a02726063d
parent9acd96f14a49f59401478eefe158aec489e0161f (diff)
downloadlinux-1158aa743a0b871ed2f827bbdf827a78855c5eb4.tar.gz
linux-1158aa743a0b871ed2f827bbdf827a78855c5eb4.tar.bz2
linux-1158aa743a0b871ed2f827bbdf827a78855c5eb4.zip
net: nixge: fix potential memory leak in nixge_probe()
[ Upstream commit 366228ed01f6882cc203e3d5b40010dfae0be1c3 ] If some processes in nixge_probe() fail, free_netdev(dev) needs to be called to aviod a memory leak. Fixes: 87ab207981ec ("net: nixge: Separate ctrl and dma resources") Fixes: abcd3d6fc640 ("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> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/net/ethernet/ni/nixge.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/ni/nixge.c b/drivers/net/ethernet/ni/nixge.c
index 2761f3a3ae50..56f285985b43 100644
--- a/drivers/net/ethernet/ni/nixge.c
+++ b/drivers/net/ethernet/ni/nixge.c
@@ -1318,19 +1318,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;