Skip to content

Commit df0842c

Browse files
xiaoleiwang123456NipaLocal
authored andcommitted
net: fec: free fec queue when fec_probe() fails or fec_drv_remove()
commit 59d0f74 ("net: fec: init multi queue date structure") allocates multiple queues, which should be cleaned up when fec_probe() fails or fec_drv_remove(), otherwise a memory leak will occur. unreferenced object 0xffffff8010350000 (size 8192): comm "kworker/u8:3", pid 39, jiffies 4294893562 hex dump (first 32 bytes): 02 00 00 00 00 00 00 00 00 50 06 8a c0 ff ff ff .........P...... e0 6f 06 8a c0 ff ff ff 00 50 06 8a c0 ff ff ff .o.......P...... backtrace (crc f1b8b79f): [<0000000057d2c6ae>] kmemleak_alloc+0x34/0x40 [<000000003c413e60>] kmalloc_trace+0x2f8/0x460 [<00000000663f64e6>] fec_probe+0x1364/0x3a04 [<0000000024d7e427>] platform_probe+0xc4/0x198 [<00000000293aa124>] really_probe+0x17c/0x4f0 [<00000000dfd1e0f3>] __driver_probe_device+0x158/0x2c4 Fixes: 59d0f74 ("net: fec: init multi queue date structure") Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com> Reviewed-by: Wei Fang <wei.fang@nxp.com> Signed-off-by: NipaLocal <nipa@local>
1 parent 9312174 commit df0842c

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/net/ethernet/freescale/fec_main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4524,6 +4524,7 @@ fec_probe(struct platform_device *pdev)
45244524
fec_enet_mii_remove(fep);
45254525
failed_mii_init:
45264526
failed_irq:
4527+
fec_enet_free_queue(ndev);
45274528
failed_init:
45284529
fec_ptp_stop(pdev);
45294530
failed_reset:
@@ -4587,6 +4588,7 @@ fec_drv_remove(struct platform_device *pdev)
45874588
pm_runtime_put_noidle(&pdev->dev);
45884589
pm_runtime_disable(&pdev->dev);
45894590

4591+
fec_enet_free_queue(ndev);
45904592
free_netdev(ndev);
45914593
}
45924594

0 commit comments

Comments
 (0)