]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
nfp: xsk: fix memory leak in nfp_net_alloc()
authorAbdun Nihaal <nihaal@cse.iitm.ac.in>
Tue, 28 Oct 2025 16:08:41 +0000 (21:38 +0530)
committerJakub Kicinski <kuba@kernel.org>
Thu, 30 Oct 2025 00:38:23 +0000 (17:38 -0700)
In nfp_net_alloc(), the memory allocated for xsk_pools is not freed in
the subsequent error paths, leading to a memory leak. Fix that by
freeing it in the error path.

Fixes: 6402528b7a0b ("nfp: xsk: add AF_XDP zero-copy Rx and Tx support")
Signed-off-by: Abdun Nihaal <nihaal@cse.iitm.ac.in>
Link: https://patch.msgid.link/20251028160845.126919-1-nihaal@cse.iitm.ac.in
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/netronome/nfp/nfp_net_common.c

index 132626a3f9f7b3c99139c3551a3fd566f83ac724..9ef72f294117f90e3edd8349e165a595b296ec3b 100644 (file)
@@ -2557,14 +2557,16 @@ nfp_net_alloc(struct pci_dev *pdev, const struct nfp_dev_info *dev_info,
        err = nfp_net_tlv_caps_parse(&nn->pdev->dev, nn->dp.ctrl_bar,
                                     &nn->tlv_caps);
        if (err)
-               goto err_free_nn;
+               goto err_free_xsk_pools;
 
        err = nfp_ccm_mbox_alloc(nn);
        if (err)
-               goto err_free_nn;
+               goto err_free_xsk_pools;
 
        return nn;
 
+err_free_xsk_pools:
+       kfree(nn->dp.xsk_pools);
 err_free_nn:
        if (nn->dp.netdev)
                free_netdev(nn->dp.netdev);