From: Michael Brown Date: Mon, 6 Oct 2025 15:39:19 +0000 (+0100) Subject: [gve] Add missing memory barriers X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c2d7ddd0c2855a935e0ba7987a300bcecc46261a;p=thirdparty%2Fipxe.git [gve] Add missing memory barriers Ensure that remainder of completion records are read only after verifying the generation bit (or sequence number). Signed-off-by: Michael Brown --- diff --git a/src/drivers/net/gve.c b/src/drivers/net/gve.c index 11ef35351..1696c249d 100644 --- a/src/drivers/net/gve.c +++ b/src/drivers/net/gve.c @@ -1493,6 +1493,7 @@ static void gve_poll_tx ( struct net_device *netdev ) { bit = ( dqo->flags & GVE_DQO_TXF_GEN ); if ( ( !! bit ) == ( !! gen ) ) break; + rmb(); tx->done++; /* Ignore non-packet completions */ @@ -1583,6 +1584,7 @@ static void gve_poll_rx ( struct net_device *netdev ) { bit = ( dqo->len & cpu_to_le16 ( GVE_DQO_RXL_GEN ) ); if ( ( !! bit ) == ( !! gen ) ) break; + rmb(); /* Parse completion */ len = ( le16_to_cpu ( dqo->len ) & @@ -1610,6 +1612,7 @@ static void gve_poll_rx ( struct net_device *netdev ) { /* Check sequence number */ if ( ( gqi->seq & GVE_GQI_RX_SEQ_MASK ) != seq ) break; + rmb(); seq = gve_next ( seq ); /* Parse completion */