From patchwork Thu Mar 11 01:35:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450916 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=bJqzqKWh; dkim-atps=neutral Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws2l66VYz9sRR for ; Thu, 11 Mar 2021 12:35:27 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id EF48845F30; Thu, 11 Mar 2021 01:35:24 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lIZU4T9kv999; Thu, 11 Mar 2021 01:35:24 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id CF1EC42D9F; Thu, 11 Mar 2021 01:35:23 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 440001BF38B for ; Thu, 11 Mar 2021 01:35:23 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id E0A6B600C7 for ; Thu, 11 Mar 2021 01:35:22 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp3.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5lzeqkBqM-qU for ; Thu, 11 Mar 2021 01:35:22 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-qk1-x72a.google.com (mail-qk1-x72a.google.com [IPv6:2607:f8b0:4864:20::72a]) by smtp3.osuosl.org (Postfix) with ESMTPS id 2381960654 for ; Thu, 11 Mar 2021 01:35:22 +0000 (UTC) Received: by mail-qk1-x72a.google.com with SMTP id m186so2461873qke.12 for ; Wed, 10 Mar 2021 17:35:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=9h5JIDXWaMuHtL046jz2eeifrcDZUcEjclder2vbKCw=; b=bJqzqKWhqoWa6NNvwAfcvTw7nHfiu76+um6FzbiGsTQnOy7tZ550I813A8ukq69atc 2u0+3tbja3zfK0gXm9iuOYure2m1l0TIe26JJ5S2Dx1MjCUBbv9xDBGD2l5v8dmN6AD0 6WEmTK2584gnERQ0h88hIjTT3sLjES9tfE4yxjBueKJuIs+dLNa4/m862ESEr+hK4B91 fZ6J2mMYJtM1MhsY9O/BHc+4rAKrpAhb+JOTo7K9QJm7+Oh/hRDT6rbm2ZOtxDN9O+m1 FQpxoox4ifXk1+dyyT0rboyrMDr8F2AXpHEsXH/Js9TIdef0CYbvDqa+A1PXg7hCFgAG QTbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=9h5JIDXWaMuHtL046jz2eeifrcDZUcEjclder2vbKCw=; b=S8426rwUWjAhmD9RWGPNx08XMnV3OAy9/A/Pk3ujaS744IphooyR/CQYJ0WzKi0xfv uHjU91RmlWUtGHNcZmhQzXa/+Dl89U7U5U/3YmrR6rvaQXLvvtE7IqNpGwuukPfjPPp7 Fdc/sa8BwxXaoF+QuC1bwlmpYmFRqKyYf2NiSOrnF6f1mx9GjiBpCpnA+YBO5yrN3o90 SBtouqHJEtHVF6GnEAHQSxrcI+VRG01IGmsE+4hlA+fTHOqJ9EGlzSVS47Wq4WL/YNOD zVw8zBksGamo94fgD4nVdq9bwJp8K+hyLpZAPTBm93wclbBTYqqPCbCCFHl8PWpDh8qf qZCA== X-Gm-Message-State: AOAM533lEWImJFPhvz0SL49xDtTz7YASChWqInoMbcmg24SJfNDGIELR w+2NW5xORkRp+psZXNS2aak= X-Google-Smtp-Source: ABdhPJxcQI0alljtDMFhQQkSUfxARtssUyRqWAPlDHYhJM3hrVLJop7YeewZjLrwQstRQqCwWJ61Og== X-Received: by 2002:a05:620a:4445:: with SMTP id w5mr5532438qkp.330.1615426520877; Wed, 10 Mar 2021 17:35:20 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id p90sm749923qtd.66.2021.03.10.17.35.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:35:20 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:35:17 -0800 Message-ID: <161542651749.13546.3959589547085613076.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 01/10] ethtool: Add common function for filling out strings X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck Add a function to handle the common pattern of printing a string into the ethtool strings interface and incrementing the string pointer by the ETH_GSTRING_LEN. Most of the drivers end up doing this and several have implemented their own versions of this function so it would make sense to consolidate on one implementation. Signed-off-by: Alexander Duyck --- include/linux/ethtool.h | 9 +++++++++ net/ethtool/ioctl.c | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index ec4cd3921c67..0493f13b2b20 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -571,4 +571,13 @@ struct ethtool_phy_ops { */ void ethtool_set_ethtool_phy_ops(const struct ethtool_phy_ops *ops); +/** + * ethtool_gsprintf - Write formatted string to ethtool string data + * @data: Pointer to start of string to update + * @fmt: Format of string to write + * + * Write formatted string to data. Update data to point at start of + * next string. + */ +extern __printf(2, 3) void ethtool_gsprintf(u8 **data, const char *fmt, ...); #endif /* _LINUX_ETHTOOL_H */ diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 24783b71c584..44ac73780b6e 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1844,6 +1844,18 @@ static int ethtool_get_strings(struct net_device *dev, void __user *useraddr) return ret; } +__printf(2, 3) void ethtool_gsprintf(u8 **data, const char *fmt, ...) +{ + va_list args; + + va_start(args, fmt); + vsnprintf(*data, ETH_GSTRING_LEN, fmt, args); + va_end(args); + + *data += ETH_GSTRING_LEN; +} +EXPORT_SYMBOL(ethtool_gsprintf); + static int ethtool_phys_id(struct net_device *dev, void __user *useraddr) { struct ethtool_value id; From patchwork Thu Mar 11 01:35:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450917 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=BLduzivb; dkim-atps=neutral Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws2s5tzsz9sRR for ; Thu, 11 Mar 2021 12:35:33 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id CADA243008; Thu, 11 Mar 2021 01:35:31 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E6Sop4XnBHYj; Thu, 11 Mar 2021 01:35:30 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id B33F642FFC; Thu, 11 Mar 2021 01:35:30 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 626C71BF38B for ; Thu, 11 Mar 2021 01:35:29 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 4FBC3454B4 for ; Thu, 11 Mar 2021 01:35:29 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp4.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U_C23EoFlWqW for ; Thu, 11 Mar 2021 01:35:28 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) by smtp4.osuosl.org (Postfix) with ESMTPS id 35EB64695D for ; Thu, 11 Mar 2021 01:35:28 +0000 (UTC) Received: by mail-pj1-x102c.google.com with SMTP id w8so2640233pjf.4 for ; Wed, 10 Mar 2021 17:35:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=a/0fZNqVgloBnEhlkQpxMX/GvO0+8YU9LHLpoGezxsU=; b=BLduzivbLDbidT4i9qxmn8vfoPkTaHjSu4w/eg8d91Aqfs2kudcXSmXRfBuwGbdkFJ s7xpLe+SgmGJB8rlGiXKrpXTtQI5yaHx2T9VWveG2NaeIKBXiExzx1EXbPBePZvpHNjw L9JQZASKgZAv8zZhd0slVZSijffaT5i1L3bpyrNFe6BGU+v0L4eit3KDLjr6NT7LRz+n vD4sMUzWOVLuc6i1X0UhAhvxgeg3Oy25/0G1mN4Xi5CbX/TDPzdB1i/GaTNR4aQ0BRm2 kpRM3ICut3wgH/g7SJ16jL+nrGIzluiiYuoU66SM4ZmNhZYUVGcbK0tkMt3cK8T4FIai rldQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=a/0fZNqVgloBnEhlkQpxMX/GvO0+8YU9LHLpoGezxsU=; b=OmxWilDflfBGOMDe4Se8qyDbpAlc5+SyL9uNutuvVE9p6OoRLvPEQpMaML7lbDPdcI 5oFXJqKl7C+mLw8PHNV6AlAudr+83vh768uvyr/JjqN6JNZaqk8UZCi2VoGAgFPIe9jS WC8lFsHG+15dPIH/aJDJU+h67sSilRGUnQWmrC76B68rxM4rY/gEXzSG8471mbYTatXn XzqVr5E9d8X6gSNa6N3LjV26Tmf9xX18Y6qz1wazcnWgDiDv0mmozokqCYJqyVajWVFt o93VEIcu3Dz0g/pDYyMlaffj7OJw81jRfNRDbc65+UnsyybjVF0LJLVIbeJnO1ohuSi5 Yw+g== X-Gm-Message-State: AOAM532eLfvbIp63yjh2IKb4iX4jrae92Uu1Ivxr9rwWu/TpC0w7/YQx TfgGTi62ccd2HlaPQDtynZg= X-Google-Smtp-Source: ABdhPJxxg907TFRawOVWMfevxA8dA7Tb3Slyc2F/2ACyyMlyS+8hHitTwll+g0rc/z6iFhmQk53UzQ== X-Received: by 2002:a17:90a:fd0a:: with SMTP id cv10mr6158432pjb.167.1615426527562; Wed, 10 Mar 2021 17:35:27 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id a21sm661686pfh.31.2021.03.10.17.35.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:35:27 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:35:26 -0800 Message-ID: <161542652605.13546.13143472024905128153.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 02/10] intel: Update drivers to use ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck Update the Intel drivers to make use of ethtool_gsprintf. The general idea is to reduce code size and overhead by replacing the repeated pattern of string printf statements and ETH_STRING_LEN counter increments. Signed-off-by: Alexander Duyck --- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 16 ++---- drivers/net/ethernet/intel/ice/ice_ethtool.c | 55 +++++++--------------- drivers/net/ethernet/intel/igb/igb_ethtool.c | 40 ++++++---------- drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 40 ++++++---------- 4 files changed, 50 insertions(+), 101 deletions(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c index c70dec65a572..932c6635cfd6 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c @@ -2368,21 +2368,15 @@ static void i40e_get_priv_flag_strings(struct net_device *netdev, u8 *data) struct i40e_netdev_priv *np = netdev_priv(netdev); struct i40e_vsi *vsi = np->vsi; struct i40e_pf *pf = vsi->back; - char *p = (char *)data; + u8 *p = data; unsigned int i; - for (i = 0; i < I40E_PRIV_FLAGS_STR_LEN; i++) { - snprintf(p, ETH_GSTRING_LEN, "%s", - i40e_gstrings_priv_flags[i].flag_string); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < I40E_PRIV_FLAGS_STR_LEN; i++) + ethtool_gsprintf(&p, i40e_gstrings_priv_flags[i].flag_string); if (pf->hw.pf_id != 0) return; - for (i = 0; i < I40E_GL_PRIV_FLAGS_STR_LEN; i++) { - snprintf(p, ETH_GSTRING_LEN, "%s", - i40e_gl_gstrings_priv_flags[i].flag_string); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < I40E_GL_PRIV_FLAGS_STR_LEN; i++) + ethtool_gsprintf(&p, i40e_gl_gstrings_priv_flags[i].flag_string); } static void i40e_get_strings(struct net_device *netdev, u32 stringset, diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c index 2dcfa685b763..cef5ebeae886 100644 --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c @@ -871,68 +871,47 @@ static void ice_get_strings(struct net_device *netdev, u32 stringset, u8 *data) { struct ice_netdev_priv *np = netdev_priv(netdev); struct ice_vsi *vsi = np->vsi; - char *p = (char *)data; unsigned int i; + u8 *p = data; switch (stringset) { case ETH_SS_STATS: - for (i = 0; i < ICE_VSI_STATS_LEN; i++) { - snprintf(p, ETH_GSTRING_LEN, "%s", - ice_gstrings_vsi_stats[i].stat_string); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < ICE_VSI_STATS_LEN; i++) + ethtool_gsprintf(&p, + ice_gstrings_vsi_stats[i].stat_string); ice_for_each_alloc_txq(vsi, i) { - snprintf(p, ETH_GSTRING_LEN, - "tx_queue_%u_packets", i); - p += ETH_GSTRING_LEN; - snprintf(p, ETH_GSTRING_LEN, "tx_queue_%u_bytes", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "tx_queue_%u_packets", i); + ethtool_gsprintf(&p, "tx_queue_%u_bytes", i); } ice_for_each_alloc_rxq(vsi, i) { - snprintf(p, ETH_GSTRING_LEN, - "rx_queue_%u_packets", i); - p += ETH_GSTRING_LEN; - snprintf(p, ETH_GSTRING_LEN, "rx_queue_%u_bytes", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "rx_queue_%u_packets", i); + ethtool_gsprintf(&p, "rx_queue_%u_bytes", i); } if (vsi->type != ICE_VSI_PF) return; - for (i = 0; i < ICE_PF_STATS_LEN; i++) { - snprintf(p, ETH_GSTRING_LEN, "%s", - ice_gstrings_pf_stats[i].stat_string); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < ICE_PF_STATS_LEN; i++) + ethtool_gsprintf(&p, + ice_gstrings_pf_stats[i].stat_string); for (i = 0; i < ICE_MAX_USER_PRIORITY; i++) { - snprintf(p, ETH_GSTRING_LEN, - "tx_priority_%u_xon.nic", i); - p += ETH_GSTRING_LEN; - snprintf(p, ETH_GSTRING_LEN, - "tx_priority_%u_xoff.nic", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "tx_priority_%u_xon.nic", i); + ethtool_gsprintf(&p, "tx_priority_%u_xoff.nic", i); } for (i = 0; i < ICE_MAX_USER_PRIORITY; i++) { - snprintf(p, ETH_GSTRING_LEN, - "rx_priority_%u_xon.nic", i); - p += ETH_GSTRING_LEN; - snprintf(p, ETH_GSTRING_LEN, - "rx_priority_%u_xoff.nic", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "rx_priority_%u_xon.nic", i); + ethtool_gsprintf(&p, "rx_priority_%u_xoff.nic", i); } break; case ETH_SS_TEST: memcpy(data, ice_gstrings_test, ICE_TEST_LEN * ETH_GSTRING_LEN); break; case ETH_SS_PRIV_FLAGS: - for (i = 0; i < ICE_PRIV_FLAG_ARRAY_SIZE; i++) { - snprintf(p, ETH_GSTRING_LEN, "%s", - ice_gstrings_priv_flags[i].name); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < ICE_PRIV_FLAG_ARRAY_SIZE; i++) + ethtool_gsprintf(&p, ice_gstrings_priv_flags[i].name); break; default: break; diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c index 28baf203459a..a82d2b901ac4 100644 --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -2347,35 +2347,23 @@ static void igb_get_strings(struct net_device *netdev, u32 stringset, u8 *data) IGB_TEST_LEN*ETH_GSTRING_LEN); break; case ETH_SS_STATS: - for (i = 0; i < IGB_GLOBAL_STATS_LEN; i++) { - memcpy(p, igb_gstrings_stats[i].stat_string, - ETH_GSTRING_LEN); - p += ETH_GSTRING_LEN; - } - for (i = 0; i < IGB_NETDEV_STATS_LEN; i++) { - memcpy(p, igb_gstrings_net_stats[i].stat_string, - ETH_GSTRING_LEN); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < IGB_GLOBAL_STATS_LEN; i++) + ethtool_gsprintf(&p, + igb_gstrings_stats[i].stat_string); + for (i = 0; i < IGB_NETDEV_STATS_LEN; i++) + ethtool_gsprintf(&p, + igb_gstrings_net_stats[i].stat_string); for (i = 0; i < adapter->num_tx_queues; i++) { - sprintf(p, "tx_queue_%u_packets", i); - p += ETH_GSTRING_LEN; - sprintf(p, "tx_queue_%u_bytes", i); - p += ETH_GSTRING_LEN; - sprintf(p, "tx_queue_%u_restart", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "tx_queue_%u_packets", i); + ethtool_gsprintf(&p, "tx_queue_%u_bytes", i); + ethtool_gsprintf(&p, "tx_queue_%u_restart", i); } for (i = 0; i < adapter->num_rx_queues; i++) { - sprintf(p, "rx_queue_%u_packets", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_queue_%u_bytes", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_queue_%u_drops", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_queue_%u_csum_err", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_queue_%u_alloc_failed", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "rx_queue_%u_packets", i); + ethtool_gsprintf(&p, "rx_queue_%u_bytes", i); + ethtool_gsprintf(&p, "rx_queue_%u_drops", i); + ethtool_gsprintf(&p, "rx_queue_%u_csum_err", i); + ethtool_gsprintf(&p, "rx_queue_%u_alloc_failed", i); } /* BUG_ON(p - data != IGB_STATS_LEN * ETH_GSTRING_LEN); */ break; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index a280aa34ca1d..439765d72ac1 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -1368,45 +1368,33 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev, static void ixgbe_get_strings(struct net_device *netdev, u32 stringset, u8 *data) { - char *p = (char *)data; unsigned int i; + u8 *p = data; switch (stringset) { case ETH_SS_TEST: - for (i = 0; i < IXGBE_TEST_LEN; i++) { - memcpy(data, ixgbe_gstrings_test[i], ETH_GSTRING_LEN); - data += ETH_GSTRING_LEN; - } + for (i = 0; i < IXGBE_TEST_LEN; i++) + ethtool_gsprintf(&p, ixgbe_gstrings_test[i]); break; case ETH_SS_STATS: - for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) { - memcpy(p, ixgbe_gstrings_stats[i].stat_string, - ETH_GSTRING_LEN); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) + ethtool_gsprintf(&p, + ixgbe_gstrings_stats[i].stat_string); for (i = 0; i < netdev->num_tx_queues; i++) { - sprintf(p, "tx_queue_%u_packets", i); - p += ETH_GSTRING_LEN; - sprintf(p, "tx_queue_%u_bytes", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "tx_queue_%u_packets", i); + ethtool_gsprintf(&p, "tx_queue_%u_bytes", i); } for (i = 0; i < IXGBE_NUM_RX_QUEUES; i++) { - sprintf(p, "rx_queue_%u_packets", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_queue_%u_bytes", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "rx_queue_%u_packets", i); + ethtool_gsprintf(&p, "rx_queue_%u_bytes", i); } for (i = 0; i < IXGBE_MAX_PACKET_BUFFERS; i++) { - sprintf(p, "tx_pb_%u_pxon", i); - p += ETH_GSTRING_LEN; - sprintf(p, "tx_pb_%u_pxoff", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "tx_pb_%u_pxon", i); + ethtool_gsprintf(&p, "tx_pb_%u_pxoff", i); } for (i = 0; i < IXGBE_MAX_PACKET_BUFFERS; i++) { - sprintf(p, "rx_pb_%u_pxon", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_pb_%u_pxoff", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "rx_pb_%u_pxon", i); + ethtool_gsprintf(&p, "rx_pb_%u_pxoff", i); } /* BUG_ON(p - data != IXGBE_STATS_LEN * ETH_GSTRING_LEN); */ break; From patchwork Thu Mar 11 01:35:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450918 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=oCWmMkJs; dkim-atps=neutral Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws2z5hy2z9sWf for ; Thu, 11 Mar 2021 12:35:39 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 971E64300E; Thu, 11 Mar 2021 01:35:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DP9-XgVN_Lf9; Thu, 11 Mar 2021 01:35:36 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id 9475343008; Thu, 11 Mar 2021 01:35:36 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 68BC41BF38B for ; Thu, 11 Mar 2021 01:35:35 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 5754F60649 for ; Thu, 11 Mar 2021 01:35:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp3.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0bDsvy5gxIQv for ; Thu, 11 Mar 2021 01:35:34 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by smtp3.osuosl.org (Postfix) with ESMTPS id 87151600C7 for ; Thu, 11 Mar 2021 01:35:34 +0000 (UTC) Received: by mail-pl1-x62e.google.com with SMTP id j6so9419526plx.6 for ; Wed, 10 Mar 2021 17:35:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=m0otFb6AnbGVYV3zd44lNY0Yw52LsGJQVA35MU39ENQ=; b=oCWmMkJsohBdbkUZC13x+MCZXzTqrLkYxBmmsvDUDSDQGyKbx7wOL1HDxjO7bV1oRc 1W2ex2sKISR0ZH0wMLEQyMa7pUMIPBrHdjbcCfHXDhjyBr7yM3DbISSdwEhNgBGLxyPt oespJ0WVHUM1jrCIVlOhdwPSTzfFy1Q6hiwLLC7yie0fq/XbwVTxhygY0/+PHcZtCf1u Aw+ZhoUuwjZ2dZw+cVPRJrmmoFTc9HFTvZOpNfzKiblXKiG2/jUHHJWQdaP7VQFBY9yX FmQcCT3yof+Zf8PI7KdJhPXZjWgSW8qvFQ8moNm24SrqwWAuyWGGyukvsfUBnJituFG5 woUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=m0otFb6AnbGVYV3zd44lNY0Yw52LsGJQVA35MU39ENQ=; b=svdGFXXlVFYziXCy8mtTA6HMBB5fs3gKXhHOALCx5Wwe0av0M2ruG8wWyht09oSXeY m6ax3Mcnf1++oxEmjE84GRbvh9wH4qD8YkDOZjrtfsJmoGWY0S+ig2Bl8fE7L+96/hwL VZWnIPOBpVImocw5OZxh20qtyc85ZSMD5N7wN3Oz3tq18RzilmQv+MSkvkGLXjPaFF5l DNFkEBpGp4BovH48a9XNcE5lskVak9BC7N5DTDVAqChZdpO3uH5jcOoJypwIyypO6TQK CAmfAlb4gY6I8SyNs5x8xDeb+tH0OmjK63Vh3Jj6Hn5VIEk8/4c+F3VpZqZy+Dn3PFgG kxfg== X-Gm-Message-State: AOAM533n5gbZL9NAcDQ1gxClGohMrdvkxh+etQRMVaxH0fihZmPQ7HwG Wn3hSOI83N3Uleut3K/tYQ0= X-Google-Smtp-Source: ABdhPJwpZiATauy1Mu+EyfJ1ZAR7zYSpBFBLue2naiFUkl0t0kpxN3GpttbJXJpe6ntHh01Wnvp5dA== X-Received: by 2002:a17:90a:17c3:: with SMTP id q61mr6183465pja.58.1615426533904; Wed, 10 Mar 2021 17:35:33 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id z22sm651021pfa.41.2021.03.10.17.35.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:35:33 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:35:32 -0800 Message-ID: <161542653266.13546.11914667071718045956.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 03/10] nfp: Replace nfp_pr_et with ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck The nfp_pr_et function is nearly identical to ethtool_gsprintf except for the fact that it passes the pointer by value and as a return whereas ethtool_gsprintf passes it as a pointer. Since they are so close just update nfp to make use of ethtool_gsprintf Signed-off-by: Alexander Duyck Reviewed-by: Simon Horman --- drivers/net/ethernet/netronome/nfp/abm/main.c | 4 + .../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 79 +++++++++----------- drivers/net/ethernet/netronome/nfp/nfp_port.h | 2 - 3 files changed, 36 insertions(+), 49 deletions(-) diff --git a/drivers/net/ethernet/netronome/nfp/abm/main.c b/drivers/net/ethernet/netronome/nfp/abm/main.c index bdbf0726145e..3e8a9a7d7327 100644 --- a/drivers/net/ethernet/netronome/nfp/abm/main.c +++ b/drivers/net/ethernet/netronome/nfp/abm/main.c @@ -419,8 +419,8 @@ nfp_abm_port_get_stats_strings(struct nfp_app *app, struct nfp_port *port, return data; alink = repr->app_priv; for (i = 0; i < alink->vnic->dp.num_r_vecs; i++) { - data = nfp_pr_et(data, "q%u_no_wait", i); - data = nfp_pr_et(data, "q%u_delayed", i); + ethtool_gsprintf(&data, "q%u_no_wait", i); + ethtool_gsprintf(&data, "q%u_delayed", i); } return data; } diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c index 9c9ae33d84ce..33097c411d7d 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c @@ -429,17 +429,6 @@ static int nfp_net_set_ringparam(struct net_device *netdev, return nfp_net_set_ring_size(nn, rxd_cnt, txd_cnt); } -__printf(2, 3) u8 *nfp_pr_et(u8 *data, const char *fmt, ...) -{ - va_list args; - - va_start(args, fmt); - vsnprintf(data, ETH_GSTRING_LEN, fmt, args); - va_end(args); - - return data + ETH_GSTRING_LEN; -} - static unsigned int nfp_vnic_get_sw_stats_count(struct net_device *netdev) { struct nfp_net *nn = netdev_priv(netdev); @@ -454,29 +443,29 @@ static u8 *nfp_vnic_get_sw_stats_strings(struct net_device *netdev, u8 *data) int i; for (i = 0; i < nn->max_r_vecs; i++) { - data = nfp_pr_et(data, "rvec_%u_rx_pkts", i); - data = nfp_pr_et(data, "rvec_%u_tx_pkts", i); - data = nfp_pr_et(data, "rvec_%u_tx_busy", i); + ethtool_gsprintf(&data, "rvec_%u_rx_pkts", i); + ethtool_gsprintf(&data, "rvec_%u_tx_pkts", i); + ethtool_gsprintf(&data, "rvec_%u_tx_busy", i); } - data = nfp_pr_et(data, "hw_rx_csum_ok"); - data = nfp_pr_et(data, "hw_rx_csum_inner_ok"); - data = nfp_pr_et(data, "hw_rx_csum_complete"); - data = nfp_pr_et(data, "hw_rx_csum_err"); - data = nfp_pr_et(data, "rx_replace_buf_alloc_fail"); - data = nfp_pr_et(data, "rx_tls_decrypted_packets"); - data = nfp_pr_et(data, "hw_tx_csum"); - data = nfp_pr_et(data, "hw_tx_inner_csum"); - data = nfp_pr_et(data, "tx_gather"); - data = nfp_pr_et(data, "tx_lso"); - data = nfp_pr_et(data, "tx_tls_encrypted_packets"); - data = nfp_pr_et(data, "tx_tls_ooo"); - data = nfp_pr_et(data, "tx_tls_drop_no_sync_data"); - - data = nfp_pr_et(data, "hw_tls_no_space"); - data = nfp_pr_et(data, "rx_tls_resync_req_ok"); - data = nfp_pr_et(data, "rx_tls_resync_req_ign"); - data = nfp_pr_et(data, "rx_tls_resync_sent"); + ethtool_gsprintf(&data, "hw_rx_csum_ok"); + ethtool_gsprintf(&data, "hw_rx_csum_inner_ok"); + ethtool_gsprintf(&data, "hw_rx_csum_complete"); + ethtool_gsprintf(&data, "hw_rx_csum_err"); + ethtool_gsprintf(&data, "rx_replace_buf_alloc_fail"); + ethtool_gsprintf(&data, "rx_tls_decrypted_packets"); + ethtool_gsprintf(&data, "hw_tx_csum"); + ethtool_gsprintf(&data, "hw_tx_inner_csum"); + ethtool_gsprintf(&data, "tx_gather"); + ethtool_gsprintf(&data, "tx_lso"); + ethtool_gsprintf(&data, "tx_tls_encrypted_packets"); + ethtool_gsprintf(&data, "tx_tls_ooo"); + ethtool_gsprintf(&data, "tx_tls_drop_no_sync_data"); + + ethtool_gsprintf(&data, "hw_tls_no_space"); + ethtool_gsprintf(&data, "rx_tls_resync_req_ok"); + ethtool_gsprintf(&data, "rx_tls_resync_req_ign"); + ethtool_gsprintf(&data, "rx_tls_resync_sent"); return data; } @@ -550,19 +539,19 @@ nfp_vnic_get_hw_stats_strings(u8 *data, unsigned int num_vecs, bool repr) swap_off = repr * NN_ET_SWITCH_STATS_LEN; for (i = 0; i < NN_ET_SWITCH_STATS_LEN; i++) - data = nfp_pr_et(data, nfp_net_et_stats[i + swap_off].name); + ethtool_gsprintf(&data, nfp_net_et_stats[i + swap_off].name); for (i = NN_ET_SWITCH_STATS_LEN; i < NN_ET_SWITCH_STATS_LEN * 2; i++) - data = nfp_pr_et(data, nfp_net_et_stats[i - swap_off].name); + ethtool_gsprintf(&data, nfp_net_et_stats[i - swap_off].name); for (i = NN_ET_SWITCH_STATS_LEN * 2; i < NN_ET_GLOBAL_STATS_LEN; i++) - data = nfp_pr_et(data, nfp_net_et_stats[i].name); + ethtool_gsprintf(&data, nfp_net_et_stats[i].name); for (i = 0; i < num_vecs; i++) { - data = nfp_pr_et(data, "rxq_%u_pkts", i); - data = nfp_pr_et(data, "rxq_%u_bytes", i); - data = nfp_pr_et(data, "txq_%u_pkts", i); - data = nfp_pr_et(data, "txq_%u_bytes", i); + ethtool_gsprintf(&data, "rxq_%u_pkts", i); + ethtool_gsprintf(&data, "rxq_%u_bytes", i); + ethtool_gsprintf(&data, "txq_%u_pkts", i); + ethtool_gsprintf(&data, "txq_%u_bytes", i); } return data; @@ -610,15 +599,15 @@ static u8 *nfp_vnic_get_tlv_stats_strings(struct nfp_net *nn, u8 *data) memcpy(data, nfp_tlv_stat_names[id], ETH_GSTRING_LEN); data += ETH_GSTRING_LEN; } else { - data = nfp_pr_et(data, "dev_unknown_stat%u", id); + ethtool_gsprintf(&data, "dev_unknown_stat%u", id); } } for (i = 0; i < nn->max_r_vecs; i++) { - data = nfp_pr_et(data, "rxq_%u_pkts", i); - data = nfp_pr_et(data, "rxq_%u_bytes", i); - data = nfp_pr_et(data, "txq_%u_pkts", i); - data = nfp_pr_et(data, "txq_%u_bytes", i); + ethtool_gsprintf(&data, "rxq_%u_pkts", i); + ethtool_gsprintf(&data, "rxq_%u_bytes", i); + ethtool_gsprintf(&data, "txq_%u_pkts", i); + ethtool_gsprintf(&data, "txq_%u_bytes", i); } return data; @@ -666,7 +655,7 @@ static u8 *nfp_mac_get_stats_strings(struct net_device *netdev, u8 *data) return data; for (i = 0; i < ARRAY_SIZE(nfp_mac_et_stats); i++) - data = nfp_pr_et(data, "mac.%s", nfp_mac_et_stats[i].name); + ethtool_gsprintf(&data, "mac.%s", nfp_mac_et_stats[i].name); return data; } diff --git a/drivers/net/ethernet/netronome/nfp/nfp_port.h b/drivers/net/ethernet/netronome/nfp/nfp_port.h index d7fd203bb180..ae4da189d955 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_port.h +++ b/drivers/net/ethernet/netronome/nfp/nfp_port.h @@ -92,8 +92,6 @@ struct nfp_port { extern const struct ethtool_ops nfp_port_ethtool_ops; -__printf(2, 3) u8 *nfp_pr_et(u8 *data, const char *fmt, ...); - int nfp_port_setup_tc(struct net_device *netdev, enum tc_setup_type type, void *type_data); From patchwork Thu Mar 11 01:35:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450919 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.138; helo=smtp1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Fg205LMf; dkim-atps=neutral Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws373jbgz9sVw for ; Thu, 11 Mar 2021 12:35:47 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id C4FD882F20; Thu, 11 Mar 2021 01:35:44 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id F7bqgAuheuZu; Thu, 11 Mar 2021 01:35:43 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp1.osuosl.org (Postfix) with ESMTP id 56F558308B; Thu, 11 Mar 2021 01:35:43 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 5FFC01BF38B for ; Thu, 11 Mar 2021 01:35:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 5B3AC454B4 for ; Thu, 11 Mar 2021 01:35:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp4.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SUaGFFWdqkjV for ; Thu, 11 Mar 2021 01:35:41 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by smtp4.osuosl.org (Postfix) with ESMTPS id E679442D9F for ; Thu, 11 Mar 2021 01:35:40 +0000 (UTC) Received: by mail-pg1-x52c.google.com with SMTP id n9so11658670pgi.7 for ; Wed, 10 Mar 2021 17:35:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=rA4T5qcIqS2gI5AvnHhMW6L1JSpG84sD27zQhKbg484=; b=Fg205LMfNoZLQN20U3NMOpXyrIVye5TkIHHIK/Mfaq/kF6JbfMrGBFgtPXVxXIKlW0 5/lH/EHJdOiZc0bCIzfl0sxm6cSKfk7OtPHauJ5jLQGvSNIT9vAHTzCiyRIjYkc3CUPW 27GwErg5eModRMrRXsweETQrxwZK9n3RgN1kwlVPfH6Rq7VEslahuYz/jI94OFBpijHs oBXrfiL58vq4nrHt5QPAvPAp5Io0+qLgI3nKrdXgVEFdRFWY3+c0+JE9mnL+/P6Zi9K4 dOPG8kMcPlvVGFTS3cnFh7mOYmsZT0MrvTGBWoo2Tp4xmjzMgq60jvQlnz4k41MsXjSE twqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=rA4T5qcIqS2gI5AvnHhMW6L1JSpG84sD27zQhKbg484=; b=PAf5RDo8jR6LF9jhZQn3bGqwnH6kdey/R6tmg+iuU3Zy1CbWqf2hhNsvoAE6H1Qoq5 xYgvRXYjob3r68M6uNyqWa8DduMJGYK0d5QuQUJHuUQHnavoAeAipAqmgpOavr8S3dJl EFdYogIeCtV8lWGZ+hToJMe7mjTSarluVDjoyJVae9y9BAIHdsdmx+8M5LyhYZMzYtHI erX1SDV9qMHezJ84ep7Nu0iiuiAP4RSU7f03qVdtgpE5ahxY3zJNwFS6iA/rLsYUZoUW OaM1Rff/rQMLr/VQ3frhVqJkcUxIaT273jbyiZNpciP/HFvtMQoLvmO7dWcT3NeLNgMZ inkQ== X-Gm-Message-State: AOAM532K2FWBIBREh8lOMTvgt/pwY99ayk3hATsz687WxaJ0sClXIBv/ 1wV2szl4OOMVv2JxLWoE1fM= X-Google-Smtp-Source: ABdhPJwaiinn7wPj/6Hfy1Dp7q3Rwl6N8IgsVMF56rVEhPUIKKQAApuJJxiATExLLJgBpUvINgAPPw== X-Received: by 2002:a62:5b43:0:b029:1ef:21ad:846 with SMTP id p64-20020a625b430000b02901ef21ad0846mr5473363pfb.51.1615426540283; Wed, 10 Mar 2021 17:35:40 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id c16sm632775pfc.112.2021.03.10.17.35.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:35:39 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:35:39 -0800 Message-ID: <161542653900.13546.2854682520330690964.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 04/10] hisilicon: Update drivers to use ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck Update the hisilicon drivers to make use of ethtool_gsprintf. The general idea is to reduce code size and overhead by replacing the repeated pattern of string printf statements and ETH_STRING_LEN counter increments. Signed-off-by: Alexander Duyck --- drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c | 7 - drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c | 37 +++----- drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c | 89 ++++++------------ .../net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c | 6 - drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 97 +++++++------------- 5 files changed, 82 insertions(+), 154 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c index 7fb7a419607d..c43acb73f1e3 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c @@ -693,11 +693,8 @@ static void hns_gmac_get_strings(u32 stringset, u8 *data) if (stringset != ETH_SS_STATS) return; - for (i = 0; i < ARRAY_SIZE(g_gmac_stats_string); i++) { - snprintf(buff, ETH_GSTRING_LEN, "%s", - g_gmac_stats_string[i].desc); - buff = buff + ETH_GSTRING_LEN; - } + for (i = 0; i < ARRAY_SIZE(g_gmac_stats_string); i++) + ethtool_gsprintf(&buff, g_gmac_stats_string[i].desc); } static int hns_gmac_get_sset_count(int stringset) diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c index d0f8b1fff333..35a149e31a43 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c @@ -465,30 +465,19 @@ void hns_ppe_get_strings(struct hns_ppe_cb *ppe_cb, int stringset, u8 *data) char *buff = (char *)data; int index = ppe_cb->index; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_rx_sw_pkt", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_rx_pkt_ok", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_rx_drop_pkt_no_bd", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_rx_alloc_buf_fail", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_rx_alloc_buf_wait", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_rx_pkt_drop_no_buf", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_rx_pkt_err_fifo_full", index); - buff = buff + ETH_GSTRING_LEN; - - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_tx_bd", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_tx_pkt", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_tx_pkt_ok", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_tx_pkt_err_fifo_empty", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "ppe%d_tx_pkt_err_csum_fail", index); + ethtool_gsprintf(&buff, "ppe%d_rx_sw_pkt", index); + ethtool_gsprintf(&buff, "ppe%d_rx_pkt_ok", index); + ethtool_gsprintf(&buff, "ppe%d_rx_drop_pkt_no_bd", index); + ethtool_gsprintf(&buff, "ppe%d_rx_alloc_buf_fail", index); + ethtool_gsprintf(&buff, "ppe%d_rx_alloc_buf_wait", index); + ethtool_gsprintf(&buff, "ppe%d_rx_pkt_drop_no_buf", index); + ethtool_gsprintf(&buff, "ppe%d_rx_pkt_err_fifo_full", index); + + ethtool_gsprintf(&buff, "ppe%d_tx_bd", index); + ethtool_gsprintf(&buff, "ppe%d_tx_pkt", index); + ethtool_gsprintf(&buff, "ppe%d_tx_pkt_ok", index); + ethtool_gsprintf(&buff, "ppe%d_tx_pkt_err_fifo_empty", index); + ethtool_gsprintf(&buff, "ppe%d_tx_pkt_err_csum_fail", index); } void hns_ppe_get_stats(struct hns_ppe_cb *ppe_cb, u64 *data) diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c index b6c8910cf7ba..a7232b906be4 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c @@ -934,64 +934,37 @@ void hns_rcb_get_strings(int stringset, u8 *data, int index) if (stringset != ETH_SS_STATS) return; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_rcb_pkt_num", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_ppe_tx_pkt_num", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_ppe_drop_pkt_num", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_fbd_num", index); - buff = buff + ETH_GSTRING_LEN; - - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_pkt_num", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_bytes", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_err_cnt", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_io_err", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_sw_err", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_seg_pkt", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_restart_queue", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_ring%d_tx_busy", index); - buff = buff + ETH_GSTRING_LEN; - - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_rcb_pkt_num", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_ppe_pkt_num", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_ppe_drop_pkt_num", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_fbd_num", index); - buff = buff + ETH_GSTRING_LEN; - - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_pkt_num", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_bytes", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_err_cnt", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_io_err", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_sw_err", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_seg_pkt", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_reuse_pg", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_len_err", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_non_vld_desc_err", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_bd_num_err", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_l2_err", index); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_ring%d_l3l4csum_err", index); + ethtool_gsprintf(&buff, "tx_ring%d_rcb_pkt_num", index); + ethtool_gsprintf(&buff, "tx_ring%d_ppe_tx_pkt_num", index); + ethtool_gsprintf(&buff, "tx_ring%d_ppe_drop_pkt_num", index); + ethtool_gsprintf(&buff, "tx_ring%d_fbd_num", index); + + ethtool_gsprintf(&buff, "tx_ring%d_pkt_num", index); + ethtool_gsprintf(&buff, "tx_ring%d_bytes", index); + ethtool_gsprintf(&buff, "tx_ring%d_err_cnt", index); + ethtool_gsprintf(&buff, "tx_ring%d_io_err", index); + ethtool_gsprintf(&buff, "tx_ring%d_sw_err", index); + ethtool_gsprintf(&buff, "tx_ring%d_seg_pkt", index); + ethtool_gsprintf(&buff, "tx_ring%d_restart_queue", index); + ethtool_gsprintf(&buff, "tx_ring%d_tx_busy", index); + + ethtool_gsprintf(&buff, "rx_ring%d_rcb_pkt_num", index); + ethtool_gsprintf(&buff, "rx_ring%d_ppe_pkt_num", index); + ethtool_gsprintf(&buff, "rx_ring%d_ppe_drop_pkt_num", index); + ethtool_gsprintf(&buff, "rx_ring%d_fbd_num", index); + + ethtool_gsprintf(&buff, "rx_ring%d_pkt_num", index); + ethtool_gsprintf(&buff, "rx_ring%d_bytes", index); + ethtool_gsprintf(&buff, "rx_ring%d_err_cnt", index); + ethtool_gsprintf(&buff, "rx_ring%d_io_err", index); + ethtool_gsprintf(&buff, "rx_ring%d_sw_err", index); + ethtool_gsprintf(&buff, "rx_ring%d_seg_pkt", index); + ethtool_gsprintf(&buff, "rx_ring%d_reuse_pg", index); + ethtool_gsprintf(&buff, "rx_ring%d_len_err", index); + ethtool_gsprintf(&buff, "rx_ring%d_non_vld_desc_err", index); + ethtool_gsprintf(&buff, "rx_ring%d_bd_num_err", index); + ethtool_gsprintf(&buff, "rx_ring%d_l2_err", index); + ethtool_gsprintf(&buff, "rx_ring%d_l3l4csum_err", index); } void hns_rcb_get_common_regs(struct rcb_common_cb *rcb_com, void *data) diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c index 7e3609ce112a..c2d475fd4963 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c @@ -764,10 +764,8 @@ static void hns_xgmac_get_strings(u32 stringset, u8 *data) if (stringset != ETH_SS_STATS) return; - for (i = 0; i < ARRAY_SIZE(g_xgmac_stats_string); i++) { - snprintf(buff, ETH_GSTRING_LEN, g_xgmac_stats_string[i].desc); - buff = buff + ETH_GSTRING_LEN; - } + for (i = 0; i < ARRAY_SIZE(g_xgmac_stats_string); i++) + ethtool_gsprintf(&buff, g_xgmac_stats_string[i].desc); } /** diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c index a6e3f07caf99..e9a5264306e7 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c @@ -903,72 +903,43 @@ static void hns_get_strings(struct net_device *netdev, u32 stringset, u8 *data) } if (stringset == ETH_SS_TEST) { - if (priv->ae_handle->phy_if != PHY_INTERFACE_MODE_XGMII) { - memcpy(buff, hns_nic_test_strs[MAC_INTERNALLOOP_MAC], - ETH_GSTRING_LEN); - buff += ETH_GSTRING_LEN; - } - memcpy(buff, hns_nic_test_strs[MAC_INTERNALLOOP_SERDES], - ETH_GSTRING_LEN); - buff += ETH_GSTRING_LEN; + if (priv->ae_handle->phy_if != PHY_INTERFACE_MODE_XGMII) + ethtool_gsprintf(&buff, + hns_nic_test_strs[MAC_INTERNALLOOP_MAC]); + ethtool_gsprintf(&buff, + hns_nic_test_strs[MAC_INTERNALLOOP_SERDES]); if ((netdev->phydev) && (!netdev->phydev->is_c45)) - memcpy(buff, hns_nic_test_strs[MAC_INTERNALLOOP_PHY], - ETH_GSTRING_LEN); + ethtool_gsprintf(&buff, + hns_nic_test_strs[MAC_INTERNALLOOP_PHY]); } else { - snprintf(buff, ETH_GSTRING_LEN, "rx_packets"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_packets"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_bytes"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_bytes"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_dropped"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_dropped"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "multicast"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "collisions"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_over_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_crc_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_frame_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_fifo_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_missed_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_aborted_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_carrier_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_fifo_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_heartbeat_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_length_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_window_errors"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "rx_compressed"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "tx_compressed"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "netdev_rx_dropped"); - buff = buff + ETH_GSTRING_LEN; - snprintf(buff, ETH_GSTRING_LEN, "netdev_tx_dropped"); - buff = buff + ETH_GSTRING_LEN; - - snprintf(buff, ETH_GSTRING_LEN, "netdev_tx_timeout"); - buff = buff + ETH_GSTRING_LEN; + ethtool_gsprintf(&buff, "rx_packets"); + ethtool_gsprintf(&buff, "tx_packets"); + ethtool_gsprintf(&buff, "rx_bytes"); + ethtool_gsprintf(&buff, "tx_bytes"); + ethtool_gsprintf(&buff, "rx_errors"); + ethtool_gsprintf(&buff, "tx_errors"); + ethtool_gsprintf(&buff, "rx_dropped"); + ethtool_gsprintf(&buff, "tx_dropped"); + ethtool_gsprintf(&buff, "multicast"); + ethtool_gsprintf(&buff, "collisions"); + ethtool_gsprintf(&buff, "rx_over_errors"); + ethtool_gsprintf(&buff, "rx_crc_errors"); + ethtool_gsprintf(&buff, "rx_frame_errors"); + ethtool_gsprintf(&buff, "rx_fifo_errors"); + ethtool_gsprintf(&buff, "rx_missed_errors"); + ethtool_gsprintf(&buff, "tx_aborted_errors"); + ethtool_gsprintf(&buff, "tx_carrier_errors"); + ethtool_gsprintf(&buff, "tx_fifo_errors"); + ethtool_gsprintf(&buff, "tx_heartbeat_errors"); + ethtool_gsprintf(&buff, "rx_length_errors"); + ethtool_gsprintf(&buff, "tx_window_errors"); + ethtool_gsprintf(&buff, "rx_compressed"); + ethtool_gsprintf(&buff, "tx_compressed"); + ethtool_gsprintf(&buff, "netdev_rx_dropped"); + ethtool_gsprintf(&buff, "netdev_tx_dropped"); + + ethtool_gsprintf(&buff, "netdev_tx_timeout"); h->dev->ops->get_strings(h, stringset, (u8 *)buff); } From patchwork Thu Mar 11 01:35:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450920 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.133; helo=smtp2.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=ToOsEVKU; dkim-atps=neutral Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws3C6k7Qz9sVw for ; Thu, 11 Mar 2021 12:35:51 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 34D3442FFC; Thu, 11 Mar 2021 01:35:50 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CTQpYs69ALX1; Thu, 11 Mar 2021 01:35:49 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id 5B9C442FFF; Thu, 11 Mar 2021 01:35:49 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 7CAE11BF38B for ; Thu, 11 Mar 2021 01:35:48 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 75E6082E44 for ; Thu, 11 Mar 2021 01:35:48 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp1.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3mERWkK_TVOP for ; Thu, 11 Mar 2021 01:35:47 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by smtp1.osuosl.org (Postfix) with ESMTPS id 6472F831F1 for ; Thu, 11 Mar 2021 01:35:47 +0000 (UTC) Received: by mail-pl1-x62c.google.com with SMTP id d23so6211163plq.2 for ; Wed, 10 Mar 2021 17:35:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=mXovWmaN3OxpZPX5auZkxx4/rCgtSqTeDRTaO9fib40=; b=ToOsEVKUaEJN7rGfFWFJCslgbWhCmFi9RGkpAlGO+tSSM5B/GXFf76/ZnyQ4/RhAgc VtEHpSYBHokqiRmCDJp6imbfYGTtbyB1p1TXnLgmrxkCy70wwXuTCtYtJ+ySed2nudZy JeeLI15RTK+xiTDjcBVXHzvSO9DiaIRaAg8R6n0OIAuJ3b/zdT8jRCoR+JVkt81ANp98 5Ra032Ybrx+aPFJlnDXpeYyNuVS+HXWqo/5HcQGOeEZsqSM527Avh1X0hNam+vjI346K y5Rwhj4pH9IAuY8LeKfWWUNghYp1jhhboqNFgTGM7/RBZamEHsMrCHQZvonyBdVgQbh6 AHrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=mXovWmaN3OxpZPX5auZkxx4/rCgtSqTeDRTaO9fib40=; b=razR8UH0HlaDE5UaRLfMS/5Bu6mUoXbqZOUHIWyTEmSlj0t4ByC5GSvwMSl6tAtpTJ rPuds/WDD7iR5bfWZ2w09oWpSAxv8qXO6v8xN5PLGSZ9t9UFMv+zNhA5oyfFtnkCt+u2 P8F1nebE2kgO+n1nF5QO3vNoQapTKuTVWCoFzH6R4JYJ1FN30/1EE8ZHd2/8Vk2jjbr6 tyw7M4d4qdS4GLmubEhHm4mOPtqE6pCU6v+llNJjci0GDLbcUdwLfqrYiDqtI57B0wc/ 6PMzT0DhDtUw73S0eHd1GAjlRDfPbFn0pTONI+hkJ+/n+b/FxgyEsw0/v3RDbMLaxOXj lwZQ== X-Gm-Message-State: AOAM532LEaRKhGV6APTrBlguzf0TJT7qToRoFlbFEFwSzZZIJzPy2DVO a9tAJCBIU+lzqz/5Ex47EMFOo9J1ZozUps8T X-Google-Smtp-Source: ABdhPJw3VkZ7T0dpW+GqubGyANkwxTUpfkfw2teOdE71KvR/qSufUQ5TTETgX+4yaNtpnGf+xdV0aw== X-Received: by 2002:a17:902:b711:b029:e3:71f1:e08e with SMTP id d17-20020a170902b711b02900e371f1e08emr5887183pls.18.1615426546679; Wed, 10 Mar 2021 17:35:46 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id y22sm652996pfn.32.2021.03.10.17.35.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:35:46 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:35:45 -0800 Message-ID: <161542654541.13546.817443057977441498.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 05/10] ena: Update driver to use ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck Replace instances of snprintf or memcpy with a pointer update with ethtool_gsprintf. Signed-off-by: Alexander Duyck Acked-by: Arthur Kiyanovski --- drivers/net/ethernet/amazon/ena/ena_ethtool.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c index d6cc7aa612b7..42f6bad7ca26 100644 --- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c +++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c @@ -251,10 +251,10 @@ static void ena_queue_strings(struct ena_adapter *adapter, u8 **data) for (j = 0; j < ENA_STATS_ARRAY_TX; j++) { ena_stats = &ena_stats_tx_strings[j]; - snprintf(*data, ETH_GSTRING_LEN, - "queue_%u_%s_%s", i, - is_xdp ? "xdp_tx" : "tx", ena_stats->name); - (*data) += ETH_GSTRING_LEN; + ethtool_gsprintf(data, + "queue_%u_%s_%s", i, + is_xdp ? "xdp_tx" : "tx", + ena_stats->name); } if (!is_xdp) { @@ -264,9 +264,9 @@ static void ena_queue_strings(struct ena_adapter *adapter, u8 **data) for (j = 0; j < ENA_STATS_ARRAY_RX; j++) { ena_stats = &ena_stats_rx_strings[j]; - snprintf(*data, ETH_GSTRING_LEN, - "queue_%u_rx_%s", i, ena_stats->name); - (*data) += ETH_GSTRING_LEN; + ethtool_gsprintf(data, + "queue_%u_rx_%s", i, + ena_stats->name); } } } @@ -280,9 +280,8 @@ static void ena_com_dev_strings(u8 **data) for (i = 0; i < ENA_STATS_ARRAY_ENA_COM; i++) { ena_stats = &ena_stats_ena_com_strings[i]; - snprintf(*data, ETH_GSTRING_LEN, - "ena_admin_q_%s", ena_stats->name); - (*data) += ETH_GSTRING_LEN; + ethtool_gsprintf(data, + "ena_admin_q_%s", ena_stats->name); } } @@ -295,15 +294,13 @@ static void ena_get_strings(struct ena_adapter *adapter, for (i = 0; i < ENA_STATS_ARRAY_GLOBAL; i++) { ena_stats = &ena_stats_global_strings[i]; - memcpy(data, ena_stats->name, ETH_GSTRING_LEN); - data += ETH_GSTRING_LEN; + ethtool_gsprintf(&data, ena_stats->name); } if (eni_stats_needed) { for (i = 0; i < ENA_STATS_ARRAY_ENI(adapter); i++) { ena_stats = &ena_stats_eni_strings[i]; - memcpy(data, ena_stats->name, ETH_GSTRING_LEN); - data += ETH_GSTRING_LEN; + ethtool_gsprintf(&data, ena_stats->name); } } From patchwork Thu Mar 11 01:35:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450921 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.137; helo=smtp4.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=u8cC+tH2; dkim-atps=neutral Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws3M34h9z9sVw for ; Thu, 11 Mar 2021 12:35:59 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 7EF504834C; Thu, 11 Mar 2021 01:35:57 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cNsaf2WoNXZM; Thu, 11 Mar 2021 01:35:56 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 06C9C4C419; Thu, 11 Mar 2021 01:35:56 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 74F2A1BF38B for ; Thu, 11 Mar 2021 01:35:54 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 62CAF4651F for ; Thu, 11 Mar 2021 01:35:54 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2CBwfiucL515 for ; Thu, 11 Mar 2021 01:35:53 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by smtp4.osuosl.org (Postfix) with ESMTPS id 9821D454B4 for ; Thu, 11 Mar 2021 01:35:53 +0000 (UTC) Received: by mail-pj1-x102b.google.com with SMTP id a22-20020a17090aa516b02900c1215e9b33so8251993pjq.5 for ; Wed, 10 Mar 2021 17:35:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=gjUKyxfRSZ9KQb0GApNYBSrbkiY1WDSvI3WYH/8KsxA=; b=u8cC+tH2OdI23NPwMUfM9q8AtQwkzyfBrjw/U5ZR+DyCtlCTM8RGpEXrj+Tzc9Gl/H BajYX7k/hg8P2P3gOfnqmw4FJ9iGMbOU3TlUGJS4dcmSPmXuISyq4ncwTjW66hHvzXmn BNqwWzVOmoBsTzgyxCaKANwAO/dgLFb9Jy2UxwhYMptaG/7KyuIr3NLWSCNauVmVr7+N PjNcgbdX/qrEsl3L7f271EL9/W/EEq4GrcFikvkfDe4kBzhxwLF0lqQS4ptMQhTh/ovG xFkXZOobFv4iES5CEhwc2u7Uv+c5cRyi6BU40BkC1T4HUOy5E3zfOvKEKwxo8cp30LYC ktXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=gjUKyxfRSZ9KQb0GApNYBSrbkiY1WDSvI3WYH/8KsxA=; b=XtRq6qsS/Kq/5okGmUXHN+NixC5e0XOVkGE4BhWPm94pa1UJu58ycY36kAIfE98idW 5UWXG/MLQCMOLjfSJPUcz/RoW6ZwuKnFJvWoyqCqYKf4651JiKCqjzs7D0H2IM0PJN2H Hua2spB+FKN0C9QzhVxK4pBIBzNBtup2L95JyPTm/GFa1fPCbjROveDDH1X9U2+58Sjd 6MIQ+xpsEg9fPTEMOpq6Jj4edYSelrml82tru+IOxGCRJZH15JyYJGICxdnpbAXb/UJZ FdPZBMZZqwRaqKVaG4cCJ7BqvtsSgVFyJkjd+1/Js0xcmMvCP7m6Gcq4Y5QLxFEZzWN/ aohA== X-Gm-Message-State: AOAM5332xqU19L3jJo1ArGjTA8Ar3jVw9eiDOR3fDwmhREhE/5TaQP20 +ncGKIKrF9t4wxKp5eaOU2k= X-Google-Smtp-Source: ABdhPJzsaBtuYws+WbFc5ViRYd7HYPi/Jf+g7NHj24gJJRj+48fgZ6uhjjM1HaD18w9JcyXgU+j2wA== X-Received: by 2002:a17:902:8306:b029:e6:125c:1a3a with SMTP id bd6-20020a1709028306b02900e6125c1a3amr5836539plb.65.1615426553036; Wed, 10 Mar 2021 17:35:53 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id u17sm602970pgl.80.2021.03.10.17.35.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:35:52 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:35:51 -0800 Message-ID: <161542655182.13546.1667822428160833259.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 06/10] netvsc: Update driver to use ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck Replace instances of sprintf or memcpy with a pointer update with ethtool_gsprintf. Signed-off-by: Alexander Duyck --- drivers/net/hyperv/netvsc_drv.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 15f262b70489..4e8446a81c0b 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -1612,34 +1612,23 @@ static void netvsc_get_strings(struct net_device *dev, u32 stringset, u8 *data) switch (stringset) { case ETH_SS_STATS: - for (i = 0; i < ARRAY_SIZE(netvsc_stats); i++) { - memcpy(p, netvsc_stats[i].name, ETH_GSTRING_LEN); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < ARRAY_SIZE(netvsc_stats); i++) + ethtool_gsprintf(&p, netvsc_stats[i].name); - for (i = 0; i < ARRAY_SIZE(vf_stats); i++) { - memcpy(p, vf_stats[i].name, ETH_GSTRING_LEN); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < ARRAY_SIZE(vf_stats); i++) + ethtool_gsprintf(&p, vf_stats[i].name); for (i = 0; i < nvdev->num_chn; i++) { - sprintf(p, "tx_queue_%u_packets", i); - p += ETH_GSTRING_LEN; - sprintf(p, "tx_queue_%u_bytes", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_queue_%u_packets", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_queue_%u_bytes", i); - p += ETH_GSTRING_LEN; - sprintf(p, "rx_queue_%u_xdp_drop", i); - p += ETH_GSTRING_LEN; + ethtool_gsprintf(&p, "tx_queue_%u_packets", i); + ethtool_gsprintf(&p, "tx_queue_%u_bytes", i); + ethtool_gsprintf(&p, "rx_queue_%u_packets", i); + ethtool_gsprintf(&p, "rx_queue_%u_bytes", i); + ethtool_gsprintf(&p, "rx_queue_%u_xdp_drop", i); } for_each_present_cpu(cpu) { - for (i = 0; i < ARRAY_SIZE(pcpu_stats); i++) { - sprintf(p, pcpu_stats[i].name, cpu); - p += ETH_GSTRING_LEN; - } + for (i = 0; i < ARRAY_SIZE(pcpu_stats); i++) + ethtool_gsprintf(&p, pcpu_stats[i].name, cpu); } break; From patchwork Thu Mar 11 01:35:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450922 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.137; helo=smtp4.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=MOSbPSAb; dkim-atps=neutral Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws3S4GzJz9sVw for ; Thu, 11 Mar 2021 12:36:04 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 19D7E4695D; Thu, 11 Mar 2021 01:36:03 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id izmfwRBEl3SZ; Thu, 11 Mar 2021 01:36:02 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id EE3E947141; Thu, 11 Mar 2021 01:36:01 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id C84D71BF38B for ; Thu, 11 Mar 2021 01:36:00 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id B7A4582E44 for ; Thu, 11 Mar 2021 01:36:00 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp1.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jrg6K6ILX9kN for ; Thu, 11 Mar 2021 01:36:00 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by smtp1.osuosl.org (Postfix) with ESMTPS id 27A6482C7C for ; Thu, 11 Mar 2021 01:36:00 +0000 (UTC) Received: by mail-pl1-x62d.google.com with SMTP id c16so9443245ply.0 for ; Wed, 10 Mar 2021 17:36:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=4BA8bY8lW0soxmFw6y9gJo0Qf+WroUwWFLtWhIeGuxE=; b=MOSbPSAbIJuFkuaS1h71CmOP0ISteAYhnQnsaQkZfapXlF28sNdzh8dCHP5cVjPjOh fxTgbxJPxxVD5x1kKH6plMYROOtYap5wJJ0yS00glsFE0GHVQqtPzUTQHJ9Qk/3ZUwfE 4+p8QI92ZsoCZeAQ4Ss5b47AsQyB//GE28tlxHC5y9FMnJsJ3XhIHffcL4lcPsbZ8Awd G5sbzCq51Xl9PfaBher+6avERsfjz/bUWji9kR6BR5czbbNcdNayn3UJS+D01onsVzCh h15reSH9ffYYgwMcf9DzDWuEbFza/N7pbMyxDgXr+MvVk8Ok35Th99Sz9Z9k1DRNOreQ OwhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=4BA8bY8lW0soxmFw6y9gJo0Qf+WroUwWFLtWhIeGuxE=; b=ZAX0kShHZeGps5nWS96tvX1AAJ5DNul+EMfW/Hu3IG/MAINNZ98CwoWZtq/Hf4sY3N L88/XTQOUF3cIz2heb2U9ueY8KUWmcP5CKmJQh1/qUbMdg2at5nryPXtX87LyP0JTXtj q4vXG5R2sOHiRn4PwBlDclc+eFv5BwA0SPstGU6aZqDlS12hmg9LUuEkUOsfx7+TubEX 0dh5Xkl0zR3e8rEjxQOC5bQqnQzeIAi12sio9zkkoaineENKJI7+WIM7W4wTBg/67Hd0 eqSJvTixjfLRMwdhkdmjwoKIS3fPjcwbHM6ccrhD2CFDUhsZZy5KoMYP7iMa5IekYL1L gfgg== X-Gm-Message-State: AOAM533Ozog9HNl4S8UZNnvGPfWShzN6WV5BdSDbNyCgk8VHwifB18yK aj4FDmQAH/FQETFGKy2LRho= X-Google-Smtp-Source: ABdhPJwVn+fQZjyQ6TNPpCSKHLaMl+AtJxMEPvkjzY7hpr/MdI/TF0icwGCsDHoKHp3EHsdp0UMQ/w== X-Received: by 2002:a17:90a:9f8c:: with SMTP id o12mr2870941pjp.215.1615426559468; Wed, 10 Mar 2021 17:35:59 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id mz11sm548496pjb.6.2021.03.10.17.35.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:35:59 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:35:58 -0800 Message-ID: <161542655816.13546.114000517042800369.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 07/10] virtio_net: Update driver to use ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck Update the code to replace instances of snprintf and a pointer update with just calling ethtool_gsprintf. Also replace the char pointer with a u8 pointer to avoid having to recast the pointer type. Signed-off-by: Alexander Duyck --- drivers/net/virtio_net.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 82e520d2cb12..f1a05b43dde7 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -2104,25 +2104,21 @@ static int virtnet_set_channels(struct net_device *dev, static void virtnet_get_strings(struct net_device *dev, u32 stringset, u8 *data) { struct virtnet_info *vi = netdev_priv(dev); - char *p = (char *)data; unsigned int i, j; + u8 *p = data; switch (stringset) { case ETH_SS_STATS: for (i = 0; i < vi->curr_queue_pairs; i++) { - for (j = 0; j < VIRTNET_RQ_STATS_LEN; j++) { - snprintf(p, ETH_GSTRING_LEN, "rx_queue_%u_%s", - i, virtnet_rq_stats_desc[j].desc); - p += ETH_GSTRING_LEN; - } + for (j = 0; j < VIRTNET_RQ_STATS_LEN; j++) + ethtool_gsprintf(&p, "rx_queue_%u_%s", i, + virtnet_rq_stats_desc[j].desc); } for (i = 0; i < vi->curr_queue_pairs; i++) { - for (j = 0; j < VIRTNET_SQ_STATS_LEN; j++) { - snprintf(p, ETH_GSTRING_LEN, "tx_queue_%u_%s", - i, virtnet_sq_stats_desc[j].desc); - p += ETH_GSTRING_LEN; - } + for (j = 0; j < VIRTNET_SQ_STATS_LEN; j++) + ethtool_gsprintf(&p, "tx_queue_%u_%s", i, + virtnet_sq_stats_desc[j].desc); } break; } From patchwork Thu Mar 11 01:36:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450923 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=MTxHgVBJ; dkim-atps=neutral Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws3b45xqz9sVw for ; Thu, 11 Mar 2021 12:36:11 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id B0C91600C7; Thu, 11 Mar 2021 01:36:09 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bqaNoPSkSEVO; Thu, 11 Mar 2021 01:36:08 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id B20A060649; Thu, 11 Mar 2021 01:36:08 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 0FF831BF38B for ; Thu, 11 Mar 2021 01:36:07 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 0C3ED400C3 for ; Thu, 11 Mar 2021 01:36:07 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r-qKFKnI-5W8 for ; Thu, 11 Mar 2021 01:36:06 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) by smtp2.osuosl.org (Postfix) with ESMTPS id 6284942FFC for ; Thu, 11 Mar 2021 01:36:06 +0000 (UTC) Received: by mail-pg1-x52a.google.com with SMTP id x29so12616182pgk.6 for ; Wed, 10 Mar 2021 17:36:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=d4YFnDPS6NroPhjQrx8F6bp+0knVok/iG5b32FqCjOM=; b=MTxHgVBJzfOyF26VNWYwKA/avXyYB1azHbsAxKVZMIv7rGzYeunTQRuMuXTs22eo2i WhvDrROk7eaJlUsXbayHX3kThv35uRa5NqnjqtOhAdOItJ1ohISNt2jvUuz0ei6QfoUw rrdCktU72iXJ2y8D7lP+EJMuXBi8MR/DekxFrn+rwFroluvho13P82/JEi6LtnnedHT8 q5r/yU576arRtcwjccVnb3GS9wdst2pb2R3JZza7f1BR4LwxIcytid/dLAMz5exuo9p9 /kk5/rRLqSzNETQDOEBr+3kphEnd+sBdPQK9TYOz1oJ9tWx+HqFj/j+Kgd+WNQCYCvYs xffw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=d4YFnDPS6NroPhjQrx8F6bp+0knVok/iG5b32FqCjOM=; b=hAJmYy9xEqIMp7pCnMs+2dQ/44E4d7J+wfxLjcDdjUy1DEmfdzTWUL/Vye7UqZ7g1u Mamd3dZKfzVahJFdPIQgtZkjvLu/JDCrSLW3cR5oj+8Dw0xQstqjY4qpiNEGHZBwbdW2 xmqz53uyljtJo6NUxn4pIjoTkLciyoMALE6EEyK+YazXpyxsKlpRwqPMJ3JOHOKYuziS dKwLazpf0Z7xjqW0ty0NpvKLS8tQHmeYQw3JYTG6No7scJgGxSrOQj0GqGMjbMbJ/jGM nv4dCd1rP5NtZPtyaHsrYI+6fLj/+uwyZQLORDwxYWy8NyK3Zc/a2VrNPsciaf3/YTzq qH+A== X-Gm-Message-State: AOAM531i3hLrLrUbAMKiIuWCe5B7jqVWOIk4JGLlf6QcCB7az4PFphNe IsN54I7OxfjhUekjO3nX6Ic= X-Google-Smtp-Source: ABdhPJzINJzrtYbdjGhlQeGB2A3yvooP0Bn8O3A2gT2en5QOTXW3gMoax9U5xrcQ1AHnKm7ofi7g8w== X-Received: by 2002:a63:c65:: with SMTP id 37mr5273967pgm.186.1615426565817; Wed, 10 Mar 2021 17:36:05 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id b14sm646417pfi.74.2021.03.10.17.36.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:36:05 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:36:04 -0800 Message-ID: <161542656461.13546.474867975442613938.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 08/10] vmxnet3: Update driver to use ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck So this patch actually does 3 things. First it removes a stray white space at the start of the variable declaration in vmxnet3_get_strings. Second it flips the logic for the string test so that we exit immediately if we are not looking for the stats strings. Doing this we can avoid unnecessary indentation and line wrapping. Then finally it updates the code to use ethtool_gsprintf rather than a memcpy and pointer increment to write the ethtool strings. Signed-off-by: Alexander Duyck --- drivers/net/vmxnet3/vmxnet3_ethtool.c | 53 ++++++++++++--------------------- 1 file changed, 19 insertions(+), 34 deletions(-) diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c index 7ec8652f2c26..4ec674380a91 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c @@ -218,43 +218,28 @@ vmxnet3_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo) static void vmxnet3_get_strings(struct net_device *netdev, u32 stringset, u8 *buf) { - struct vmxnet3_adapter *adapter = netdev_priv(netdev); - if (stringset == ETH_SS_STATS) { - int i, j; - for (j = 0; j < adapter->num_tx_queues; j++) { - for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_dev_stats); i++) { - memcpy(buf, vmxnet3_tq_dev_stats[i].desc, - ETH_GSTRING_LEN); - buf += ETH_GSTRING_LEN; - } - for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_driver_stats); - i++) { - memcpy(buf, vmxnet3_tq_driver_stats[i].desc, - ETH_GSTRING_LEN); - buf += ETH_GSTRING_LEN; - } - } + struct vmxnet3_adapter *adapter = netdev_priv(netdev); + int i, j; - for (j = 0; j < adapter->num_rx_queues; j++) { - for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_dev_stats); i++) { - memcpy(buf, vmxnet3_rq_dev_stats[i].desc, - ETH_GSTRING_LEN); - buf += ETH_GSTRING_LEN; - } - for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_driver_stats); - i++) { - memcpy(buf, vmxnet3_rq_driver_stats[i].desc, - ETH_GSTRING_LEN); - buf += ETH_GSTRING_LEN; - } - } + if (stringset != ETH_SS_STATS) + return; - for (i = 0; i < ARRAY_SIZE(vmxnet3_global_stats); i++) { - memcpy(buf, vmxnet3_global_stats[i].desc, - ETH_GSTRING_LEN); - buf += ETH_GSTRING_LEN; - } + for (j = 0; j < adapter->num_tx_queues; j++) { + for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_dev_stats); i++) + ethtool_gsprintf(&buf, vmxnet3_tq_dev_stats[i].desc); + for (i = 0; i < ARRAY_SIZE(vmxnet3_tq_driver_stats); i++) + ethtool_gsprintf(&buf, vmxnet3_tq_driver_stats[i].desc); + } + + for (j = 0; j < adapter->num_rx_queues; j++) { + for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_dev_stats); i++) + ethtool_gsprintf(&buf, vmxnet3_rq_dev_stats[i].desc); + for (i = 0; i < ARRAY_SIZE(vmxnet3_rq_driver_stats); i++) + ethtool_gsprintf(&buf, vmxnet3_rq_driver_stats[i].desc); } + + for (i = 0; i < ARRAY_SIZE(vmxnet3_global_stats); i++) + ethtool_gsprintf(&buf, vmxnet3_global_stats[i].desc); } netdev_features_t vmxnet3_fix_features(struct net_device *netdev, From patchwork Thu Mar 11 01:36:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450924 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=scU65pB6; dkim-atps=neutral Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws3j6gJVz9sVw for ; Thu, 11 Mar 2021 12:36:17 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 75E3460664; Thu, 11 Mar 2021 01:36:16 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Vo0LLp0ea-uv; Thu, 11 Mar 2021 01:36:15 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id 3E87160666; Thu, 11 Mar 2021 01:36:15 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id C03EF1BF38B for ; Thu, 11 Mar 2021 01:36:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id BC1BE6067C for ; Thu, 11 Mar 2021 01:36:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EPtejX-EI3Xp for ; Thu, 11 Mar 2021 01:36:12 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by smtp3.osuosl.org (Postfix) with ESMTPS id C172960666 for ; Thu, 11 Mar 2021 01:36:12 +0000 (UTC) Received: by mail-pj1-x102b.google.com with SMTP id ha17so1885611pjb.2 for ; Wed, 10 Mar 2021 17:36:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=DJltLUYcs98/kijveBfZyUaWDIHwVhRt97pqpufw9i0=; b=scU65pB6xFpMzm1+8nIhbovGBVQq1DtmdBjSrEWTrUXE9VHbZuS3Lp1yFfeNpGFfxd Cg192aYX3oZnj0Vjf/xDZXhzxbnPGFY6nzOYMcZgXEafssYgqgiQTUElhKKRk1RSIt3w j6uwqDsJhAIHRrxiUgh8lfrcN5TpkjTx9T0VqizaOYxrtVhx/IlOCru4UmCjbY5kWqbK hsxwpPM5A2aN1K8dtdZ340qIcfmC9lMWZZV5vG9vB1Aap5phcHGC0vAoAxGZNO4njQf+ pgr1Yh/62kmsT8+WMW12lAtChaLX09Czqn5I8v7f7yqp65WdgUmwpIhEmMacY/3e2efZ DjdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=DJltLUYcs98/kijveBfZyUaWDIHwVhRt97pqpufw9i0=; b=J5NYOWuXMCr7ibHGT+HFECxSbLQADXjN8diYKxFkdDTsLaX43V6kFK3Ma/TmpF5Lk+ YY+jZ8Zl8rwAgbahLNJOq9C18SEwNjqiuX9cpBCq1yGAXa407xqb59+ODoimb0Q3QEC/ guXfyJJYATGNc0AcUF192REJxfAbLmDtV3nxu1BzuS6q6q6ep/Vi9nzvpaTUGr/47CB1 rgCuVG1a7GZtYWv5ECyONPHMUwSv7I6CDXVMxEISNUTnWIPL+TwRcrngukKqt6vjWCtf ZBR3nAH6mQ5EUs5eWq6NCZx4H8p7E3qIexRMTaMJjdFyBH9yTGKtL+8YL69KD0XyJVsu yW+Q== X-Gm-Message-State: AOAM531QBeeKUeba5eIeY3g0XqLMHqYAhkzZRW9O1im+BSY9BC+5GfOb So7+35Iru/kzAR0Lt+SGWHA= X-Google-Smtp-Source: ABdhPJzYqOo5VXwSONbDqpY26hTZ33JQIrILn89H5MFVviNNdeqdtDsgwtLdyDkytIH8dBO1ybn1gQ== X-Received: by 2002:a17:90a:5302:: with SMTP id x2mr6557715pjh.232.1615426572198; Wed, 10 Mar 2021 17:36:12 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id e1sm518190pjm.12.2021.03.10.17.36.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:36:11 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:36:10 -0800 Message-ID: <161542657091.13546.17503493571307422104.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 09/10] bna: Update driver to use ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck Update the bnad_get_strings to make use of ethtool_gsprintf and avoid unnecessary line wrapping. To do this we invert the logic for the string set test and instead exit immediately if we are not working with the stats strings. In addition the function is broken up into subfunctions for each area so that we can simply call ethtool_gsprintf once for each string in a given subsection. Signed-off-by: Alexander Duyck --- drivers/net/ethernet/brocade/bna/bnad_ethtool.c | 266 +++++++++-------------- 1 file changed, 105 insertions(+), 161 deletions(-) diff --git a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c index 588c4804d10a..9d72f896880d 100644 --- a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c +++ b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c @@ -524,6 +524,68 @@ bnad_set_pauseparam(struct net_device *netdev, return 0; } +static void bnad_get_txf_strings(u8 **string, int f_num) +{ + ethtool_gsprintf(string, "txf%d_ucast_octets", f_num); + ethtool_gsprintf(string, "txf%d_ucast", f_num); + ethtool_gsprintf(string, "txf%d_ucast_vlan", f_num); + ethtool_gsprintf(string, "txf%d_mcast_octets", f_num); + ethtool_gsprintf(string, "txf%d_mcast", f_num); + ethtool_gsprintf(string, "txf%d_mcast_vlan", f_num); + ethtool_gsprintf(string, "txf%d_bcast_octets", f_num); + ethtool_gsprintf(string, "txf%d_bcast", f_num); + ethtool_gsprintf(string, "txf%d_bcast_vlan", f_num); + ethtool_gsprintf(string, "txf%d_errors", f_num); + ethtool_gsprintf(string, "txf%d_filter_vlan", f_num); + ethtool_gsprintf(string, "txf%d_filter_mac_sa", f_num); +} + +static void bnad_get_rxf_strings(u8 **string, int f_num) +{ + ethtool_gsprintf(string, "rxf%d_ucast_octets", f_num); + ethtool_gsprintf(string, "rxf%d_ucast", f_num); + ethtool_gsprintf(string, "rxf%d_ucast_vlan", f_num); + ethtool_gsprintf(string, "rxf%d_mcast_octets", f_num); + ethtool_gsprintf(string, "rxf%d_mcast", f_num); + ethtool_gsprintf(string, "rxf%d_mcast_vlan", f_num); + ethtool_gsprintf(string, "rxf%d_bcast_octets", f_num); + ethtool_gsprintf(string, "rxf%d_bcast", f_num); + ethtool_gsprintf(string, "rxf%d_bcast_vlan", f_num); + ethtool_gsprintf(string, "rxf%d_frame_drops", f_num); +} + +static void bnad_get_cq_strings(u8 **string, int q_num) +{ + ethtool_gsprintf(string, "cq%d_producer_index", q_num); + ethtool_gsprintf(string, "cq%d_consumer_index", q_num); + ethtool_gsprintf(string, "cq%d_hw_producer_index", q_num); + ethtool_gsprintf(string, "cq%d_intr", q_num); + ethtool_gsprintf(string, "cq%d_poll", q_num); + ethtool_gsprintf(string, "cq%d_schedule", q_num); + ethtool_gsprintf(string, "cq%d_keep_poll", q_num); + ethtool_gsprintf(string, "cq%d_complete", q_num); +} + +static void bnad_get_rxq_strings(u8 **string, int q_num) +{ + ethtool_gsprintf(string, "rxq%d_packets", q_num); + ethtool_gsprintf(string, "rxq%d_bytes", q_num); + ethtool_gsprintf(string, "rxq%d_packets_with_error", q_num); + ethtool_gsprintf(string, "rxq%d_allocbuf_failed", q_num); + ethtool_gsprintf(string, "rxq%d_mapbuf_failed", q_num); + ethtool_gsprintf(string, "rxq%d_producer_index", q_num); + ethtool_gsprintf(string, "rxq%d_consumer_index", q_num); +} + +static void bnad_get_txq_strings(u8 **string, int q_num) +{ + ethtool_gsprintf(string, "txq%d_packets", q_num); + ethtool_gsprintf(string, "txq%d_bytes", q_num); + ethtool_gsprintf(string, "txq%d_producer_index", q_num); + ethtool_gsprintf(string, "txq%d_consumer_index", q_num); + ethtool_gsprintf(string, "txq%d_hw_consumer_index", q_num); +} + static void bnad_get_strings(struct net_device *netdev, u32 stringset, u8 *string) { @@ -531,175 +593,57 @@ bnad_get_strings(struct net_device *netdev, u32 stringset, u8 *string) int i, j, q_num; u32 bmap; + if (stringset != ETH_SS_STATS) + return; + mutex_lock(&bnad->conf_mutex); - switch (stringset) { - case ETH_SS_STATS: - for (i = 0; i < BNAD_ETHTOOL_STATS_NUM; i++) { - BUG_ON(!(strlen(bnad_net_stats_strings[i]) < - ETH_GSTRING_LEN)); - strncpy(string, bnad_net_stats_strings[i], - ETH_GSTRING_LEN); - string += ETH_GSTRING_LEN; - } - bmap = bna_tx_rid_mask(&bnad->bna); - for (i = 0; bmap; i++) { - if (bmap & 1) { - sprintf(string, "txf%d_ucast_octets", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_ucast", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_ucast_vlan", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_mcast_octets", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_mcast", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_mcast_vlan", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_bcast_octets", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_bcast", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_bcast_vlan", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_errors", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_filter_vlan", i); - string += ETH_GSTRING_LEN; - sprintf(string, "txf%d_filter_mac_sa", i); - string += ETH_GSTRING_LEN; - } - bmap >>= 1; - } + for (i = 0; i < BNAD_ETHTOOL_STATS_NUM; i++) { + BUG_ON(!(strlen(bnad_net_stats_strings[i]) < ETH_GSTRING_LEN)); + ethtool_gsprintf(&string, bnad_net_stats_strings[i]); + } - bmap = bna_rx_rid_mask(&bnad->bna); - for (i = 0; bmap; i++) { - if (bmap & 1) { - sprintf(string, "rxf%d_ucast_octets", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_ucast", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_ucast_vlan", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_mcast_octets", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_mcast", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_mcast_vlan", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_bcast_octets", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_bcast", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_bcast_vlan", i); - string += ETH_GSTRING_LEN; - sprintf(string, "rxf%d_frame_drops", i); - string += ETH_GSTRING_LEN; - } - bmap >>= 1; - } + bmap = bna_tx_rid_mask(&bnad->bna); + for (i = 0; bmap; i++) { + if (bmap & 1) + bnad_get_txf_strings(&string, i); + bmap >>= 1; + } - q_num = 0; - for (i = 0; i < bnad->num_rx; i++) { - if (!bnad->rx_info[i].rx) - continue; - for (j = 0; j < bnad->num_rxp_per_rx; j++) { - sprintf(string, "cq%d_producer_index", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "cq%d_consumer_index", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "cq%d_hw_producer_index", - q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "cq%d_intr", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "cq%d_poll", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "cq%d_schedule", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "cq%d_keep_poll", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "cq%d_complete", q_num); - string += ETH_GSTRING_LEN; - q_num++; - } - } + bmap = bna_rx_rid_mask(&bnad->bna); + for (i = 0; bmap; i++, bmap >>= 1) { + if (bmap & 1) + bnad_get_rxf_strings(&string, i); + bmap >>= 1; + } - q_num = 0; - for (i = 0; i < bnad->num_rx; i++) { - if (!bnad->rx_info[i].rx) - continue; - for (j = 0; j < bnad->num_rxp_per_rx; j++) { - sprintf(string, "rxq%d_packets", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_bytes", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_packets_with_error", - q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_allocbuf_failed", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_mapbuf_failed", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_producer_index", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_consumer_index", q_num); - string += ETH_GSTRING_LEN; - q_num++; - if (bnad->rx_info[i].rx_ctrl[j].ccb && - bnad->rx_info[i].rx_ctrl[j].ccb-> - rcb[1] && - bnad->rx_info[i].rx_ctrl[j].ccb-> - rcb[1]->rxq) { - sprintf(string, "rxq%d_packets", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_bytes", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, - "rxq%d_packets_with_error", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_allocbuf_failed", - q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_mapbuf_failed", - q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_producer_index", - q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "rxq%d_consumer_index", - q_num); - string += ETH_GSTRING_LEN; - q_num++; - } - } - } + q_num = 0; + for (i = 0; i < bnad->num_rx; i++) { + if (!bnad->rx_info[i].rx) + continue; + for (j = 0; j < bnad->num_rxp_per_rx; j++) + bnad_get_cq_strings(&string, q_num++); + } - q_num = 0; - for (i = 0; i < bnad->num_tx; i++) { - if (!bnad->tx_info[i].tx) - continue; - for (j = 0; j < bnad->num_txq_per_tx; j++) { - sprintf(string, "txq%d_packets", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "txq%d_bytes", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "txq%d_producer_index", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "txq%d_consumer_index", q_num); - string += ETH_GSTRING_LEN; - sprintf(string, "txq%d_hw_consumer_index", - q_num); - string += ETH_GSTRING_LEN; - q_num++; - } + q_num = 0; + for (i = 0; i < bnad->num_rx; i++) { + if (!bnad->rx_info[i].rx) + continue; + for (j = 0; j < bnad->num_rxp_per_rx; j++) { + bnad_get_rxq_strings(&string, q_num++); + if (bnad->rx_info[i].rx_ctrl[j].ccb && + bnad->rx_info[i].rx_ctrl[j].ccb->rcb[1] && + bnad->rx_info[i].rx_ctrl[j].ccb->rcb[1]->rxq) + bnad_get_rxq_strings(&string, q_num++); } + } - break; - - default: - break; + q_num = 0; + for (i = 0; i < bnad->num_tx; i++) { + if (!bnad->tx_info[i].tx) + continue; + for (j = 0; j < bnad->num_txq_per_tx; j++) + bnad_get_txq_strings(&string, q_num++); } mutex_unlock(&bnad->conf_mutex); From patchwork Thu Mar 11 01:36:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander H Duyck X-Patchwork-Id: 1450925 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.137; helo=smtp4.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=i4G35mw/; dkim-atps=neutral Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Dws3s56c9z9sVw for ; Thu, 11 Mar 2021 12:36:25 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 2C0164695D; Thu, 11 Mar 2021 01:36:24 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NEoUhQdVWH4C; Thu, 11 Mar 2021 01:36:22 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 36A6245D94; Thu, 11 Mar 2021 01:36:22 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 06DAB1BF38B for ; Thu, 11 Mar 2021 01:36:20 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id E96C860671 for ; Thu, 11 Mar 2021 01:36:19 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp3.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4uto9-Y_P8wW for ; Thu, 11 Mar 2021 01:36:19 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pf1-x435.google.com (mail-pf1-x435.google.com [IPv6:2607:f8b0:4864:20::435]) by smtp3.osuosl.org (Postfix) with ESMTPS id 3508B60649 for ; Thu, 11 Mar 2021 01:36:19 +0000 (UTC) Received: by mail-pf1-x435.google.com with SMTP id t29so13291544pfg.11 for ; Wed, 10 Mar 2021 17:36:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=zwmi3JuPnTfduGik1QpBW0Dj/Zas5L1dP4lxc4Bo/Vs=; b=i4G35mw/8BI/K7IRD8mxtGPoZ3WhZrM1+xPmXQbsjDp38uqH0L+G8bAycOsStHzfZM z8PoUY9ighgV7plV1V1XegX1IzaWG+rXAuUKPqGk1Sb1upJX1R3LU7N0I6/TdfnPq5JT oYq2vGqUPNuyhh6KTTw9eneYlDBLaO1/ALpoVGcapnsSHspcYpuKVAoMRCw+DOdnwA55 5d4OnRuOdbDAT67Cm5OdVLCg+89Hlqwjf6aPNobPBuJFcqgm8ED3aGeeZQZHouR2Hfcr NgXSJ5PpgOFyxiObAjxgNSSBRFoH1JElrl8zh5YXxR18eBdDBEIvQ7LERtg0U8soKrvt dBRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=zwmi3JuPnTfduGik1QpBW0Dj/Zas5L1dP4lxc4Bo/Vs=; b=PIUUTZqiOkIP0gSbGVLMVPrl7hc1vo+FyIZM4MT+CLrH/dJYDbo7tB6JV4bcOEPjW3 PJEtzWxR373XizxX0RJGCMFaADtp4u/41/Y2OMBWd771T5320VWijNRFbykJZGIWNdkb Ew4OPxPtuMk35GgN0cUUGhwW2fXgCwPH8yUAZ7WLX0dsvARbYwGZ8yx0gkv+JI+T8MKF S7NDPGmszAXN/zIOvRwt9oAN/ZTi7uE6+N4RxYoRcM4rTSJYmWs3pmSq3eV+dSvABeeU H2BzNn/nqza0CQh/kSDvtNjMC7kApeVSHhYEYv5lH3pXl97gqc2rbgnk3DNVEyCC2Ont J7+g== X-Gm-Message-State: AOAM531toogOGjL7H+vtGrljsf3pE1faB1c/muIHT4NTjYfLvb4JasT+ Ovp86gwg13wX+fALv0cQ2wQ= X-Google-Smtp-Source: ABdhPJzK4EkTkJtt9aP4Ni5V8SaqhKldWhBhRqKKxLz96ZlccdDyVk5oHYBCdFpvS0za6aU4PbCdTA== X-Received: by 2002:a62:e805:0:b029:1f8:16ba:4518 with SMTP id c5-20020a62e8050000b02901f816ba4518mr5290933pfi.37.1615426578576; Wed, 10 Mar 2021 17:36:18 -0800 (PST) Received: from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0]) by smtp.gmail.com with ESMTPSA id gg22sm532748pjb.20.2021.03.10.17.36.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 17:36:18 -0800 (PST) From: Alexander Duyck To: kuba@kernel.org Date: Wed, 10 Mar 2021 17:36:17 -0800 Message-ID: <161542657729.13546.14928347259921159903.stgit@localhost.localdomain> In-Reply-To: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> References: <161542634192.13546.4185974647834631704.stgit@localhost.localdomain> User-Agent: StGit/0.23 MIME-Version: 1.0 Subject: [Intel-wired-lan] [RFC PATCH 10/10] ionic: Update driver to use ethtool_gsprintf X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: doshir@vmware.com, mst@redhat.com, oss-drivers@netronome.com, jasowang@redhat.com, alexanderduyck@fb.com, akiyano@amazon.com, wei.liu@kernel.org, sthemmin@microsoft.com, pv-drivers@vmware.com, intel-wired-lan@lists.osuosl.org, yisen.zhuang@huawei.com, gtzalik@amazon.com, simon.horman@netronome.com, haiyangz@microsoft.com, drivers@pensando.io, salil.mehta@huawei.com, GR-Linux-NIC-Dev@marvell.com, rmody@marvell.com, netdev@vger.kernel.org, netanel@amazon.com, saeedb@amazon.com, snelson@pensando.io, skalluru@marvell.com Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Alexander Duyck Update the ionic driver to make use of ethtool_gsprintf. In addition add separate functions for Tx/Rx stats strings in order to reduce the total amount of indenting needed in the driver code. Signed-off-by: Alexander Duyck Acked-by: Shannon Nelson --- drivers/net/ethernet/pensando/ionic/ionic_stats.c | 145 +++++++++------------ 1 file changed, 60 insertions(+), 85 deletions(-) diff --git a/drivers/net/ethernet/pensando/ionic/ionic_stats.c b/drivers/net/ethernet/pensando/ionic/ionic_stats.c index 6ae75b771a15..1dac960386df 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_stats.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_stats.c @@ -246,98 +246,73 @@ static u64 ionic_sw_stats_get_count(struct ionic_lif *lif) return total; } +static void ionic_sw_stats_get_tx_strings(struct ionic_lif *lif, u8 **buf, + int q_num) +{ + int i; + + for (i = 0; i < IONIC_NUM_TX_STATS; i++) + ethtool_gsprintf(buf, "tx_%d_%s", q_num, + ionic_tx_stats_desc[i].name); + + if (!test_bit(IONIC_LIF_F_UP, lif->state) || + !test_bit(IONIC_LIF_F_SW_DEBUG_STATS, lif->state)) + return; + + for (i = 0; i < IONIC_NUM_TX_Q_STATS; i++) + ethtool_gsprintf(buf, "txq_%d_%s", q_num, + ionic_txq_stats_desc[i].name); + for (i = 0; i < IONIC_NUM_DBG_CQ_STATS; i++) + ethtool_gsprintf(buf, "txq_%d_cq_%s", q_num, + ionic_dbg_cq_stats_desc[i].name); + for (i = 0; i < IONIC_NUM_DBG_INTR_STATS; i++) + ethtool_gsprintf(buf, "txq_%d_intr_%s", q_num, + ionic_dbg_intr_stats_desc[i].name); + for (i = 0; i < IONIC_MAX_NUM_SG_CNTR; i++) + ethtool_gsprintf(buf, "txq_%d_sg_cntr_%d", q_num, i); +} + +static void ionic_sw_stats_get_rx_strings(struct ionic_lif *lif, u8 **buf, + int q_num) +{ + int i; + + for (i = 0; i < IONIC_NUM_RX_STATS; i++) + ethtool_gsprintf(buf, "rx_%d_%s", q_num, + ionic_rx_stats_desc[i].name); + + if (!test_bit(IONIC_LIF_F_UP, lif->state) || + !test_bit(IONIC_LIF_F_SW_DEBUG_STATS, lif->state)) + return; + + for (i = 0; i < IONIC_NUM_DBG_CQ_STATS; i++) + ethtool_gsprintf(buf, "rxq_%d_cq_%s", q_num, + ionic_dbg_cq_stats_desc[i].name); + for (i = 0; i < IONIC_NUM_DBG_INTR_STATS; i++) + ethtool_gsprintf(buf, "rxq_%d_intr_%s", q_num, + ionic_dbg_intr_stats_desc[i].name); + for (i = 0; i < IONIC_NUM_DBG_NAPI_STATS; i++) + ethtool_gsprintf(buf, "rxq_%d_napi_%s", q_num, + ionic_dbg_napi_stats_desc[i].name); + for (i = 0; i < IONIC_MAX_NUM_NAPI_CNTR; i++) + ethtool_gsprintf(buf, "rxq_%d_napi_work_done_%d", q_num, i); +} + static void ionic_sw_stats_get_strings(struct ionic_lif *lif, u8 **buf) { int i, q_num; - for (i = 0; i < IONIC_NUM_LIF_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, ionic_lif_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } + for (i = 0; i < IONIC_NUM_LIF_STATS; i++) + ethtool_gsprintf(buf, ionic_lif_stats_desc[i].name); - for (i = 0; i < IONIC_NUM_PORT_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - ionic_port_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } + for (i = 0; i < IONIC_NUM_PORT_STATS; i++) + ethtool_gsprintf(buf, ionic_port_stats_desc[i].name); - for (q_num = 0; q_num < MAX_Q(lif); q_num++) { - for (i = 0; i < IONIC_NUM_TX_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, "tx_%d_%s", - q_num, ionic_tx_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } + for (q_num = 0; q_num < MAX_Q(lif); q_num++) + ionic_sw_stats_get_tx_strings(lif, buf, q_num); - if (test_bit(IONIC_LIF_F_UP, lif->state) && - test_bit(IONIC_LIF_F_SW_DEBUG_STATS, lif->state)) { - for (i = 0; i < IONIC_NUM_TX_Q_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "txq_%d_%s", - q_num, - ionic_txq_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } - for (i = 0; i < IONIC_NUM_DBG_CQ_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "txq_%d_cq_%s", - q_num, - ionic_dbg_cq_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } - for (i = 0; i < IONIC_NUM_DBG_INTR_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "txq_%d_intr_%s", - q_num, - ionic_dbg_intr_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } - for (i = 0; i < IONIC_MAX_NUM_SG_CNTR; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "txq_%d_sg_cntr_%d", - q_num, i); - *buf += ETH_GSTRING_LEN; - } - } - } - for (q_num = 0; q_num < MAX_Q(lif); q_num++) { - for (i = 0; i < IONIC_NUM_RX_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "rx_%d_%s", - q_num, ionic_rx_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } - - if (test_bit(IONIC_LIF_F_UP, lif->state) && - test_bit(IONIC_LIF_F_SW_DEBUG_STATS, lif->state)) { - for (i = 0; i < IONIC_NUM_DBG_CQ_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "rxq_%d_cq_%s", - q_num, - ionic_dbg_cq_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } - for (i = 0; i < IONIC_NUM_DBG_INTR_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "rxq_%d_intr_%s", - q_num, - ionic_dbg_intr_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } - for (i = 0; i < IONIC_NUM_DBG_NAPI_STATS; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "rxq_%d_napi_%s", - q_num, - ionic_dbg_napi_stats_desc[i].name); - *buf += ETH_GSTRING_LEN; - } - for (i = 0; i < IONIC_MAX_NUM_NAPI_CNTR; i++) { - snprintf(*buf, ETH_GSTRING_LEN, - "rxq_%d_napi_work_done_%d", - q_num, i); - *buf += ETH_GSTRING_LEN; - } - } - } + for (q_num = 0; q_num < MAX_Q(lif); q_num++) + ionic_sw_stats_get_rx_strings(lif, buf, q_num); } static void ionic_sw_stats_get_values(struct ionic_lif *lif, u64 **buf)