From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6FE8217AE11 for ; Sat, 25 Apr 2026 00:24:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777076697; cv=none; b=UbL/V7gG5naBfd4GzPUB3E4irCGCiJYNDzi8HEwzOAf1qQ7tefBmytqJ2+5V3Ed+SqcKCI5/z4v8FDYB9AC0iKIyXWsn7vuu99oDGLk57oQgs4v+EvOBYxMLyiLej+BgARqbak6FUfFAvVN+3mTDIVseyn8zlJSYjOsGa99S89Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777076697; c=relaxed/simple; bh=Mjnx1s3bsqC9FAzihiRv4foFXTmL4rKmWuq5XvBiL6Q=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=YgYUEq3rckDejiJjcswWlmWn+eHC8zVtEssqx6/GvQ7YwD+kMJN8ggiBYvf1wkauV9le+79VLTQfyis/MAgaN4W7xdXylvDYmmGpKMiBzCVMQvhEd1JB4vSvblIZlieEu3lpWxmVfnNRuxPAAvBus8Q583iWfWJhDDok6Vi5fMc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--hramamurthy.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=UMAAUJQq; arc=none smtp.client-ip=209.85.214.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--hramamurthy.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="UMAAUJQq" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-2b24cd2e2b3so77204615ad.0 for ; Fri, 24 Apr 2026 17:24:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1777076696; x=1777681496; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Waoun8sqMnhJduShdptqSPbzHIpwQYFL4W4pABJXnK0=; b=UMAAUJQqAOkxqp+kAKZTQIuprJQhsD4ElGilIsjAdyiWExl6AFkH1kFcRpeEWysxOw EEAihnhC2ZHtKAKdB5MKWbTH2IyMerQq1Ymvfj1Ocfzx1RbKD5TGIajTGqchEkmwmCRO eYYsK2ry8Y1/8KefYJI6Y7Iu+PMvXdJTWC1Gm1vLQo4TAqQktHPrTtAST2Y/JIBpmXq2 rzWRn0iu0BbmgOt3xlXepcrp0/FV03jfr4RJxeEGcA376sc6xAYTiFrk9KK5+iFgSDSA hOfQ2Mv110QI6PXEq4xnieuFMdKV8fjoCmOapSpCzzy6G3VMW4UeRbTijxuCktFNVhsS 1CSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777076696; x=1777681496; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Waoun8sqMnhJduShdptqSPbzHIpwQYFL4W4pABJXnK0=; b=ZlDAVNeozVwoIFZPXoWGH8blEgQXCoyid9Q6gQIlmteO/1jDKqzjiqm9SgPuNR3hR8 tHbgAcsuSVpo0sSkNz+h8Olc9ULaKzvPFfzogD14c8HwPZ8pTWxebYlb2Xmml+Me1uF1 2sRESBlOWkM3EQtWMP0/XbvlfxZilVPILWTbaVYMYHk9ZSeo2QgR6fNgAUBL2sf1L23h E4UUxuFNf5LjHwkuGRQPHjZuBoIbWaSlTtA5Sbm7a3JCfL1sHv4gx1LBf9XBcaNtDllN ohdctOwjkRcCMqoMOG3cW4zB5NRzKANA2Pk5kcGSMu4t+0u/u7Q1m01NBeN6mxXd0RJ0 MOhA== X-Gm-Message-State: AOJu0Yz0FJ8qri69jpzCKUw0gRx7pG9U06vMtrBgsTl36gYqbWud3u30 C5D5uSclqVZQDPFEX52gEL/4Kerebz16vWZCVBWfqhOwuqAiu45K4k4wHIw/YFcJCEyH5W8hYBx FtOas+BkYIgx0OjVyiurZNyqsjm7aqzCcPnINrPPTFt785N3An2xsc6yinq45z9T65SCGXTqARY pY9qSus8+sTkParHdlwa7GqXnUj2i2W0luao4lxnCxYyR1RU7RYSalVodDWCqGI14= X-Received: from plbb16.prod.google.com ([2002:a17:903:c10:b0:2b2:49fe:d6db]) (user=hramamurthy job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:c94b:b0:2a9:e8b:5326 with SMTP id d9443c01a7336-2b5f9f51e59mr333405275ad.23.1777076695413; Fri, 24 Apr 2026 17:24:55 -0700 (PDT) Date: Sat, 25 Apr 2026 00:24:47 +0000 In-Reply-To: <20260425002450.163421-1-hramamurthy@google.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260425002450.163421-1-hramamurthy@google.com> X-Mailer: git-send-email 2.54.0.545.g6539524ca2-goog Message-ID: <20260425002450.163421-2-hramamurthy@google.com> Subject: [PATCH net v2 1/4] gve: Add NULL pointer checks for per-queue statistics From: Harshitha Ramamurthy To: netdev@vger.kernel.org Cc: joshwash@google.com, hramamurthy@google.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, willemb@google.com, maolson@google.com, nktgrg@google.com, jfraker@google.com, ziweixiao@google.com, jacob.e.keller@intel.com, pkaligineedi@google.com, shailend@google.com, jordanrhee@google.com, stable@vger.kernel.org, linux-kernel@vger.kernel.org, Debarghya Kundu , Pin-yen Lin Content-Type: text/plain; charset="UTF-8" From: Debarghya Kundu gve_get_[tx/rx]_queue_stats references the [tx/rx] null rings when the link is down. Add NULL pointer checks to guard this This was discovered by drivers/net/stats.py selftest. Cc: stable@vger.kernel.org Fixes: 2e5e0932dff5 ("gve: add support for basic queue stats") Signed-off-by: Debarghya Kundu Signed-off-by: Pin-yen Lin Signed-off-by: Harshitha Ramamurthy --- drivers/net/ethernet/google/gve/gve_main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c index 424d973c97f2..ef00d9ca1643 100644 --- a/drivers/net/ethernet/google/gve/gve_main.c +++ b/drivers/net/ethernet/google/gve/gve_main.c @@ -2746,9 +2746,13 @@ static void gve_get_rx_queue_stats(struct net_device *dev, int idx, struct netdev_queue_stats_rx *rx_stats) { struct gve_priv *priv = netdev_priv(dev); - struct gve_rx_ring *rx = &priv->rx[idx]; + struct gve_rx_ring *rx; unsigned int start; + if (!priv->rx) + return; + rx = &priv->rx[idx]; + do { start = u64_stats_fetch_begin(&rx->statss); rx_stats->packets = rx->rpackets; @@ -2762,9 +2766,13 @@ static void gve_get_tx_queue_stats(struct net_device *dev, int idx, struct netdev_queue_stats_tx *tx_stats) { struct gve_priv *priv = netdev_priv(dev); - struct gve_tx_ring *tx = &priv->tx[idx]; + struct gve_tx_ring *tx; unsigned int start; + if (!priv->tx) + return; + tx = &priv->tx[idx]; + do { start = u64_stats_fetch_begin(&tx->statss); tx_stats->packets = tx->pkt_done; -- 2.54.0.545.g6539524ca2-goog