Re: [PATCH net v4 1/3] net: ti: icssg-prueth: Fix kernel warning while bringing down network interface
From: Jacob Keller
Date: Tue Apr 15 2025 - 13:42:44 EST
On 4/15/2025 2:05 AM, Meghana Malladi wrote:
> During network interface initialization, the NIC driver needs to register
> its Rx queue with the XDP, to ensure the incoming XDP buffer carries a
> pointer reference to this info and is stored inside xdp_rxq_info.
>
> While this struct isn't tied to XDP prog, if there are any changes in
> Rx queue, the NIC driver needs to stop the Rx queue by unregistering
> with XDP before purging and reallocating memory. Drop page_pool destroy
> during Rx channel reset as this is already handled by XDP during
> xdp_rxq_info_unreg (Rx queue unregister), failing to do will cause the
> following warning:
>
> warning logs: https://gist.github.com/MeghanaMalladiTI/eb627e5dc8de24e42d7d46572c13e576
>
I generally would prefer a minified warning in the commit message,
(perhaps in addition to the link) as such due to linkrot.
Regardless, the fix looks accurate to me.
Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>
> Fixes: 46eeb90f03e0 ("net: ti: icssg-prueth: Use page_pool API for RX buffer allocation")
> Signed-off-by: Meghana Malladi <m-malladi@xxxxxx>
> Reviewed-by: Simon Horman <horms@xxxxxxxxxx>
> Reviewed-by: Roger Quadros <rogerq@xxxxxxxxxx>
> ---
>
> Changes from v3 (v4-v3):
> - Collected RB tag from Roger Quadros <rogerq@xxxxxxxxxx>
>
> drivers/net/ethernet/ti/icssg/icssg_common.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/ti/icssg/icssg_common.c b/drivers/net/ethernet/ti/icssg/icssg_common.c
> index 14002b026452..ec643fb69d30 100644
> --- a/drivers/net/ethernet/ti/icssg/icssg_common.c
> +++ b/drivers/net/ethernet/ti/icssg/icssg_common.c
> @@ -1215,9 +1215,6 @@ void prueth_reset_rx_chan(struct prueth_rx_chn *chn,
> prueth_rx_cleanup);
> if (disable)
> k3_udma_glue_disable_rx_chn(chn->rx_chn);
> -
> - page_pool_destroy(chn->pg_pool);
> - chn->pg_pool = NULL;
> }
> EXPORT_SYMBOL_GPL(prueth_reset_rx_chan);
>