From patchwork Mon Sep 21 01:08:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1368009 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=fZaAJCI8; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BvmYc4sy4z9sSt for ; Mon, 21 Sep 2020 11:09:24 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726416AbgIUBJW (ORCPT ); Sun, 20 Sep 2020 21:09:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59156 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726126AbgIUBJU (ORCPT ); Sun, 20 Sep 2020 21:09:20 -0400 Received: from mail-pj1-x1044.google.com (mail-pj1-x1044.google.com [IPv6:2607:f8b0:4864:20::1044]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99986C061755 for ; Sun, 20 Sep 2020 18:09:20 -0700 (PDT) Received: by mail-pj1-x1044.google.com with SMTP id jw11so6255633pjb.0 for ; Sun, 20 Sep 2020 18:09:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=eVE/wTmHBl6bSkNlq0VZJ/8lE4P9Tx7/CR7H5cw5vM0=; b=fZaAJCI8gxkN9CRgkWlHLdbz1Zin9Hhw6ikO6jM9hXRpeHspNzfSNnY25nJiUo4CVP k0HCHsahOnQqSSjtPZPgYXSrVEWYKmnj9kRaLj5tGyykvIOz4mMTf/L1BAeCRGhkVJzk miaE68toDpca33VXbiyAu2j5L5IyQq0/TypGU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=eVE/wTmHBl6bSkNlq0VZJ/8lE4P9Tx7/CR7H5cw5vM0=; b=pGCZn4FMWoHNHxDW0leT07NLYeAKjyzu+Gya5PAKaUXQEXoe1BB0Z4hTYzF3XCwYdd 37J3LxFJrwZQPTWeCT/vUNYJuljv0kaps1AVoU1iTcHK+oeW6l00FjIYa2ReX9uqkj2t cirVn0mn/jmYQDVSAmdkJbeh2ewVeR62kQrddNxysjtPm+M/dAR+oLEtLFjd+3IOzE6H If2+7qJ3J8afSwbV+Woks3hnq8tqCeWESC4tGAZFF4S1wr5L/TJuK4SOXQXk0WqIYLz7 GqjjAW5rPoM/e43J+GAwmqE++9nAi+M5CZyiDPL0i8nK0QHq4EswC55ZukmEkLLIBlhX 0ltw== X-Gm-Message-State: AOAM532+HRmF9JgIi12zscimNUUNBo2kDRY44ks7PZplhioApz1A4oze bTeef2aHTeqBmYZ/mTo8mzXANw== X-Google-Smtp-Source: ABdhPJw5GUh5llwxpsYg8oZMLW2JSudLIXK61H/aUs3cfrlXf02X+CLa07Du6DeDmsmYhZJFUfPEIA== X-Received: by 2002:a17:90a:cb93:: with SMTP id a19mr20606377pju.207.1600650560062; Sun, 20 Sep 2020 18:09:20 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id bt13sm9098095pjb.23.2020.09.20.18.09.19 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Sep 2020 18:09:19 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, kuba@kernel.org, Vasundhara Volam Subject: [PATCH net 1/6] bnxt_en: Use memcpy to copy VPD field info. Date: Sun, 20 Sep 2020 21:08:54 -0400 Message-Id: <1600650539-19967-2-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> References: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam Using strlcpy() to copy from VPD is not correct because VPD strings are not necessarily NULL terminated. Use memcpy() to copy the VPD length up to the destination buffer size - 1. The destination is zeroed memory so it will always be NULL terminated. Fixes: a0d0fd70fed5 ("bnxt_en: Read partno and serialno of the board from VPD") Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 8eb73fe..4af42b1 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -12090,7 +12090,7 @@ static int bnxt_init_mac_addr(struct bnxt *bp) static void bnxt_vpd_read_info(struct bnxt *bp) { struct pci_dev *pdev = bp->pdev; - int i, len, pos, ro_size; + int i, len, pos, ro_size, size; ssize_t vpd_size; u8 *vpd_data; @@ -12125,7 +12125,8 @@ static void bnxt_vpd_read_info(struct bnxt *bp) if (len + pos > vpd_size) goto read_sn; - strlcpy(bp->board_partno, &vpd_data[pos], min(len, BNXT_VPD_FLD_LEN)); + size = min(len, BNXT_VPD_FLD_LEN - 1); + memcpy(bp->board_partno, &vpd_data[pos], size); read_sn: pos = pci_vpd_find_info_keyword(vpd_data, i, ro_size, @@ -12138,7 +12139,8 @@ static void bnxt_vpd_read_info(struct bnxt *bp) if (len + pos > vpd_size) goto exit; - strlcpy(bp->board_serialno, &vpd_data[pos], min(len, BNXT_VPD_FLD_LEN)); + size = min(len, BNXT_VPD_FLD_LEN - 1); + memcpy(bp->board_serialno, &vpd_data[pos], size); exit: kfree(vpd_data); } From patchwork Mon Sep 21 01:08:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1368010 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=PoA65iQM; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BvmYf6XsBz9sSn for ; Mon, 21 Sep 2020 11:09:26 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726427AbgIUBJZ (ORCPT ); Sun, 20 Sep 2020 21:09:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59160 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726406AbgIUBJW (ORCPT ); Sun, 20 Sep 2020 21:09:22 -0400 Received: from mail-pj1-x1042.google.com (mail-pj1-x1042.google.com [IPv6:2607:f8b0:4864:20::1042]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C206C061755 for ; Sun, 20 Sep 2020 18:09:22 -0700 (PDT) Received: by mail-pj1-x1042.google.com with SMTP id q4so6525170pjh.5 for ; Sun, 20 Sep 2020 18:09:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rUPXZxRAsOrdjtI8FJ/7PvDPSOQH23Sj2mLwzIQCB9E=; b=PoA65iQM3R5AhGSjf3x/1AGi3xqOhrHX+tVFv11GNAksr51yeCTXYaYeOykn0lMfQT KACkZhhdVn1BRp3Sx0S5lDMZTm+EMvaMRo21aaLVBrBxBe05N4mhd1Ic2WdOh5bams49 dvdzpTTzi5JVTY8vQDrQHUWVyhs1Vx68g7TiU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rUPXZxRAsOrdjtI8FJ/7PvDPSOQH23Sj2mLwzIQCB9E=; b=fVMvyQrxG9mJ5dJdkptqrYG3M3mdADs54KM/occ0YZ5fOSY5JI7+j1IcbV/O1ASx+K CmvXOY6SZcpGkIfCimhqwTbwpMo2ksEUYoeYAWKfJ/F35b7nkmo/IVgK6notMWOhWc3A /XjRKoHtS2JR9kltGWC2sQwDPwAsti7wr7g8VFbnkHQ6Hqzej9UKdpKBuMUtea/OOKYZ cUqpOFbyTqJkMxKvi2YA3yTw5fipkeK3mISHKiFCuYo+zrzPrLL25luXOXL7NuXjPSC/ o3AaJcFJFDtFgt0zMdbrkTM5wnzj0bvh25l+BFTy0iiALR6/c3RnduBvp8g980OeffwX gI/Q== X-Gm-Message-State: AOAM5328uAqUInl0MZsWeQV2t2dHydcDKAXpN42NCesYDShIqQe29dZk Ma35Z5vP+R+bw25VstOO2w/ZLg== X-Google-Smtp-Source: ABdhPJwqnx7eYoqe1bY+/SwJ1EqSorVD9AN/XzlRa19OsCAjTDjjTyymdEzwBLM4rTMdfSdiLA1X+Q== X-Received: by 2002:a17:90a:ee0d:: with SMTP id e13mr23878138pjy.227.1600650561366; Sun, 20 Sep 2020 18:09:21 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id bt13sm9098095pjb.23.2020.09.20.18.09.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Sep 2020 18:09:20 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, kuba@kernel.org, Edwin Peer Subject: [PATCH net 2/6] bnxt_en: return proper error codes in bnxt_show_temp Date: Sun, 20 Sep 2020 21:08:55 -0400 Message-Id: <1600650539-19967-3-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> References: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Edwin Peer Returning "unknown" as a temperature value violates the hwmon interface rules. Appropriate error codes should be returned via device_attribute show instead. These will ultimately be propagated to the user via the file system interface. In addition to the corrected error handling, it is an even better idea to not present the sensor in sysfs at all if it is known that the read will definitely fail. Given that temp1_input is currently the only sensor reported, ensure no hwmon registration if TEMP_MONITOR_QUERY is not supported or if it will fail due to access permissions. Something smarter may be needed if and when other sensors are added. Fixes: 12cce90b934b ("bnxt_en: fix HWRM error when querying VF temperature") Signed-off-by: Edwin Peer Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 4af42b1..2865e24 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -9311,18 +9311,16 @@ static ssize_t bnxt_show_temp(struct device *dev, struct hwrm_temp_monitor_query_output *resp; struct bnxt *bp = dev_get_drvdata(dev); u32 len = 0; + int rc; resp = bp->hwrm_cmd_resp_addr; bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_TEMP_MONITOR_QUERY, -1, -1); mutex_lock(&bp->hwrm_cmd_lock); - if (!_hwrm_send_message_silent(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT)) + rc = _hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT); + if (!rc) len = sprintf(buf, "%u\n", resp->temp * 1000); /* display millidegree */ mutex_unlock(&bp->hwrm_cmd_lock); - - if (len) - return len; - - return sprintf(buf, "unknown\n"); + return rc ?: len; } static SENSOR_DEVICE_ATTR(temp1_input, 0444, bnxt_show_temp, NULL, 0); @@ -9342,7 +9340,16 @@ static void bnxt_hwmon_close(struct bnxt *bp) static void bnxt_hwmon_open(struct bnxt *bp) { + struct hwrm_temp_monitor_query_input req = {0}; struct pci_dev *pdev = bp->pdev; + int rc; + + bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_TEMP_MONITOR_QUERY, -1, -1); + rc = hwrm_send_message_silent(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT); + if (rc == -EACCES || rc == -EOPNOTSUPP) { + bnxt_hwmon_close(bp); + return; + } if (bp->hwmon_dev) return; From patchwork Mon Sep 21 01:08:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1368011 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=XWUjk/Ku; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BvmYg3D46z9sSt for ; Mon, 21 Sep 2020 11:09:27 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726437AbgIUBJZ (ORCPT ); Sun, 20 Sep 2020 21:09:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59164 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726126AbgIUBJX (ORCPT ); Sun, 20 Sep 2020 21:09:23 -0400 Received: from mail-pj1-x1043.google.com (mail-pj1-x1043.google.com [IPv6:2607:f8b0:4864:20::1043]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1F14FC061755 for ; Sun, 20 Sep 2020 18:09:23 -0700 (PDT) Received: by mail-pj1-x1043.google.com with SMTP id q4so6525225pjh.5 for ; Sun, 20 Sep 2020 18:09:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=dG4py2OHEa41IiKv1KBn0YcBAe3i40dLXOKhJsyDDj0=; b=XWUjk/Ku/XutCaE0u1+cLuzjGQvGNN3CY84ge+mh6uP1ofjFiJu+g/YhZvn/ZLpQg5 kkkVLP/iEk+1C+UkMeIEfyzKg4QitRGMzuXBpXW86r95tK6ILtQF9P6ql8vQD9RYLJsI aMKkPsiYuMMsVMmq5RsqQ9lVKG/OiLM8vE038= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=dG4py2OHEa41IiKv1KBn0YcBAe3i40dLXOKhJsyDDj0=; b=JIEgVHxTHrAQ/SkYNWcyuSMk7DGJqkDHhkkDGEC8i3TeW3EpHL/NDKAXZ9Aqfo6HMf dMFLZO+pFrzpjDg2ji0F47x29Lf97/iJGMpgc0drBSvLN1Fm9pYDz92WRr/jE7drjARr JACi4LTq7H/5Rig1X6BFlODDrYjpif7O4+6DwEvJX94inUfLMafNsCA1ByIdzGorRelH dwXAhsmNaoTek5hw1IZm6SsxLzbi83KFuoxoGPN9O2ogq7JIblSeSiox7InMiNSFGKYs AxOtBSjxGzdNVOL+GwJ2aDTfm+/pdyETR5t0LRe6z31YgYJz9FLnVZ8N6Y5Sb/orshRW MdMg== X-Gm-Message-State: AOAM530pPxh0lhwOMvD5ilu0TzIZl3xhNd4CR1ZbHRfjh59iDQ2htvjC dRlWsrFsh6kHwtmNWmLSm+DRw1TADyRCVg== X-Google-Smtp-Source: ABdhPJxzn4Unszi2dH09mJFb8hgjvNW8qmJjswrFON+p09H9EfwrOCxgyms7KK6T++1ciKzn2Owzpw== X-Received: by 2002:a17:90a:d70b:: with SMTP id y11mr22095114pju.15.1600650562512; Sun, 20 Sep 2020 18:09:22 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id bt13sm9098095pjb.23.2020.09.20.18.09.21 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Sep 2020 18:09:21 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, kuba@kernel.org Subject: [PATCH net 3/6] bnxt_en: Protect bnxt_set_eee() and bnxt_set_pauseparam() with mutex. Date: Sun, 20 Sep 2020 21:08:56 -0400 Message-Id: <1600650539-19967-4-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> References: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org All changes related to bp->link_info require the protection of the link_lock mutex. It's not sufficient to rely just on RTNL. Fixes: 163e9ef63641 ("bnxt_en: Fix race when modifying pause settings.") Reviewed-by: Edwin Peer Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 31 +++++++++++++++-------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index d092833..6c75101 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -1788,9 +1788,12 @@ static int bnxt_set_pauseparam(struct net_device *dev, if (!BNXT_PHY_CFG_ABLE(bp)) return -EOPNOTSUPP; + mutex_lock(&bp->link_lock); if (epause->autoneg) { - if (!(link_info->autoneg & BNXT_AUTONEG_SPEED)) - return -EINVAL; + if (!(link_info->autoneg & BNXT_AUTONEG_SPEED)) { + rc = -EINVAL; + goto pause_exit; + } link_info->autoneg |= BNXT_AUTONEG_FLOW_CTRL; if (bp->hwrm_spec_code >= 0x10201) @@ -1811,11 +1814,11 @@ static int bnxt_set_pauseparam(struct net_device *dev, if (epause->tx_pause) link_info->req_flow_ctrl |= BNXT_LINK_PAUSE_TX; - if (netif_running(dev)) { - mutex_lock(&bp->link_lock); + if (netif_running(dev)) rc = bnxt_hwrm_set_pause(bp); - mutex_unlock(&bp->link_lock); - } + +pause_exit: + mutex_unlock(&bp->link_lock); return rc; } @@ -2552,8 +2555,7 @@ static int bnxt_set_eee(struct net_device *dev, struct ethtool_eee *edata) struct bnxt *bp = netdev_priv(dev); struct ethtool_eee *eee = &bp->eee; struct bnxt_link_info *link_info = &bp->link_info; - u32 advertising = - _bnxt_fw_to_ethtool_adv_spds(link_info->advertising, 0); + u32 advertising; int rc = 0; if (!BNXT_PHY_CFG_ABLE(bp)) @@ -2562,19 +2564,23 @@ static int bnxt_set_eee(struct net_device *dev, struct ethtool_eee *edata) if (!(bp->flags & BNXT_FLAG_EEE_CAP)) return -EOPNOTSUPP; + mutex_lock(&bp->link_lock); + advertising = _bnxt_fw_to_ethtool_adv_spds(link_info->advertising, 0); if (!edata->eee_enabled) goto eee_ok; if (!(link_info->autoneg & BNXT_AUTONEG_SPEED)) { netdev_warn(dev, "EEE requires autoneg\n"); - return -EINVAL; + rc = -EINVAL; + goto eee_exit; } if (edata->tx_lpi_enabled) { if (bp->lpi_tmr_hi && (edata->tx_lpi_timer > bp->lpi_tmr_hi || edata->tx_lpi_timer < bp->lpi_tmr_lo)) { netdev_warn(dev, "Valid LPI timer range is %d and %d microsecs\n", bp->lpi_tmr_lo, bp->lpi_tmr_hi); - return -EINVAL; + rc = -EINVAL; + goto eee_exit; } else if (!bp->lpi_tmr_hi) { edata->tx_lpi_timer = eee->tx_lpi_timer; } @@ -2584,7 +2590,8 @@ static int bnxt_set_eee(struct net_device *dev, struct ethtool_eee *edata) } else if (edata->advertised & ~advertising) { netdev_warn(dev, "EEE advertised %x must be a subset of autoneg advertised speeds %x\n", edata->advertised, advertising); - return -EINVAL; + rc = -EINVAL; + goto eee_exit; } eee->advertised = edata->advertised; @@ -2596,6 +2603,8 @@ static int bnxt_set_eee(struct net_device *dev, struct ethtool_eee *edata) if (netif_running(dev)) rc = bnxt_hwrm_set_link_setting(bp, false, true); +eee_exit: + mutex_unlock(&bp->link_lock); return rc; } From patchwork Mon Sep 21 01:08:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1368014 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=dh39rSBe; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BvmYn2j3jz9sSn for ; Mon, 21 Sep 2020 11:09:33 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726457AbgIUBJc (ORCPT ); Sun, 20 Sep 2020 21:09:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726417AbgIUBJY (ORCPT ); Sun, 20 Sep 2020 21:09:24 -0400 Received: from mail-pg1-x543.google.com (mail-pg1-x543.google.com [IPv6:2607:f8b0:4864:20::543]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 33929C061755 for ; Sun, 20 Sep 2020 18:09:24 -0700 (PDT) Received: by mail-pg1-x543.google.com with SMTP id 34so7505284pgo.13 for ; Sun, 20 Sep 2020 18:09:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Ifa1kfCGMDEbztGkaaw8oAQMP2MNzCYZiuiTMyKsoSw=; b=dh39rSBeBciCJRw8lsnAll4FAJokxDJt6Vpj1Wm1sFTQEKNcqvmp7cE3IOsu29b7Xv OPVXlft+PBebx2EQVz2Yv39bnoGT8H6I27t3tgysC3ugcLLy6qeJK67LoVoUifxFRbFe Uw5uXb6QhjUcF0fIkDKdeD+Hxjk1OrtDlM49w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Ifa1kfCGMDEbztGkaaw8oAQMP2MNzCYZiuiTMyKsoSw=; b=JhYj6N8btTbQErtf+8/ORzyeWfQ6/g4nO1dU5dTsfyVaT7NKguvkDlxb3C4o2JTkT7 lYVQ3qn+CEUJW4QZH3aQPBQda2m6yeZgNEDvZBm6KdGoN0xYw7SwervIdfakTOjk6e+2 JxLlbNEl3HvOZk6o9REFHv6t4lrfn6huS9VE4M5H+veZHury1EVVuqddR41vDr6UEpqD 7n8A/PU3FI0LaZsghXi/zAZHT2tP0HU204oGC7ik7O4CYsHOhaObX4oWEwK1S8q5nvmd h2ayoviUVbcP359CqSpFVT5mn8uiJBDzmAfKroR+FfzDNaz5C0Lh+pLtLBB59VlR1GXi J/+w== X-Gm-Message-State: AOAM531MkwtAnrexd0AJmi6cY9EmnnrSJLR2kaBRUD6lBQ3W2xXcltu8 rN3Nnv0dbkac6a+oKHfJGnzeqw== X-Google-Smtp-Source: ABdhPJxkGJnP2mTpxQraOZKtXGqYY/WFYCggDXy34hThi+5miwK5S2ftKHJVpRiSe3lj77TGnP5Sfg== X-Received: by 2002:aa7:908b:0:b029:142:2501:34ee with SMTP id i11-20020aa7908b0000b0290142250134eemr25148088pfa.71.1600650563609; Sun, 20 Sep 2020 18:09:23 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id bt13sm9098095pjb.23.2020.09.20.18.09.22 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Sep 2020 18:09:22 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, kuba@kernel.org, Vasundhara Volam Subject: [PATCH net 4/6] bnxt_en: Return -EOPNOTSUPP for ETHTOOL_GREGS on VFs. Date: Sun, 20 Sep 2020 21:08:57 -0400 Message-Id: <1600650539-19967-5-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> References: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam Debug firmware commands are not supported on VFs to read registers. This patch avoids logging unnecessary access_denied error on VFs when user calls ETHTOOL_GREGS. By returning error in get_regs_len() method on the VF, the get_regs() method will not be called. Fixes: b5d600b027eb ("bnxt_en: Add support for 'ethtool -d'") Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index 6c75101..fecdfd8 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -1322,6 +1322,9 @@ static int bnxt_get_regs_len(struct net_device *dev) struct bnxt *bp = netdev_priv(dev); int reg_len; + if (!BNXT_PF(bp)) + return -EOPNOTSUPP; + reg_len = BNXT_PXP_REG_LEN; if (bp->fw_cap & BNXT_FW_CAP_PCIE_STATS_SUPPORTED) From patchwork Mon Sep 21 01:08:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1368012 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=IRJWcYiH; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BvmYk0DFgz9sSn for ; Mon, 21 Sep 2020 11:09:30 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726445AbgIUBJ3 (ORCPT ); Sun, 20 Sep 2020 21:09:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726430AbgIUBJZ (ORCPT ); Sun, 20 Sep 2020 21:09:25 -0400 Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74C86C0613CE for ; Sun, 20 Sep 2020 18:09:25 -0700 (PDT) Received: by mail-pg1-x544.google.com with SMTP id u13so7539481pgh.1 for ; Sun, 20 Sep 2020 18:09:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NpE1OCsFU+Vtyk8DXmhKbmxeWvTYioTM7yOEKEB1nu4=; b=IRJWcYiH22HGWVpaWUcruOJ32PprMeMo4s8USWWowzaJ1HKeaCgGtjDwYabB8p8Dd0 x94HYDaCJJwcyko6Zd/ixzxQw42S+H7Jh3XOzGkntT9EuuI7raerIAOvpEFVyuujHnQC /pEarhH5xw99mKIgBci0EBPHqniErKdm5L8vA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NpE1OCsFU+Vtyk8DXmhKbmxeWvTYioTM7yOEKEB1nu4=; b=ozefKT0PLl+F840ulvrn1n8e3ZP9jxEXf2vMd0ItkUnrtB9JQOGJkAXC5F4Ct12I2I qV8U8hjsCUACuXzQJ2N7EXgxNZ2VmCKTjQX1F1XrewBAdH0x3VWTcWEfQZ5cHFw3uzH6 i/y+LhI9TIjh8ssaxEtTUoe9zjVdojee24CleUB1tBVRFbNWTB1tv6yhiis4sFqEGLrD qlERqXsXuLzcBtJOIw+30QZ1tMRlXUYRG8OYElBoQ01qdclBbpObD536g78ikBgWjtCb fMpMb2sDhDkbSIlsVobCBo0MDNbHrpLCWM6cbeK5aQX3ZSkZFcpd+sH9RrxlXXG499Iy hHRw== X-Gm-Message-State: AOAM532ZqU05l8M63BqYwk9AzTh2LSE951aPqqL64lggSqQ+AGPf1tMA wdRsF5Ae9pSwVtcYY5pxEaJ58Fjy9KTskg== X-Google-Smtp-Source: ABdhPJzaFNg/GhDPHiyJI6PDHDZUbaYhUnbVPDwgC38iHEq3O/J6Ctl+EYUKCb1XpiYIdYdDvBLrhg== X-Received: by 2002:aa7:9583:0:b029:142:2501:396a with SMTP id z3-20020aa795830000b02901422501396amr25345538pfj.47.1600650564807; Sun, 20 Sep 2020 18:09:24 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id bt13sm9098095pjb.23.2020.09.20.18.09.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Sep 2020 18:09:24 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, kuba@kernel.org Subject: [PATCH net 5/6] bnxt_en: Fix HWRM_FUNC_QSTATS_EXT firmware call. Date: Sun, 20 Sep 2020 21:08:58 -0400 Message-Id: <1600650539-19967-6-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> References: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Fix it to set the required fid input parameter. The firmware call fails without this patch. Fixes: d752d0536c97 ("bnxt_en: Retrieve hardware counter masks from firmware if available.") Reviewed-by: Edwin Peer Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 2865e24..d527c9c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -3782,6 +3782,7 @@ static int bnxt_hwrm_func_qstat_ext(struct bnxt *bp, return -EOPNOTSUPP; bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_FUNC_QSTATS_EXT, -1, -1); + req.fid = cpu_to_le16(0xffff); req.flags = FUNC_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK; mutex_lock(&bp->hwrm_cmd_lock); rc = _hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT); From patchwork Mon Sep 21 01:08:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1368013 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=SWGqHguD; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BvmYk66zpz9sSt for ; Mon, 21 Sep 2020 11:09:30 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726454AbgIUBJ3 (ORCPT ); Sun, 20 Sep 2020 21:09:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726126AbgIUBJ0 (ORCPT ); Sun, 20 Sep 2020 21:09:26 -0400 Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60A10C0613CF for ; Sun, 20 Sep 2020 18:09:26 -0700 (PDT) Received: by mail-pg1-x544.google.com with SMTP id l191so7518349pgd.5 for ; Sun, 20 Sep 2020 18:09:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=KxX++AHaKzTjXw7TwUS3IWSavzlkxgBJf3fj3bYWvEY=; b=SWGqHguDVsB6raj3/CF7tcLNoScguKbNgv0zBGJ4914bg6X3U1/S3pXQsPXQxs5Tir CVoixP9pHyTk9XGS9sCPcK3vzrTLwhKYa3gwiGJ1+TeQSh27I1Kw2EMjIAZbhpK4HI3l FwoET6udegsveXCwibnShMclKgiCmFALerhrI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=KxX++AHaKzTjXw7TwUS3IWSavzlkxgBJf3fj3bYWvEY=; b=ck2lUfnwB6zjK1wVcdnV0qrgL4fKzuEnPX92FCRxLYjtKdmL+wyL13tk3H+uwkoNIS CXeFb6nDmaUQjLRahgPj5UUl8JijACyJ0Jo5Foivhpfm7uT97o/x8rDGd1oP39xCgxMu /2qwXGSRzYL5K80KPmAq0cl1NGh74MEq2R7dfoKngYfcISkHiNX/BiG1F7gB+3YEdgD2 ZZ2zbCN3qZ8y1uv72YTRb5TSVgxBsD9pPIyynbNsAGk8tpmwU1/TkCPMxOQTwnhGW3YF ECkW0S/9qKszbYdEifXY8nmIPwQxQaTKYUgUr/XICni6datCggQ6gdv6c3pwlW+MGluB RZMQ== X-Gm-Message-State: AOAM531XZxjoJZ8ftA8I9ak9kXhG/X1OKPviQL5XTj9UOhIa1z3ZkVgz bFw2uVk1HJeGCQUi7DxhaPXcaA== X-Google-Smtp-Source: ABdhPJw30LZQHqx2yXnsQrMt11GpqIZqu1cyCOuql7Y/SqzRundjr3hpPTKKgDnY/mB2d9CUOPuZQw== X-Received: by 2002:a63:4450:: with SMTP id t16mr35332258pgk.3.1600650565715; Sun, 20 Sep 2020 18:09:25 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id bt13sm9098095pjb.23.2020.09.20.18.09.24 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Sep 2020 18:09:25 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, kuba@kernel.org Subject: [PATCH net 6/6] bnxt_en: Fix wrong flag value passed to HWRM_PORT_QSTATS_EXT fw call. Date: Sun, 20 Sep 2020 21:08:59 -0400 Message-Id: <1600650539-19967-7-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> References: <1600650539-19967-1-git-send-email-michael.chan@broadcom.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The wrong flag value caused the firmware call to return actual port counters instead of the counter masks. This messed up the counter overflow logic and caused erratic extended port counters to be displayed under ethtool -S. Fixes: 531d1d269c1d ("bnxt_en: Retrieve hardware masks for port counters.") Reviewed-by: Edwin Peer Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index d527c9c..7b7e8b7 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -3853,7 +3853,7 @@ static void bnxt_init_stats(struct bnxt *bp) tx_masks = stats->hw_masks; tx_count = sizeof(struct tx_port_stats_ext) / 8; - flags = FUNC_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK; + flags = PORT_QSTATS_EXT_REQ_FLAGS_COUNTER_MASK; rc = bnxt_hwrm_port_qstats_ext(bp, flags); if (rc) { mask = (1ULL << 40) - 1;