From patchwork Sat Aug 17 21:04:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1148780 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=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; 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.b="ZQ7H+wDn"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 469t5H2qljz9sN1 for ; Sun, 18 Aug 2019 07:05:55 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726303AbfHQVF2 (ORCPT ); Sat, 17 Aug 2019 17:05:28 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:42591 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726198AbfHQVF2 (ORCPT ); Sat, 17 Aug 2019 17:05:28 -0400 Received: by mail-pl1-f196.google.com with SMTP id y1so3895649plp.9 for ; Sat, 17 Aug 2019 14:05:27 -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=BZCerxlhc0Xot831kfmRRznDWF99Q5kyzBgeSvu1roA=; b=ZQ7H+wDnceV+FGTqehMHXzogXR4G4CqRafeerJ7FqCBe1UHcW4W91wJbmFDdfE3wH4 Uy1/4R40sxvq+8n281EqsRG6lt94BG3TDHttg1xkjrH7gDFH0t2kucc7VbLEEE8oASXv txBlIWaB/QVOi0Ekd2nnY/3eeSCnHAsJibrzM= 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=BZCerxlhc0Xot831kfmRRznDWF99Q5kyzBgeSvu1roA=; b=Itq2tJZGRzMDa3zgiDLMHqyuY1ehKC2nKJPOECiodUWDu5uxGiRdq72kEYLcaAvF4U mcv2+73hzsWsFODngKMALjTMPVPTN0jn9rO5dGLeo43s8dJug4Vnas0r9uEBGN0nrDMd udMoZNN20nv89Y1iVBS1dkdZ7vjqwDgkBjCfI8W5xCJd53DbKKjE9JP2L77RhXIwaEDG oXrUiuvLJUK0943iQG+uvcCcp/lG4BLtM2gfml1eElzrW0vv1b0Wlv68dRx2/KDUT5DC LbAgLN7Y9fqiNIoQqS271Hi3Mqk7RmoZjzbx0Ok0OvAyBIIymj7jpArBIjU+4hkAX7KU pFxQ== X-Gm-Message-State: APjAAAVh/s8fWGspbTNS2iJR8rQlLco922HHd3vpRb9qbto/AcVEHURt qXYbMBeTFF/EK/3RSPC6b7b54pGL5nQ= X-Google-Smtp-Source: APXvYqxu5k1mPov74KrPUR4nDTLV2fOL8Y4J4tqvSR4Q3iZ2mmSNSIvLHH76rnIaO3Ge/kTI7HezIg== X-Received: by 2002:a17:902:d882:: with SMTP id b2mr15307664plz.66.1566075927583; Sat, 17 Aug 2019 14:05:27 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id e189sm9099295pgc.15.2019.08.17.14.05.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Aug 2019 14:05:27 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net v2 1/6] bnxt_en: Fix VNIC clearing logic for 57500 chips. Date: Sat, 17 Aug 2019 17:04:47 -0400 Message-Id: <1566075892-30064-2-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> References: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org During device shutdown, the VNIC clearing sequence needs to be modified to free the VNIC first before freeing the RSS contexts. The current code is doing the reverse and we can get mis-directed RX completions to CP ring ID 0 when the RSS contexts are freed and zeroed. The clearing of RSS contexts is not required with the new sequence. Refactor the VNIC clearing logic into a new function bnxt_clear_vnic() and do the chip specific VNIC clearing sequence. Fixes: 7b3af4f75b81 ("bnxt_en: Add RSS support for 57500 chips.") Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 7070349..1ef224f 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -7016,19 +7016,29 @@ static void bnxt_hwrm_clear_vnic_rss(struct bnxt *bp) bnxt_hwrm_vnic_set_rss(bp, i, false); } -static void bnxt_hwrm_resource_free(struct bnxt *bp, bool close_path, - bool irq_re_init) +static void bnxt_clear_vnic(struct bnxt *bp) { - if (bp->vnic_info) { - bnxt_hwrm_clear_vnic_filter(bp); + if (!bp->vnic_info) + return; + + bnxt_hwrm_clear_vnic_filter(bp); + if (!(bp->flags & BNXT_FLAG_CHIP_P5)) { /* clear all RSS setting before free vnic ctx */ bnxt_hwrm_clear_vnic_rss(bp); bnxt_hwrm_vnic_ctx_free(bp); - /* before free the vnic, undo the vnic tpa settings */ - if (bp->flags & BNXT_FLAG_TPA) - bnxt_set_tpa(bp, false); - bnxt_hwrm_vnic_free(bp); } + /* before free the vnic, undo the vnic tpa settings */ + if (bp->flags & BNXT_FLAG_TPA) + bnxt_set_tpa(bp, false); + bnxt_hwrm_vnic_free(bp); + if (bp->flags & BNXT_FLAG_CHIP_P5) + bnxt_hwrm_vnic_ctx_free(bp); +} + +static void bnxt_hwrm_resource_free(struct bnxt *bp, bool close_path, + bool irq_re_init) +{ + bnxt_clear_vnic(bp); bnxt_hwrm_ring_free(bp, close_path); bnxt_hwrm_ring_grp_free(bp); if (irq_re_init) { From patchwork Sat Aug 17 21:04:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1148782 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=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; 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.b="fm2JJI/6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 469t5J15Ggz9sN6 for ; Sun, 18 Aug 2019 07:05:56 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726362AbfHQVFa (ORCPT ); Sat, 17 Aug 2019 17:05:30 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:35610 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726198AbfHQVFa (ORCPT ); Sat, 17 Aug 2019 17:05:30 -0400 Received: by mail-pf1-f193.google.com with SMTP id d85so4926326pfd.2 for ; Sat, 17 Aug 2019 14:05:29 -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=Ld2zvTsgyGkUhDtaBE5EUoFc0PKaDmy65nqinL919wk=; b=fm2JJI/6/0+qKpBOIdtkIOvbqLgRz4mWhCFVrAGLvWLLwNiv+KWK1h2p6B8EI8cO1E sz2z2soUCDtDXSEdU7cMrvvy/qiGfq4KwMTzff1bX7Vg/eq2cGAjYRvo9e3MaRIeRrDH NBOG70mkxg+RBUoxlHZVihfeOIDEggnQrMNfQ= 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=Ld2zvTsgyGkUhDtaBE5EUoFc0PKaDmy65nqinL919wk=; b=O7cm/FBScuukBAXEe91qOi41AJE7qj2YGKzRfa1z91WR2Zaa6dp2fFfSlkuyUCr1ql j64Q6YLBF4wzFu2muoJZ5qUrBHcWHSqLd6Ks5A71wrND3eLZ+FjmkC4DfcnR6tkjUzP8 m4QotFdhM9C8CnBpmcySuf8AJfBEjGECLTKbigjrwIjUQcR81i0SUPzOTkcTpkoHqb6t hoMF85CaTmfHKe7MQSidFR61BiRfStz8TtFGQ9p03UcPxwE7l3oel3WjA+1lEDECIHQT k5smFBnA580Cd9KRZqkjgojuEZx3V+7P/FMkUN/vPCBbW4AR+N1ERcySfZK96CwdLOY7 9vDw== X-Gm-Message-State: APjAAAUduFt+kqx1XWL7wJ4oju8UMQzz4jI1gqyNcfHjTn3BKLhMI/y4 N8R8+2ZJmoM70LRYySG/7aOSVd8LVkA= X-Google-Smtp-Source: APXvYqyH5fNgGh5krB+fQGqsEcLD2Lj5Iw9UBRurJxEFHwMfqfuncZ4EC9xTpylzGiFklUc9g2RN0g== X-Received: by 2002:aa7:8a0a:: with SMTP id m10mr17571398pfa.100.1566075929388; Sat, 17 Aug 2019 14:05:29 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id e189sm9099295pgc.15.2019.08.17.14.05.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Aug 2019 14:05:29 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net v2 2/6] bnxt_en: Improve RX doorbell sequence. Date: Sat, 17 Aug 2019 17:04:48 -0400 Message-Id: <1566075892-30064-3-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> References: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When both RX buffers and RX aggregation buffers have to be replenished at the end of NAPI, post the RX aggregation buffers first before RX buffers. Otherwise, we may run into a situation where there are only RX buffers without RX aggregation buffers for a split second. This will cause the hardware to abort the RX packet and report buffer errors, which will cause unnecessary cleanup by the driver. Ringing the Aggregation ring doorbell first before the RX ring doorbell will prevent some of these buffer errors. Use the same sequence during ring initialization as well. Fixes: 697197e5a173 ("bnxt_en: Re-structure doorbells.") Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 1ef224f..8dce406 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -2021,9 +2021,9 @@ static void __bnxt_poll_work_done(struct bnxt *bp, struct bnxt_napi *bnapi) if (bnapi->events & BNXT_RX_EVENT) { struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; - bnxt_db_write(bp, &rxr->rx_db, rxr->rx_prod); if (bnapi->events & BNXT_AGG_EVENT) bnxt_db_write(bp, &rxr->rx_agg_db, rxr->rx_agg_prod); + bnxt_db_write(bp, &rxr->rx_db, rxr->rx_prod); } bnapi->events = 0; } @@ -5064,6 +5064,7 @@ static void bnxt_set_db(struct bnxt *bp, struct bnxt_db_info *db, u32 ring_type, static int bnxt_hwrm_ring_alloc(struct bnxt *bp) { + bool agg_rings = !!(bp->flags & BNXT_FLAG_AGG_RINGS); int i, rc = 0; u32 type; @@ -5139,7 +5140,9 @@ static int bnxt_hwrm_ring_alloc(struct bnxt *bp) if (rc) goto err_out; bnxt_set_db(bp, &rxr->rx_db, type, map_idx, ring->fw_ring_id); - bnxt_db_write(bp, &rxr->rx_db, rxr->rx_prod); + /* If we have agg rings, post agg buffers first. */ + if (!agg_rings) + bnxt_db_write(bp, &rxr->rx_db, rxr->rx_prod); bp->grp_info[map_idx].rx_fw_ring_id = ring->fw_ring_id; if (bp->flags & BNXT_FLAG_CHIP_P5) { struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; @@ -5158,7 +5161,7 @@ static int bnxt_hwrm_ring_alloc(struct bnxt *bp) } } - if (bp->flags & BNXT_FLAG_AGG_RINGS) { + if (agg_rings) { type = HWRM_RING_ALLOC_AGG; for (i = 0; i < bp->rx_nr_rings; i++) { struct bnxt_rx_ring_info *rxr = &bp->rx_ring[i]; @@ -5174,6 +5177,7 @@ static int bnxt_hwrm_ring_alloc(struct bnxt *bp) bnxt_set_db(bp, &rxr->rx_agg_db, type, map_idx, ring->fw_ring_id); bnxt_db_write(bp, &rxr->rx_agg_db, rxr->rx_agg_prod); + bnxt_db_write(bp, &rxr->rx_db, rxr->rx_prod); bp->grp_info[grp_idx].agg_fw_ring_id = ring->fw_ring_id; } } From patchwork Sat Aug 17 21:04:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1148783 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=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; 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.b="QYsZMrVL"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 469t5J5tVSz9sNC for ; Sun, 18 Aug 2019 07:05:56 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726386AbfHQVFc (ORCPT ); Sat, 17 Aug 2019 17:05:32 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:33542 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726198AbfHQVFc (ORCPT ); Sat, 17 Aug 2019 17:05:32 -0400 Received: by mail-pf1-f195.google.com with SMTP id g2so4932553pfq.0 for ; Sat, 17 Aug 2019 14:05:31 -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=j9TfBHHbq+7kzy8vOIKScq0AhTKwzCpory37PRlKdvM=; b=QYsZMrVLqpbYtdLh82tXfPbey69ZVWVjKR+kn3vk6KUI005Xd5afxTyIE74fQg8aa1 hK8U6zrtQqhDmHbcB5Cy24KDMWr/oV2PGZxf7+cgg6ozAtAClCP1xAamxO2zinlP45CL t+ZKvsvuIIyjTI6suJuezcnoj+OouwRm+TkBk= 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=j9TfBHHbq+7kzy8vOIKScq0AhTKwzCpory37PRlKdvM=; b=qyShunC8swEz9U4zYp1x8snME9hPdkFtTgVl4HqQPuY4iPPp0NJoKLhTVXdSyj1CAJ sHJwSijO+aapUnvq+F5utzkGMfS/kVgC4y/oMp+vgILa6F/SGDx8s1NAKwuV7ILmuCvt pCS63CZm1bK5SvFyteqd1lZEpskDq5r5vuvXOTd1i/ijUL/3hfc70mv/6AGOyGjnQO59 DACwwZ2UsezjGM9tGQDDabTg36ZeKAKjrZOx8ZGh75OqxFxRNzZYBgzCtGpGr+kPCYwg RG8gw3My9AiarGZDOPCmJXqABhmZ2BIossvfcSlGHrST/9FAa/zTa9+uWmDk7fjt/PCU QUeQ== X-Gm-Message-State: APjAAAUT+jy003m0nE+PLiZKAx16pIl05jrsIbFtWsUUq4mPW57rvVGK qpQiRLvuQtc3VqxUOQxoYDX1RgNbwgw= X-Google-Smtp-Source: APXvYqyw0eYccjUNINF2TjN7XlBaDSgDYOtxA0oMIIi0cC6RGhLHj61VbtfxMI2sRi8R3u7p9TkX+Q== X-Received: by 2002:a63:6c7:: with SMTP id 190mr13235461pgg.7.1566075931516; Sat, 17 Aug 2019 14:05:31 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id e189sm9099295pgc.15.2019.08.17.14.05.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Aug 2019 14:05:31 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam Subject: [PATCH net v2 3/6] bnxt_en: Fix handling FRAG_ERR when NVM_INSTALL_UPDATE cmd fails Date: Sat, 17 Aug 2019 17:04:49 -0400 Message-Id: <1566075892-30064-4-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> References: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam If FW returns FRAG_ERR in response error code, driver is resending the command only when HWRM command returns success. Fix the code to resend NVM_INSTALL_UPDATE command with DEFRAG install flags, if FW returns FRAG_ERR in its response error code. Fixes: cb4d1d626145 ("bnxt_en: Retry failed NVM_INSTALL_UPDATE with defragmentation flag enabled.") Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index c7ee63d..8445a0c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -2016,21 +2016,19 @@ static int bnxt_flash_package_from_file(struct net_device *dev, mutex_lock(&bp->hwrm_cmd_lock); hwrm_err = _hwrm_send_message(bp, &install, sizeof(install), INSTALL_PACKAGE_TIMEOUT); - if (hwrm_err) - goto flash_pkg_exit; - - if (resp->error_code) { + if (hwrm_err) { u8 error_code = ((struct hwrm_err_output *)resp)->cmd_err; - if (error_code == NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR) { + if (resp->error_code && error_code == + NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR) { install.flags |= cpu_to_le16( NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG); hwrm_err = _hwrm_send_message(bp, &install, sizeof(install), INSTALL_PACKAGE_TIMEOUT); - if (hwrm_err) - goto flash_pkg_exit; } + if (hwrm_err) + goto flash_pkg_exit; } if (resp->result) { From patchwork Sat Aug 17 21:04:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1148784 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=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; 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.b="JEHCNWi2"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 469t5K3GQ4z9sP6 for ; Sun, 18 Aug 2019 07:05:57 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726393AbfHQVFe (ORCPT ); Sat, 17 Aug 2019 17:05:34 -0400 Received: from mail-pl1-f195.google.com ([209.85.214.195]:36313 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726198AbfHQVFe (ORCPT ); Sat, 17 Aug 2019 17:05:34 -0400 Received: by mail-pl1-f195.google.com with SMTP id g4so3921385plo.3 for ; Sat, 17 Aug 2019 14:05:33 -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=Fp4fQXmbQWiRT3Tg1PjQ+KQDvMa3B/ngssjpquIumrY=; b=JEHCNWi2jB+byrJJK1SlV2kQX3mymcC+kU9vCfPMUbYibjLEF1XvYVDI9l6MkFP8I0 bY79QxJ9+uQsHGEcDkGDTtjeoFb2GgzYPQmdjnIYKtL8moQ8qvBORFv2ktrYiMZZgdpv XnJ/3S343L8u53Q57IJVvmPG6ueapY535rv4A= 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=Fp4fQXmbQWiRT3Tg1PjQ+KQDvMa3B/ngssjpquIumrY=; b=ZhF/qyBxMUe2uZQXYt2bnbBpgFSc5zo3QKvzxDRvvjzgCqRYU722S/dcR5TmjW//ZB ZhCtFSsOCcDij+o9gPeaLsDzAlAsJvwBMHeU4jxIlQimMAHUP9VI9Svf97dxJAZpuU2a +vl7TCXrLBTZS2XMsv0bWPWzsyGs7lS1WUFwGEVflaEtYVIX552jbwHHJ6aWCvlwoAdz VAo2QZN4kkz0pLNSUCBv3a1FZLwzCxb0ckXpDAzjwAYM7jb5ccFszOXPoMggW2WmWVTf CKhaAaVmI8tDzgj1FV3RM7PaIcgmQ9Iq1/CaOb38L9vAwhnen0tSOuXqYTRGSJgd1g3Z OFwg== X-Gm-Message-State: APjAAAUq31jPEKQkP7sbg6VHuA0HBvffD8uqRuIEj2TCIlgB6bRzYFKC DKYw6S50GBjoClvtv0Q1DTCF1w== X-Google-Smtp-Source: APXvYqxvhAzv1bko0yd263PCMKxm+WYfpiaKqQPt9qQdxS3Ew8b57ovxy+yFJNX87nDKlRRqTfO12g== X-Received: by 2002:a17:902:a607:: with SMTP id u7mr15577128plq.43.1566075933648; Sat, 17 Aug 2019 14:05:33 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id e189sm9099295pgc.15.2019.08.17.14.05.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Aug 2019 14:05:33 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam Subject: [PATCH net v2 4/6] bnxt_en: Suppress HWRM errors for HWRM_NVM_GET_VARIABLE command Date: Sat, 17 Aug 2019 17:04:50 -0400 Message-Id: <1566075892-30064-5-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> References: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam For newly added NVM parameters, older firmware may not have the support. Suppress the error message to avoid the unncessary error message which is triggered when devlink calls the driver during initialization. Fixes: 782a624d00fa ("bnxt_en: Add bnxt_en initial params table and register it.") Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c index 549c90d3..c05d663 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -98,10 +98,13 @@ static int bnxt_hwrm_nvm_req(struct bnxt *bp, u32 param_id, void *msg, if (idx) req->dimensions = cpu_to_le16(1); - if (req->req_type == cpu_to_le16(HWRM_NVM_SET_VARIABLE)) + if (req->req_type == cpu_to_le16(HWRM_NVM_SET_VARIABLE)) { memcpy(data_addr, buf, bytesize); - - rc = hwrm_send_message(bp, msg, msg_len, HWRM_CMD_TIMEOUT); + rc = hwrm_send_message(bp, msg, msg_len, HWRM_CMD_TIMEOUT); + } else { + rc = hwrm_send_message_silent(bp, msg, msg_len, + HWRM_CMD_TIMEOUT); + } if (!rc && req->req_type == cpu_to_le16(HWRM_NVM_GET_VARIABLE)) memcpy(buf, data_addr, bytesize); From patchwork Sat Aug 17 21:04:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1148785 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=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; 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.b="bNysoYja"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 469t5K6gwBz9sBF for ; Sun, 18 Aug 2019 07:05:57 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726413AbfHQVFh (ORCPT ); Sat, 17 Aug 2019 17:05:37 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:33755 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726198AbfHQVFg (ORCPT ); Sat, 17 Aug 2019 17:05:36 -0400 Received: by mail-pg1-f193.google.com with SMTP id n190so4701917pgn.0 for ; Sat, 17 Aug 2019 14:05:36 -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=mmW8YPtsz/Pq3tMA0Dog6lLToNJ746rqL0VUwvy/URM=; b=bNysoYjahYt4D9P0DRAWz32ecl1vsThBNyEYM1RBlgnHtgchgDRPij48L4LmTbS5Xl x9YvC5PF7QPqTvAE0IgsQKg/YoiHHCi5k139Ia42wu/rDTnppVcVGk7TQCrSbJGNTLik tURemrtGsziatF2he83piGl/cC6cJ7fsWngAU= 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=mmW8YPtsz/Pq3tMA0Dog6lLToNJ746rqL0VUwvy/URM=; b=raRQ6XEIiifEGT6S4x1s6fk/JdVH/Hb+hGsstxHsiW6ffP4K0/t6cBOzQQt35A5ZCM 8DHlgSL0g2IfvM7SEcjKqmpomrL8gU9zcsgSlvKGjsrSJTrGpUCzd5gF6WJihy8upm3s dpTN6+CeBZzbJeZcx0HBSbn5t9WhmrPC2msKkpg1pqKA+I+rmM3ru67pus+XNHvYEfsn biGBERlcptEBUo2cKJJ/VNZSifFaXEsrFZonUjX2QXGIoSyfgLxPL6teFxcI7YaFHiu/ c15Ig0G8Dq2GJo3F4tCN7WakMtSby1rDsiWz2aFDaerorxsbizDaDtH1CG3uSqqFfDfG GX1g== X-Gm-Message-State: APjAAAWgWNY9dthX9mKk3WKca9Jek5Hd0L4m3MBB5sN2/Vb9F1F8vwul NK7caJoNPqeKi4/3HxzjiF32/A== X-Google-Smtp-Source: APXvYqxMJjizASkcQ3d9iyw2jHwBPnoHJRHgo5RrktjjFqefoOxxH78efs39OQSKqqq0gnW8IsqN2g== X-Received: by 2002:a17:90a:1110:: with SMTP id d16mr13870092pja.29.1566075935791; Sat, 17 Aug 2019 14:05:35 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id e189sm9099295pgc.15.2019.08.17.14.05.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Aug 2019 14:05:35 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Venkat Duvvuru Subject: [PATCH net v2 5/6] bnxt_en: Use correct src_fid to determine direction of the flow Date: Sat, 17 Aug 2019 17:04:51 -0400 Message-Id: <1566075892-30064-6-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> References: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Venkat Duvvuru Direction of the flow is determined using src_fid. For an RX flow, src_fid is PF's fid and for TX flow, src_fid is VF's fid. Direction of the flow must be specified, when getting statistics for that flow. Currently, for DECAP flow, direction is determined incorrectly, i.e., direction is initialized as TX for DECAP flow, instead of RX. Because of which, stats are not reported for this DECAP flow, though it is offloaded and there is traffic for that flow, resulting in flow age out. This patch fixes the problem by determining the DECAP flow's direction using correct fid. Set the flow direction in all cases for consistency even if 64-bit flow handle is not used. Fixes: abd43a13525d ("bnxt_en: Support for 64-bit flow handle.") Signed-off-by: Venkat Duvvuru Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c index 6fe4a71..6224c30 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c @@ -1285,9 +1285,7 @@ static int bnxt_tc_add_flow(struct bnxt *bp, u16 src_fid, goto free_node; bnxt_tc_set_src_fid(bp, flow, src_fid); - - if (bp->fw_cap & BNXT_FW_CAP_OVS_64BIT_HANDLE) - bnxt_tc_set_flow_dir(bp, flow, src_fid); + bnxt_tc_set_flow_dir(bp, flow, flow->src_fid); if (!bnxt_tc_can_offload(bp, flow)) { rc = -EOPNOTSUPP; From patchwork Sat Aug 17 21:04:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1148786 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=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; 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.b="aA9rSYS6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 469t5L3tRzz9sN1 for ; Sun, 18 Aug 2019 07:05:58 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726435AbfHQVFk (ORCPT ); Sat, 17 Aug 2019 17:05:40 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:43489 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726198AbfHQVFi (ORCPT ); Sat, 17 Aug 2019 17:05:38 -0400 Received: by mail-pl1-f196.google.com with SMTP id 4so3895179pld.10 for ; Sat, 17 Aug 2019 14:05:38 -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=8FLCheCGFH43zwO48CXL3zwzgYS298RJST523279m94=; b=aA9rSYS6TOnBIzSvxdiqZIfd99kSo1thPe+riy9AEX9ppidSvXgKmpsdCLcHLG0mt/ hmRhGhbgG6uZqYaHt0JpyS97G1B1pSAczSdfEIgKf4i4Od7wPwK5Rve+Axtip7+HlccH pFA+kiYk877d/ne5WZsLW4A1j/Yz0o19xPnNU= 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=8FLCheCGFH43zwO48CXL3zwzgYS298RJST523279m94=; b=ArFaTmQWPyFeHz9qKS6203KHs4icCxk0dlWiYOeMAiftwvZ4I6as53RD50OgVO8kDj U1CyteU8Mkt7i3+Zz7H3YSKaedW+p3wiAfj3OHpw2wZWz3m9+ewnp2fBwKvNE8+eEOAn CrfresV7RSKbyqBF4zAqEhabhUA6Q9cb6Ca6lv6QkY4+dk8vDZsaERlHKZ8tEjt7F8yq AocFpOQG8IZ15ZLjwk4CWA2TmEoBPelxJuzUltw1IsuybDY4OWiTX1s2ZG1sr/j/r9Pn xiad88JvTscts8Gn33HpGk4uuOdw7VWdOL7pRkmwxRHNKmv5wXP3sGztfqTbytSFnGK5 ntTw== X-Gm-Message-State: APjAAAWPcvdzpHHlH9TuUnJ0lkJ/Fs6D8M+vp1ACiAzCh9vRx73XL8wZ j5ZfooPmduBvp/tYcVWCrfgVjgFu1go= X-Google-Smtp-Source: APXvYqyoi0kgYTtih1sRurXx28pyrzJMv1tnd3Nf7oF0eKiXme86gkCBy9Rr9Ulr0VOJFUDNTm+mlA== X-Received: by 2002:a17:902:900a:: with SMTP id a10mr15840202plp.281.1566075937881; Sat, 17 Aug 2019 14:05:37 -0700 (PDT) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id e189sm9099295pgc.15.2019.08.17.14.05.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 17 Aug 2019 14:05:37 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Somnath Kotur Subject: [PATCH net v2 6/6] bnxt_en: Fix to include flow direction in L2 key Date: Sat, 17 Aug 2019 17:04:52 -0400 Message-Id: <1566075892-30064-7-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> References: <1566075892-30064-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Somnath Kotur FW expects the driver to provide unique flow reference handles for Tx or Rx flows. When a Tx flow and an Rx flow end up sharing a reference handle, flow offload does not seem to work. This could happen in the case of 2 flows having their L2 fields wildcarded but in different direction. Fix to incorporate the flow direction as part of the L2 key v2: Move the dir field to the end of the bnxt_tc_l2_key struct to fix the warning reported by kbuild test robot . There is existing code that initializes the structure using nested initializer and will warn with the new u8 field added to the beginning. The structure also packs nicer when this new u8 is added to the end of the structure [MChan]. Fixes: abd43a13525d ("bnxt_en: Support for 64-bit flow handle.") Signed-off-by: Somnath Kotur Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 4 ++-- drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c index 6224c30..dd621f6 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c @@ -1236,7 +1236,7 @@ static int __bnxt_tc_del_flow(struct bnxt *bp, static void bnxt_tc_set_flow_dir(struct bnxt *bp, struct bnxt_tc_flow *flow, u16 src_fid) { - flow->dir = (bp->pf.fw_fid == src_fid) ? BNXT_DIR_RX : BNXT_DIR_TX; + flow->l2_key.dir = (bp->pf.fw_fid == src_fid) ? BNXT_DIR_RX : BNXT_DIR_TX; } static void bnxt_tc_set_src_fid(struct bnxt *bp, struct bnxt_tc_flow *flow, @@ -1405,7 +1405,7 @@ static void bnxt_fill_cfa_stats_req(struct bnxt *bp, * 2. 15th bit of flow_handle must specify the flow * direction (TX/RX). */ - if (flow_node->flow.dir == BNXT_DIR_RX) + if (flow_node->flow.l2_key.dir == BNXT_DIR_RX) handle = CFA_FLOW_INFO_REQ_FLOW_HANDLE_DIR_RX | CFA_FLOW_INFO_REQ_FLOW_HANDLE_MAX_MASK; else diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h index ffec57d..4f05305 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h @@ -23,6 +23,9 @@ struct bnxt_tc_l2_key { __be16 inner_vlan_tci; __be16 ether_type; u8 num_vlans; + u8 dir; +#define BNXT_DIR_RX 1 +#define BNXT_DIR_TX 0 }; struct bnxt_tc_l3_key { @@ -98,9 +101,6 @@ struct bnxt_tc_flow { /* flow applicable to pkts ingressing on this fid */ u16 src_fid; - u8 dir; -#define BNXT_DIR_RX 1 -#define BNXT_DIR_TX 0 struct bnxt_tc_l2_key l2_key; struct bnxt_tc_l2_key l2_mask; struct bnxt_tc_l3_key l3_key;