From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 64E0445AE3; Tue, 8 Oct 2024 18:02:58 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CA07440E32; Tue, 8 Oct 2024 18:02:29 +0200 (CEST) Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by mails.dpdk.org (Postfix) with ESMTP id 400EC40691 for ; Tue, 8 Oct 2024 18:02:24 +0200 (CEST) Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-7db54269325so4763563a12.2 for ; Tue, 08 Oct 2024 09:02:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1728403343; x=1729008143; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AjVxGvwLWNMGNFmtvrh3C4fJ5wxGypBirSM160HEkoU=; b=xmOcajqqBvp46Dbyv3NKa/M4tmNfThvLA///4eqxaAT6lphGANKgkeyAMDkJvrmh2e 3q0LgMBRVlHRoCcNy6PCZV1r7FnjDCYm01/JH1XUlVkDPCVLrCeTTfWOwRNMZwolU4b0 QpIg+98oqvxMAGrQLHEhstU/3qt+nxMQLgOIotYJnAawRnoy2h/TocijDJz9dyYtbf6g oTeG7PhmgqhTIAJJxXIoUOjk6DEtQ9cX5Arw/AoCqhVae0ksusoVON6b1YlrzQRz4LZQ SS1B2tfkJF8nMjCTDM3ilc2xclN9DBblUmEcqNIWQ33P4GQyv8I58O3QaUZktCy6nsRk UNxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728403343; x=1729008143; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AjVxGvwLWNMGNFmtvrh3C4fJ5wxGypBirSM160HEkoU=; b=kM4i869pCp2AKT5ADvX6x9Y5iEg5b2q0+DqKudZ2gJphgytslOX4nnlB628vD+gQaB IgDlxGe+mb6Tv+ewXjVPVHD7XcMGWpBZMKQKOBkLNizqQV/kGAP080o5aKE24OQt+p4P VmfxZf9x4oHXSO6XZeQ2PIOSS3T9rqzjX0sjaM+QipY4abGkUeOV//tnxyiEuTyEGVZh EKTQcbBjgviuDOLD6swm2Et+lJ18KiLeoeqr16RAIBapHsIJsiZdBQpKPw89NMKpMxuW LXUMDeRUWU9IY7ZR61tVw9hlak+mDkpqMHndn1k5+GCGpuL/mlb+UIfVsDLmhAPqQzfQ EbQg== X-Gm-Message-State: AOJu0YzCOUxqCRnvKgieBdv3MgNJ+xSVj9s4iCHtbGw1vhoSX/Y2g+20 PJ6sN06XVAbBbpvuuLtvbU7thr+zXIAZbCcmh2/0KYPq6ORMgbBIAPGl5yGAewIeqCOTl5FC+Fd +jD2mpA== X-Google-Smtp-Source: AGHT+IGOiiFVFbY2PAceMLdbJdHSnqaPKTTwF0GAp3iPs83vXQexYxW/vgwpoBQMg8GASsf6dj9MVg== X-Received: by 2002:a05:6a21:2d84:b0:1d5:10c3:af5a with SMTP id adf61e73a8af0-1d6dfae286emr22155598637.47.1728403343368; Tue, 08 Oct 2024 09:02:23 -0700 (PDT) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7e9f6c3758esm7028267a12.74.2024.10.08.09.02.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Oct 2024 09:02:22 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , ivan.ilchenko@oktetlabs.ru Subject: [RFC 5/5] net/sfc: fix handling of xstats_get queries Date: Tue, 8 Oct 2024 08:59:59 -0700 Message-ID: <20241008160209.68000-6-stephen@networkplumber.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241008160209.68000-1-stephen@networkplumber.org> References: <20241008160209.68000-1-stephen@networkplumber.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The xstats_get function in this driver did not act the same as other drivers when queried. The correct check is to look at the requested number of stats and compare it to the available stats and if the request is too small, return the correct size. Fixes: fdd7719eb3c1 ("net/sfc: add xstats for Rx/Tx doorbells") Cc: ivan.ilchenko@oktetlabs.ru Signed-off-by: Stephen Hemminger --- drivers/net/sfc/sfc_ethdev.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index 3480a51642..f0710dab5c 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -833,11 +833,12 @@ sfc_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats, { struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); unsigned int nb_written = 0; - unsigned int nb_supported = 0; + unsigned int nb_supported; int rc; - if (unlikely(xstats == NULL)) - return sfc_xstats_get_nb_supported(sa); + nb_supported = sfc_xstats_get_nb_supported(sa); + if (xstats_count < nb_supported) + return nb_supported; rc = sfc_port_get_mac_stats(sa, xstats, xstats_count, &nb_written); if (rc < 0) -- 2.45.2