On 7/21/2025 5:49 AM, Meghana Malladi wrote: > emac_rx_packet() is a common function for handling traffic > for both xdp and non-xdp use cases. Use common logic for > handling skb with or without xdp to prevent any incorrect > packet processing. This patch fixes ping working with > XDP_PASS for icssg driver. > > Fixes: 62aa3246f4623 ("net: ti: icssg-prueth: Add XDP support") > Signed-off-by: Meghana Malladi <m-malladi@xxxxxx> > --- > drivers/net/ethernet/ti/icssg/icssg_common.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/ethernet/ti/icssg/icssg_common.c b/drivers/net/ethernet/ti/icssg/icssg_common.c > index 12f25cec6255..a0e7def33e8e 100644 > --- a/drivers/net/ethernet/ti/icssg/icssg_common.c > +++ b/drivers/net/ethernet/ti/icssg/icssg_common.c > @@ -757,15 +757,12 @@ static int emac_rx_packet(struct prueth_emac *emac, u32 flow_id, u32 *xdp_state) > xdp_prepare_buff(&xdp, pa, PRUETH_HEADROOM, pkt_len, false); > > *xdp_state = emac_run_xdp(emac, &xdp, page, &pkt_len); > - if (*xdp_state == ICSSG_XDP_PASS) > - skb = xdp_build_skb_from_buff(&xdp); > - else > + if (*xdp_state != ICSSG_XDP_PASS) > goto requeue; > - } else { > - /* prepare skb and send to n/w stack */ > - skb = napi_build_skb(pa, PAGE_SIZE); > } > > + /* prepare skb and send to n/w stack */ > + skb = napi_build_skb(pa, PAGE_SIZE); > if (!skb) { > ndev->stats.rx_dropped++; > page_pool_recycle_direct(pool, page); > > base-commit: 81e0db8e839822b8380ce4716cd564a593ccbfc5 Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature