[PATCH net] eth: fbnic: Correct packet header prefetch

From: Dimitri Daskalakis

Date: Tue Oct 20 2026 - 13:29:08 EST


From: Dimitri Daskalakis <daskald@xxxxxxxx>

The existing call to net_prefetch() fetched a stale address. The data
pointer is not initialized until after the call to xdp_prepare_buff().
Thus, making the prefetch ineffective.

Open code the address calcuation to give the prefetch as much time
as possible.

This was found by manual code inspection. No issues have been observed
from this.

Fixes: 9064ab485f04 ("eth: fbnic: Prefetch packet headers on Rx")
Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
Signed-off-by: Dimitri Daskalakis <daskald@xxxxxxxx>
---
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c b/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
index 10caacffee0f..69cd96a4508f 100644
--- a/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
+++ b/drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
@@ -1011,7 +1011,7 @@ static void fbnic_pkt_prepare(struct fbnic_napi_vector *nv, u64 rcd,

/* Build frame around buffer */
hdr_start = page_address(page) + hdr_pg_start;
- net_prefetch(pkt->buff.data);
+ net_prefetch(hdr_start + headroom);
xdp_prepare_buff(&pkt->buff, hdr_start, headroom,
len - FBNIC_RX_PAD, true);

--
2.52.0