From patchwork Thu Aug 20 16:57:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khalid Elmously X-Patchwork-Id: 1348505 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BXW7C1xj4z9sTd; Fri, 21 Aug 2020 02:58:15 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1k8ntE-0003xK-4z; Thu, 20 Aug 2020 16:58:12 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1k8nt6-0003uK-Hb for kernel-team@lists.ubuntu.com; Thu, 20 Aug 2020 16:58:04 +0000 Received: from mail-qk1-f197.google.com ([209.85.222.197]) by youngberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1k8nt6-0006q1-79 for kernel-team@lists.ubuntu.com; Thu, 20 Aug 2020 16:58:04 +0000 Received: by mail-qk1-f197.google.com with SMTP id a130so1615926qkg.9 for ; Thu, 20 Aug 2020 09:58:04 -0700 (PDT) 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=CZZ0gtMiVga2+aP+dlllaQsNO2QFYa+F5Z4pEazEXVY=; b=PVAnIZEPAyjXW/zZgCR4xC0MWlWxUBLizufY2uycLEZOKTYg7/8BdI0+zkmro5sL+9 qfBePvLCzV3uiWJaJJrmOeHlQSoA43gwKzEzHQpf8zLBII7bW5/KttyB47GekUNPK3io CGXY4FNU/kjuaURbHnJ7RD5JjLbuPI4slt/CKpKM8FDGZwS9O3yB3ekEQKxQqb2dJO2v g2Ajsj17sYi2KiWTnhPZoxLJoI1y43ojCdK3Z5UvztgHi0eaVjWDnqSBs64PJ5BIDjUC lfDQJYimAQWW/Kr1dQ3QXQyBPU3/j/6p3LPML8fpOoXrsuHEZ6lkYN2hlHeU1JfypnOZ /oAw== X-Gm-Message-State: AOAM532Qa/2/5WRp4hpNAWWzpZwFp9kanLmMIzYS5OXFrCRw++yRIvzv 98y+dkHPgCt7Y22IQcRXrLXvz7j+23v5p34yEoq7yHdbPKp+gGWaepQh9+U/XYKH2MX63pVsW21 m6rQ/le7A4Xbpek2gh4q6vZOHAhpBQCXUue/kS/NLGQ== X-Received: by 2002:a0c:b203:: with SMTP id x3mr3758325qvd.97.1597942683059; Thu, 20 Aug 2020 09:58:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzpiVqp3ZHm4L4KjXtsxJYtlLAfvM8WolvxH+4sYTlALiah1S37tkN6FEJTuJLmQsS9o7S+Ww== X-Received: by 2002:a0c:b203:: with SMTP id x3mr3758308qvd.97.1597942682786; Thu, 20 Aug 2020 09:58:02 -0700 (PDT) Received: from kbuntu2.fuzzbuzz.org (dhcp-24-53-242-104.cable.user.start.ca. [24.53.242.104]) by smtp.gmail.com with ESMTPSA id 7sm2712765qky.89.2020.08.20.09.58.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2020 09:58:02 -0700 (PDT) From: Khalid Elmously To: kernel-team@lists.ubuntu.com Subject: [SRU][F/Oracle][PATCH 1/3] bnxt_en: Store the running firmware version code. Date: Thu, 20 Aug 2020 12:57:46 -0400 Message-Id: <20200820165748.10264-2-khalid.elmously@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200820165748.10264-1-khalid.elmously@canonical.com> References: <20200820165748.10264-1-khalid.elmously@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Michael Chan BugLink: http://bugs.launchpad.net/bugs/1892397 We currently only store the firmware version as a string for ethtool and devlink info. Store it also as a version code. The next 2 patches will need to check the firmware major version to determine some workarounds. We also use the 16-bit firmware version fields if the firmware is newer and provides the 16-bit fields. Reviewed-by: Edwin Peer Signed-off-by: Michael Chan Signed-off-by: David S. Miller (backported from commit d0ad2ea2bc185835f8a749302ad07b70528d2a09) [ kmously: context adjustments due to upstream refactoring of the bnxt driver ] Signed-off-by: Khalid Elmously Acked-by: William Breathitt Gray --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 23 +++++++++++++++++++---- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 4 ++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 63ee0c49be7c..3c398c7632c9 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -7225,8 +7225,9 @@ static int __bnxt_hwrm_ver_get(struct bnxt *bp, bool silent) static int bnxt_hwrm_ver_get(struct bnxt *bp) { struct hwrm_ver_get_output *resp = bp->hwrm_cmd_resp_addr; + u16 fw_maj, fw_min, fw_bld, fw_rsv; u32 dev_caps_cfg; - int rc; + int rc, len; bp->hwrm_max_req_len = HWRM_MAX_REQ_LEN; mutex_lock(&bp->hwrm_cmd_lock); @@ -7245,9 +7246,23 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp) resp->hwrm_intf_upd_8b); netdev_warn(bp->dev, "Please update firmware with HWRM interface 1.0.0 or newer.\n"); } - snprintf(bp->fw_ver_str, BC_HWRM_STR_LEN, "%d.%d.%d.%d", - resp->hwrm_fw_maj_8b, resp->hwrm_fw_min_8b, - resp->hwrm_fw_bld_8b, resp->hwrm_fw_rsvd_8b); + + fw_maj = le16_to_cpu(resp->hwrm_fw_major); + if (bp->hwrm_spec_code > 0x10803 && fw_maj) { + fw_min = le16_to_cpu(resp->hwrm_fw_minor); + fw_bld = le16_to_cpu(resp->hwrm_fw_build); + fw_rsv = le16_to_cpu(resp->hwrm_fw_patch); + len = FW_VER_STR_LEN; + } else { + fw_maj = resp->hwrm_fw_maj_8b; + fw_min = resp->hwrm_fw_min_8b; + fw_bld = resp->hwrm_fw_bld_8b; + fw_rsv = resp->hwrm_fw_rsvd_8b; + len = BC_HWRM_STR_LEN; + } + bp->fw_ver_code = BNXT_FW_VER_CODE(fw_maj, fw_min, fw_bld, fw_rsv); + snprintf(bp->fw_ver_str, len, "%d.%d.%d.%d", fw_maj, fw_min, fw_bld, + fw_rsv); if (strlen(resp->active_pkg_name)) { int fw_ver_len = strlen(bp->fw_ver_str); diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index a61a5873ab0a..2f428cb486b8 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -1699,6 +1699,10 @@ struct bnxt { #define BC_HWRM_STR_LEN 21 #define PHY_VER_STR_LEN (FW_VER_STR_LEN - BC_HWRM_STR_LEN) char fw_ver_str[FW_VER_STR_LEN]; + u64 fw_ver_code; +#define BNXT_FW_VER_CODE(maj, min, bld, rsv) \ + ((u64)(maj) << 48 | (u64)(min) << 32 | (u64)(bld) << 16 | (rsv)) + __be16 vxlan_port; u8 vxlan_port_cnt; __le16 vxlan_fw_dst_port_id; From patchwork Thu Aug 20 16:57:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khalid Elmously X-Patchwork-Id: 1348503 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BXW786XvWz9sTR; Fri, 21 Aug 2020 02:58:12 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1k8nt9-0003uq-I0; Thu, 20 Aug 2020 16:58:07 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1k8nt7-0003uW-Rv for kernel-team@lists.ubuntu.com; Thu, 20 Aug 2020 16:58:05 +0000 Received: from mail-qt1-f197.google.com ([209.85.160.197]) by youngberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1k8nt7-0006qA-I4 for kernel-team@lists.ubuntu.com; Thu, 20 Aug 2020 16:58:05 +0000 Received: by mail-qt1-f197.google.com with SMTP id m34so1962225qtf.10 for ; Thu, 20 Aug 2020 09:58:05 -0700 (PDT) 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=tNm7lnQozq4Ft8Ruvq7Dyg+8TTtEVQX4CjD72ag4XyA=; b=caMjr0KAyk5L2YLc0DZPWp6+od47adh/bTPWJRiKPgK8nXR+YvS1iy9+K1DqvfxA+R RY+m2IKABKpBn79Ae2DGR2LG6LzP9fl2TSnoyJA2Pooaircb6oQbsv7TqM6TFCW1fCTi x9mgEDNL9jaifC7WrlcLINH++KC2d1xE51WP6GruiHGwydvw3EDpy5Uw44x731gfCssK /BvpJabkBU6wI1RXp4JMtn8prVfA+ReL/GJjeoU2hCePGrzy2r0Nk0kIi3jf37M9rPWF glA21fUxPUPeeSL3JD6IXttI3YlOfHrzotf5XlnscH7YAwyA/u6I9hNUMFMeaWUWVgZx 1U/Q== X-Gm-Message-State: AOAM533fMPeI5rpcqwV62K0rcwXvGi+sk4ow729pjKhG2/y6zvB/ymQ6 U0mjdeYSRR2A5muHqtGpIjI6AsEEyLR5GY62d7SD5l6F5WQQTHO472KkH1We7rZKhXKYao+B3wD NGqZXc/qF5KMVISqfR2M8iNdEkiat3JCNio8K1Qbs6A== X-Received: by 2002:a0c:a9c6:: with SMTP id c6mr3641363qvb.151.1597942684243; Thu, 20 Aug 2020 09:58:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsW2/84D4XRKnKJJVxOkZEaNWpabfqTY3E/IGmqoXR/9aothnDr/ApGMNhcwksdeUPFHeJoQ== X-Received: by 2002:a0c:a9c6:: with SMTP id c6mr3641348qvb.151.1597942683990; Thu, 20 Aug 2020 09:58:03 -0700 (PDT) Received: from kbuntu2.fuzzbuzz.org (dhcp-24-53-242-104.cable.user.start.ca. [24.53.242.104]) by smtp.gmail.com with ESMTPSA id 7sm2712765qky.89.2020.08.20.09.58.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2020 09:58:03 -0700 (PDT) From: Khalid Elmously To: kernel-team@lists.ubuntu.com Subject: [SRU][F/Oracle][PATCH 2/3] bnxt_en: Do not enable legacy TX push on older firmware. Date: Thu, 20 Aug 2020 12:57:47 -0400 Message-Id: <20200820165748.10264-3-khalid.elmously@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200820165748.10264-1-khalid.elmously@canonical.com> References: <20200820165748.10264-1-khalid.elmously@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Michael Chan BugLink: http://bugs.launchpad.net/bugs/1892397 Older firmware may not support legacy TX push properly and may not be disabling it. So we check certain firmware versions that may have this problem and disable legacy TX push unconditionally. Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.") Reviewed-by: Edwin Peer Signed-off-by: Michael Chan Signed-off-by: David S. Miller (cherry picked from commit fed7edd18143c68c63ea049999a7e861123de6de) Signed-off-by: Khalid Elmously Acked-by: William Breathitt Gray --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 ++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 3c398c7632c9..93d02e8339c4 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -6960,7 +6960,8 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp) bp->fw_cap |= BNXT_FW_CAP_ERR_RECOVER_RELOAD; bp->tx_push_thresh = 0; - if (flags & FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED) + if ((flags & FUNC_QCAPS_RESP_FLAGS_PUSH_MODE_SUPPORTED) && + BNXT_FW_MAJ(bp) > 217) bp->tx_push_thresh = BNXT_TX_PUSH_THRESH; hw_resc->max_rsscos_ctxs = le16_to_cpu(resp->max_rsscos_ctx); diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index 2f428cb486b8..2e7575b944aa 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -1702,6 +1702,7 @@ struct bnxt { u64 fw_ver_code; #define BNXT_FW_VER_CODE(maj, min, bld, rsv) \ ((u64)(maj) << 48 | (u64)(min) << 32 | (u64)(bld) << 16 | (rsv)) +#define BNXT_FW_MAJ(bp) ((bp)->fw_ver_code >> 48) __be16 vxlan_port; u8 vxlan_port_cnt; From patchwork Thu Aug 20 16:57:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Khalid Elmously X-Patchwork-Id: 1348504 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BXW78626dz9sTQ; Fri, 21 Aug 2020 02:58:12 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1k8ntB-0003vp-Pn; Thu, 20 Aug 2020 16:58:09 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1k8nt9-0003uc-Er for kernel-team@lists.ubuntu.com; Thu, 20 Aug 2020 16:58:07 +0000 Received: from mail-qv1-f70.google.com ([209.85.219.70]) by youngberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1k8nt9-0006qJ-4Y for kernel-team@lists.ubuntu.com; Thu, 20 Aug 2020 16:58:07 +0000 Received: by mail-qv1-f70.google.com with SMTP id q4so1784734qvu.6 for ; Thu, 20 Aug 2020 09:58:07 -0700 (PDT) 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=gJV19ivQwxkA4fVS8UkZyPwY+avN1HPgUm8R3AHFcbQ=; b=gPNJmpI207BmekC8sQaJbPo6j6ZerTylholV9GLf6TSVPsiFvNiihf+jKf8r99zbx5 6/C/nB7Mt9nxu2CkU6fFAi/XJec59g8gJyOyD21LJi+1f1mMnmnWs/24mX5JicFOtgxy +U5576z1dJTGFJHpB2uFea2Co7R1RSuTN4kYsjaiSM8WFfEk20nnk2WfgYu7N0l2ugVS HGL2Mp3owkXZwRwybGB8iZwSeBPLK7rbTtPpfWVotfc6mvKMXUtxQL8uMBDd5qQk9FcI S0NUQFvDvFWccrFKedSFmXgiL+y0yUgpxGWmrUukvoVpGV3mZWmwsI2ty8F0EhSZMvT5 C1Bg== X-Gm-Message-State: AOAM530F9+KYow/+/gEdIEHSv/taUux4MemtCoK++uFtUXC1xu2e1yyQ JvAUXBUSd1CQrSQxkInw4vf1evulazBNjGKZChgcwExc1PPug7e7gjvBuGMaNVBOabBXr7MePls Ko7z9zUTrQvpZ1U9O8tlGt6UMfT/4OqtRdBXyiK0Mgg== X-Received: by 2002:a0c:a224:: with SMTP id f33mr3862795qva.93.1597942685606; Thu, 20 Aug 2020 09:58:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyerv2CgmntpPrH3MFIegRlCOHdbHcBLGC/xN4dW7lkp8H0n8/ZsH4/oYpI/ApeF1/hervPzQ== X-Received: by 2002:a0c:a224:: with SMTP id f33mr3862773qva.93.1597942685345; Thu, 20 Aug 2020 09:58:05 -0700 (PDT) Received: from kbuntu2.fuzzbuzz.org (dhcp-24-53-242-104.cable.user.start.ca. [24.53.242.104]) by smtp.gmail.com with ESMTPSA id 7sm2712765qky.89.2020.08.20.09.58.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2020 09:58:04 -0700 (PDT) From: Khalid Elmously To: kernel-team@lists.ubuntu.com Subject: [SRU][F/Oracle][PATCH 3/3] bnxt_en: Fix statistics counters issue during ifdown with older firmware. Date: Thu, 20 Aug 2020 12:57:48 -0400 Message-Id: <20200820165748.10264-4-khalid.elmously@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200820165748.10264-1-khalid.elmously@canonical.com> References: <20200820165748.10264-1-khalid.elmously@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Michael Chan BugLink: http://bugs.launchpad.net/bugs/1892397 On older firmware, the hardware statistics are not cleared when the driver frees the hardware stats contexts during ifdown. The driver expects these stats to be cleared and saves a copy before freeing the stats contexts. During the next ifup, the driver will likely allocate the same hardware stats contexts and this will cause a big increase in the counters as the old counters are added back to the saved counters. We fix it by making an additional firmware call to clear the counters before freeing the hw stats contexts when the firmware is the older 20.x firmware. Fixes: b8875ca356f1 ("bnxt_en: Save ring statistics before reset.") Reported-by: Jakub Kicinski Reviewed-by: Vasundhara Volam Signed-off-by: Michael Chan Tested-by: Jakub Kicinski Signed-off-by: David S. Miller (backported from commit c2dec363feb41544a76c8083aca2378990e17166) [ kmously: Minor context adjustments ] Signed-off-by: Khalid Elmously Acked-by: William Breathitt Gray --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 93d02e8339c4..9af620b05ba8 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -6306,6 +6306,7 @@ int bnxt_hwrm_set_coal(struct bnxt *bp) static int bnxt_hwrm_stat_ctx_free(struct bnxt *bp) { int rc = 0, i; + struct hwrm_stat_ctx_clr_stats_input req0 = {0}; struct hwrm_stat_ctx_free_input req = {0}; if (!bp->bnapi) @@ -6314,6 +6315,7 @@ static int bnxt_hwrm_stat_ctx_free(struct bnxt *bp) if (BNXT_CHIP_TYPE_NITRO_A0(bp)) return 0; + bnxt_hwrm_cmd_hdr_init(bp, &req0, HWRM_STAT_CTX_CLR_STATS, -1, -1); bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_STAT_CTX_FREE, -1, -1); mutex_lock(&bp->hwrm_cmd_lock); @@ -6323,6 +6325,11 @@ static int bnxt_hwrm_stat_ctx_free(struct bnxt *bp) if (cpr->hw_stats_ctx_id != INVALID_STATS_CTX_ID) { req.stat_ctx_id = cpu_to_le32(cpr->hw_stats_ctx_id); + if (BNXT_FW_MAJ(bp) <= 20) { + req0.stat_ctx_id = req.stat_ctx_id; + _hwrm_send_message(bp, &req0, sizeof(req0), + HWRM_CMD_TIMEOUT); + } rc = _hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);