* [PATCH net v2] dpaa2-eth: fix xdp_rxq_info leak
@ 2025-06-26 13:30 Fushuai Wang
2025-06-27 11:48 ` Simon Horman
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Fushuai Wang @ 2025-06-26 13:30 UTC (permalink / raw)
To: ioana.ciornei, andrew+netdev, davem, edumazet, kuba, pabeni
Cc: netdev, linux-kernel, Fushuai Wang
The driver registered xdp_rxq_info structures via xdp_rxq_info_reg()
but failed to properly unregister them in error paths and during
removal.
Fixes: d678be1dc1ec ("dpaa2-eth: add XDP_REDIRECT support")
Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
---
.../net/ethernet/freescale/dpaa2/dpaa2-eth.c | 26 +++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
index 2ec2c3dab250..b82f121cadad 100644
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
@@ -3939,6 +3939,7 @@ static int dpaa2_eth_setup_rx_flow(struct dpaa2_eth_priv *priv,
MEM_TYPE_PAGE_ORDER0, NULL);
if (err) {
dev_err(dev, "xdp_rxq_info_reg_mem_model failed\n");
+ xdp_rxq_info_unreg(&fq->channel->xdp_rxq);
return err;
}
@@ -4432,17 +4433,25 @@ static int dpaa2_eth_bind_dpni(struct dpaa2_eth_priv *priv)
return -EINVAL;
}
if (err)
- return err;
+ goto out;
}
err = dpni_get_qdid(priv->mc_io, 0, priv->mc_token,
DPNI_QUEUE_TX, &priv->tx_qdid);
if (err) {
dev_err(dev, "dpni_get_qdid() failed\n");
- return err;
+ goto out;
}
return 0;
+
+out:
+ while (i--) {
+ if (priv->fq[i].type == DPAA2_RX_FQ &&
+ xdp_rxq_info_is_reg(&priv->fq[i].channel->xdp_rxq))
+ xdp_rxq_info_unreg(&priv->fq[i].channel->xdp_rxq);
+ }
+ return err;
}
/* Allocate rings for storing incoming frame descriptors */
@@ -4825,6 +4834,17 @@ static void dpaa2_eth_del_ch_napi(struct dpaa2_eth_priv *priv)
}
}
+static void dpaa2_eth_free_rx_xdp_rxq(struct dpaa2_eth_priv *priv)
+{
+ int i;
+
+ for (i = 0; i < priv->num_fqs; i++) {
+ if (priv->fq[i].type == DPAA2_RX_FQ &&
+ xdp_rxq_info_is_reg(&priv->fq[i].channel->xdp_rxq))
+ xdp_rxq_info_unreg(&priv->fq[i].channel->xdp_rxq);
+ }
+}
+
static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
{
struct device *dev;
@@ -5028,6 +5048,7 @@ static int dpaa2_eth_probe(struct fsl_mc_device *dpni_dev)
free_percpu(priv->percpu_stats);
err_alloc_percpu_stats:
dpaa2_eth_del_ch_napi(priv);
+ dpaa2_eth_free_rx_xdp_rxq(priv);
err_bind:
dpaa2_eth_free_dpbps(priv);
err_dpbp_setup:
@@ -5080,6 +5101,7 @@ static void dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
free_percpu(priv->percpu_extras);
dpaa2_eth_del_ch_napi(priv);
+ dpaa2_eth_free_rx_xdp_rxq(priv);
dpaa2_eth_free_dpbps(priv);
dpaa2_eth_free_dpio(priv);
dpaa2_eth_free_dpni(priv);
--
2.36.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH net v2] dpaa2-eth: fix xdp_rxq_info leak
2025-06-26 13:30 [PATCH net v2] dpaa2-eth: fix xdp_rxq_info leak Fushuai Wang
@ 2025-06-27 11:48 ` Simon Horman
2025-06-27 13:06 ` Ioana Ciornei
2025-06-28 0:50 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Simon Horman @ 2025-06-27 11:48 UTC (permalink / raw)
To: Fushuai Wang
Cc: ioana.ciornei, andrew+netdev, davem, edumazet, kuba, pabeni,
netdev, linux-kernel
On Thu, Jun 26, 2025 at 09:30:03PM +0800, Fushuai Wang wrote:
> The driver registered xdp_rxq_info structures via xdp_rxq_info_reg()
> but failed to properly unregister them in error paths and during
> removal.
>
> Fixes: d678be1dc1ec ("dpaa2-eth: add XDP_REDIRECT support")
> Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
> ---
Thanks for the update.
I think this covers all the bases.
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH net v2] dpaa2-eth: fix xdp_rxq_info leak
2025-06-26 13:30 [PATCH net v2] dpaa2-eth: fix xdp_rxq_info leak Fushuai Wang
2025-06-27 11:48 ` Simon Horman
@ 2025-06-27 13:06 ` Ioana Ciornei
2025-06-28 0:50 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Ioana Ciornei @ 2025-06-27 13:06 UTC (permalink / raw)
To: Fushuai Wang
Cc: andrew+netdev, davem, edumazet, kuba, pabeni, netdev,
linux-kernel
On Thu, Jun 26, 2025 at 09:30:03PM +0800, Fushuai Wang wrote:
>
> The driver registered xdp_rxq_info structures via xdp_rxq_info_reg()
> but failed to properly unregister them in error paths and during
> removal.
>
> Fixes: d678be1dc1ec ("dpaa2-eth: add XDP_REDIRECT support")
> Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH net v2] dpaa2-eth: fix xdp_rxq_info leak
2025-06-26 13:30 [PATCH net v2] dpaa2-eth: fix xdp_rxq_info leak Fushuai Wang
2025-06-27 11:48 ` Simon Horman
2025-06-27 13:06 ` Ioana Ciornei
@ 2025-06-28 0:50 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-06-28 0:50 UTC (permalink / raw)
To: Fushuai Wang
Cc: ioana.ciornei, andrew+netdev, davem, edumazet, kuba, pabeni,
netdev, linux-kernel
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Thu, 26 Jun 2025 21:30:03 +0800 you wrote:
> The driver registered xdp_rxq_info structures via xdp_rxq_info_reg()
> but failed to properly unregister them in error paths and during
> removal.
>
> Fixes: d678be1dc1ec ("dpaa2-eth: add XDP_REDIRECT support")
> Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
>
> [...]
Here is the summary with links:
- [net,v2] dpaa2-eth: fix xdp_rxq_info leak
https://git.kernel.org/netdev/net/c/2def09ead4ad
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-06-28 0:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-26 13:30 [PATCH net v2] dpaa2-eth: fix xdp_rxq_info leak Fushuai Wang
2025-06-27 11:48 ` Simon Horman
2025-06-27 13:06 ` Ioana Ciornei
2025-06-28 0:50 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).