Message ID | 20221207083413.1758113-1-cuigaosheng1@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [net] net: stmmac: fix possible memory leak in stmmac_dvr_probe() | expand |
On Wed, Dec 07, 2022 at 04:34:13PM +0800, Gaosheng Cui wrote: > The bitmap_free() should be called to free priv->af_xdp_zc_qps > when create_singlethread_workqueue() fails, otherwise there will > be a memory leak, so we add the err path error_wq_init to fix it. > > Fixes: bba2556efad6 ("net: stmmac: Enable RX via AF_XDP zero-copy") > Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > Thanks, Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Wed, 7 Dec 2022 16:34:13 +0800 you wrote: > The bitmap_free() should be called to free priv->af_xdp_zc_qps > when create_singlethread_workqueue() fails, otherwise there will > be a memory leak, so we add the err path error_wq_init to fix it. > > Fixes: bba2556efad6 ("net: stmmac: Enable RX via AF_XDP zero-copy") > Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> > > [...] Here is the summary with links: - [net] net: stmmac: fix possible memory leak in stmmac_dvr_probe() https://git.kernel.org/netdev/net/c/a137f3f27f92 You are awesome, thank you!
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 18c7ca29da2c..6c31a62ccee1 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -7096,7 +7096,7 @@ int stmmac_dvr_probe(struct device *device, priv->wq = create_singlethread_workqueue("stmmac_wq"); if (!priv->wq) { dev_err(priv->device, "failed to create workqueue\n"); - return -ENOMEM; + goto error_wq_init; } INIT_WORK(&priv->service_task, stmmac_service_task); @@ -7324,6 +7324,7 @@ int stmmac_dvr_probe(struct device *device, stmmac_napi_del(ndev); error_hw_init: destroy_workqueue(priv->wq); +error_wq_init: bitmap_free(priv->af_xdp_zc_qps); return ret;
The bitmap_free() should be called to free priv->af_xdp_zc_qps when create_singlethread_workqueue() fails, otherwise there will be a memory leak, so we add the err path error_wq_init to fix it. Fixes: bba2556efad6 ("net: stmmac: Enable RX via AF_XDP zero-copy") Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com> --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)