drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
To eliminate the use of struct page in page pool, the page pool users
should use netmem descriptor and APIs instead.
Make ice driver access @pp through netmem_desc instead of page.
Signed-off-by: Byungchul Park <byungchul@sk.com>
---
drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c
index c6bc29cfb8e6..c16e54dbe75b 100644
--- a/drivers/net/ethernet/intel/ice/ice_ethtool.c
+++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c
@@ -1251,7 +1251,7 @@ static int ice_lbtest_receive_frames(struct ice_rx_ring *rx_ring)
rx_buf = &rx_ring->rx_fqes[i];
page = __netmem_to_page(rx_buf->netmem);
received_buf = page_address(page) + rx_buf->offset +
- page->pp->p.offset;
+ pp_page_to_nmdesc(page)->pp->p.offset;
if (ice_lbtest_check_frame(received_buf))
valid_frames++;
--
2.17.1
On 2/24/26 06:35, Byungchul Park wrote: > To eliminate the use of struct page in page pool, the page pool users > should use netmem descriptor and APIs instead. > > Make ice driver access @pp through netmem_desc instead of page. > > Signed-off-by: Byungchul Park <byungchul@sk.com> > --- Reviewed-by: David Hildenbrand (Arm) <david@kernel.org> -- Cheers, David
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Byungchul Park > Sent: 24 February 2026 11:06 > To: netdev@vger.kernel.org; kuba@kernel.org > Cc: linux-kernel@vger.kernel.org; kernel_team@skhynix.com; harry.yoo@oracle.com; david@redhat.com; willy@infradead.org; toke@redhat.com; asml.silence@gmail.com; almasrymina@google.com; Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; andrew+netdev@lunn.ch; davem@davemloft.net; edumazet@google.com; pabeni@redhat.com; intel-wired-lan@lists.osuosl.org > Subject: [Intel-wired-lan] [RESEND PATCH] ice: access @pp through netmem_desc instead of page > > To eliminate the use of struct page in page pool, the page pool users should use netmem descriptor and APIs instead. > > Make ice driver access @pp through netmem_desc instead of page. > > Signed-off-by: Byungchul Park <byungchul@sk.com> > --- > drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Byungchul Park > Sent: Monday, February 23, 2026 9:36 PM > To: netdev@vger.kernel.org; kuba@kernel.org > Cc: linux-kernel@vger.kernel.org; kernel_team@skhynix.com; harry.yoo@oracle.com; david@redhat.com; willy@infradead.org; toke@redhat.com; asml.silence@gmail.com; almasrymina@google.com; Nguyen, > Anthony L <anthony.l.nguyen@intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; andrew+netdev@lunn.ch; davem@davemloft.net; edumazet@google.com; pabeni@redhat.com; intel-wired- > lan@lists.osuosl.org > Subject: [Intel-wired-lan] [RESEND PATCH] ice: access @pp through netmem_desc instead of page > > To eliminate the use of struct page in page pool, the page pool users should use netmem descriptor and APIs instead. > > Make ice driver access @pp through netmem_desc instead of page. > > Signed-off-by: Byungchul Park <byungchul@sk.com> > --- > drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Tested-by: Alexander Nowlin <alexander.nowlin@intel.com>
On Tue, Feb 24, 2026 at 02:35:46PM +0900, Byungchul Park wrote: > To eliminate the use of struct page in page pool, the page pool users > should use netmem descriptor and APIs instead. > > Make ice driver access @pp through netmem_desc instead of page. Hi Tony and Przemek, Is there something that I'm missing or something wrong with this? Your feedback would be appreciated. Thanks! Byungchul > Signed-off-by: Byungchul Park <byungchul@sk.com> > --- > drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c > index c6bc29cfb8e6..c16e54dbe75b 100644 > --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c > +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c > @@ -1251,7 +1251,7 @@ static int ice_lbtest_receive_frames(struct ice_rx_ring *rx_ring) > rx_buf = &rx_ring->rx_fqes[i]; > page = __netmem_to_page(rx_buf->netmem); > received_buf = page_address(page) + rx_buf->offset + > - page->pp->p.offset; > + pp_page_to_nmdesc(page)->pp->p.offset; > > if (ice_lbtest_check_frame(received_buf)) > valid_frames++; > -- > 2.17.1
On 2/25/2026 5:08 PM, Byungchul Park wrote: > On Tue, Feb 24, 2026 at 02:35:46PM +0900, Byungchul Park wrote: >> To eliminate the use of struct page in page pool, the page pool users >> should use netmem descriptor and APIs instead. >> >> Make ice driver access @pp through netmem_desc instead of page. > > Hi Tony and Przemek, > > Is there something that I'm missing or something wrong with this? Your > feedback would be appreciated. Thanks! Hi Byungchul, Nothing wrong. I plan to apply it today. Thanks, Tony > Byungchul > >> Signed-off-by: Byungchul Park <byungchul@sk.com> >> --- >> drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c >> index c6bc29cfb8e6..c16e54dbe75b 100644 >> --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c >> +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c >> @@ -1251,7 +1251,7 @@ static int ice_lbtest_receive_frames(struct ice_rx_ring *rx_ring) >> rx_buf = &rx_ring->rx_fqes[i]; >> page = __netmem_to_page(rx_buf->netmem); >> received_buf = page_address(page) + rx_buf->offset + >> - page->pp->p.offset; >> + pp_page_to_nmdesc(page)->pp->p.offset; >> >> if (ice_lbtest_check_frame(received_buf)) >> valid_frames++; >> -- >> 2.17.1
On Thu, Feb 26, 2026 at 10:13:14AM -0800, Tony Nguyen wrote: > On 2/25/2026 5:08 PM, Byungchul Park wrote: > > On Tue, Feb 24, 2026 at 02:35:46PM +0900, Byungchul Park wrote: > > > To eliminate the use of struct page in page pool, the page pool users > > > should use netmem descriptor and APIs instead. > > > > > > Make ice driver access @pp through netmem_desc instead of page. > > > > Hi Tony and Przemek, > > > > Is there something that I'm missing or something wrong with this? Your > > feedback would be appreciated. Thanks! > > Hi Byungchul, > > Nothing wrong. I plan to apply it today. Hi Tony, Sorry bothering you but could you tell me where I can see the patch ready in a tree, maybe yours? I failed to locate it. This patch is very important for the project removing pp fields from struct page to go ahead. Thanks in advance. Byungchul > Thanks, > Tony > > > Byungchul > > > > > Signed-off-by: Byungchul Park <byungchul@sk.com> > > > --- > > > drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c > > > index c6bc29cfb8e6..c16e54dbe75b 100644 > > > --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c > > > +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c > > > @@ -1251,7 +1251,7 @@ static int ice_lbtest_receive_frames(struct ice_rx_ring *rx_ring) > > > rx_buf = &rx_ring->rx_fqes[i]; > > > page = __netmem_to_page(rx_buf->netmem); > > > received_buf = page_address(page) + rx_buf->offset + > > > - page->pp->p.offset; > > > + pp_page_to_nmdesc(page)->pp->p.offset; > > > > > > if (ice_lbtest_check_frame(received_buf)) > > > valid_frames++; > > > -- > > > 2.17.1
On 3/31/2026 1:11 AM, Byungchul Park wrote: > On Thu, Feb 26, 2026 at 10:13:14AM -0800, Tony Nguyen wrote: >> On 2/25/2026 5:08 PM, Byungchul Park wrote: >>> On Tue, Feb 24, 2026 at 02:35:46PM +0900, Byungchul Park wrote: >>>> To eliminate the use of struct page in page pool, the page pool users >>>> should use netmem descriptor and APIs instead. >>>> >>>> Make ice driver access @pp through netmem_desc instead of page. >>> >>> Hi Tony and Przemek, >>> >>> Is there something that I'm missing or something wrong with this? Your >>> feedback would be appreciated. Thanks! >> >> Hi Byungchul, >> >> Nothing wrong. I plan to apply it today. > > Hi Tony, > > Sorry bothering you but could you tell me where I can see the patch > ready in a tree, maybe yours? I failed to locate it. > > This patch is very important for the project removing pp fields from > struct page to go ahead. Thanks in advance. Hi Byungchul, I actually heard from my validation about this yesterday. They're seeing issues on the loopback test. We're working on isolating the problem to determine/ensure it wasn't due to this patch. Hopefully that will be done soon and, if not the problem, I'll get it sent out shortly thereafter. Thanks, Tony > Byungchul > >> Thanks, >> Tony >> >>> Byungchul >>> >>>> Signed-off-by: Byungchul Park <byungchul@sk.com> >>>> --- >>>> drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c >>>> index c6bc29cfb8e6..c16e54dbe75b 100644 >>>> --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c >>>> +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c >>>> @@ -1251,7 +1251,7 @@ static int ice_lbtest_receive_frames(struct ice_rx_ring *rx_ring) >>>> rx_buf = &rx_ring->rx_fqes[i]; >>>> page = __netmem_to_page(rx_buf->netmem); >>>> received_buf = page_address(page) + rx_buf->offset + >>>> - page->pp->p.offset; >>>> + pp_page_to_nmdesc(page)->pp->p.offset; >>>> >>>> if (ice_lbtest_check_frame(received_buf)) >>>> valid_frames++; >>>> -- >>>> 2.17.1
© 2016 - 2026 Red Hat, Inc.