Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1dddadf authored by Zhengchao Shao's avatar Zhengchao Shao Committed by Greg Kroah-Hartman
Browse files

ethernet: tundra: free irq when alloc ring failed in tsi108_open()



[ Upstream commit acce40037041f97baad18142bb253064491ebde3 ]

When alloc tx/rx ring failed in tsi108_open(), it doesn't free irq. Fix
it.

Fixes: 5e123b84 ("[PATCH] Add tsi108/9 On Chip Ethernet device driver support")
Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
Link: https://lore.kernel.org/r/20221109044016.126866-1-shaozhengchao@huawei.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 1b7a5651
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1302,12 +1302,15 @@ static int tsi108_open(struct net_device *dev)

	data->rxring = dma_alloc_coherent(&data->pdev->dev, rxring_size,
					  &data->rxdma, GFP_KERNEL);
	if (!data->rxring)
	if (!data->rxring) {
		free_irq(data->irq_num, dev);
		return -ENOMEM;
	}

	data->txring = dma_alloc_coherent(&data->pdev->dev, txring_size,
					  &data->txdma, GFP_KERNEL);
	if (!data->txring) {
		free_irq(data->irq_num, dev);
		dma_free_coherent(&data->pdev->dev, rxring_size, data->rxring,
				    data->rxdma);
		return -ENOMEM;