Re: [Intel-wired-lan] [PATCH iwl-next 2/3] iavf: use __libeth_rx_sync_for_cpu
"Loktionov, Aleksandr" <[email protected]> Fri, 31 Jul 2026 13:38:21 +0000
| Newsgroups | org.osuosl.intel-wired-lan,org.kernel.vger.netdev |
|---|---|
| Message-ID | <IA3PR11MB89869FEBF6A5207E65199B47E5C82@IA3PR11MB8986.namprd11.prod.outlook.com> |
> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf > Of Matt Vollrath > Sent: Friday, July 31, 2026 2:41 PM > To: [email protected] > Cc: [email protected]; Lobakin, Aleksander > <[email protected]>; Nguyen, Anthony L > <[email protected]>; Kitszel, Przemyslaw > <[email protected]>; Andrew Lunn <[email protected]>; > David S . Miller <[email protected]>; Eric Dumazet > <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni > <[email protected]>; Simon Horman <[email protected]>; Matt Vollrath > <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-next 2/3] iavf: use > __libeth_rx_sync_for_cpu >=20 > The Rx ring already has a reference to its page pool adjacent to > fields touched every iteration. Avoid loading the netmem_desc for sync > by taking the shortcut. >=20 > Signed-off-by: Matt Vollrath <[email protected]> > Assisted-by: Claude:claude-5-fable > --- > drivers/net/ethernet/intel/iavf/iavf_txrx.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) >=20 > diff --git a/drivers/net/ethernet/intel/iavf/iavf_txrx.c > b/drivers/net/ethernet/intel/iavf/iavf_txrx.c > index c30abf17cf5d..3ae2f0a0ee4d 100644 > --- a/drivers/net/ethernet/intel/iavf/iavf_txrx.c > +++ b/drivers/net/ethernet/intel/iavf/iavf_txrx.c > @@ -1387,6 +1387,7 @@ static int iavf_clean_rx_irq(struct iavf_ring > *rx_ring, int budget) { > bool flex =3D rx_ring->rxdid =3D=3D VIRTCHNL_RXDID_2_FLEX_SQ_NIC; > unsigned int total_rx_bytes =3D 0, total_rx_packets =3D 0; > + const struct page_pool *pp =3D rx_ring->pp; > struct sk_buff *skb =3D rx_ring->skb; > u16 cleaned_count =3D IAVF_DESC_UNUSED(rx_ring); > bool failure =3D false; > @@ -1424,7 +1425,7 @@ static int iavf_clean_rx_irq(struct iavf_ring > *rx_ring, int budget) > iavf_trace(clean_rx_irq, rx_ring, rx_desc, skb); >=20 > rx_buffer =3D &rx_ring->rx_fqes[rx_ring->next_to_clean]; > - if (!libeth_rx_sync_for_cpu(rx_buffer, fields.len)) > + if (!__libeth_rx_sync_for_cpu(pp, rx_buffer, > fields.len)) > goto skip_data; >=20 > /* retrieve a buffer from the ring */ > -- > 2.43.0 Reviewed-by: Aleksandr Loktionov <[email protected]>