From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D3FFAA0093 for ; Fri, 22 May 2020 11:41:37 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B37DF1D973; Fri, 22 May 2020 11:41:37 +0200 (CEST) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by dpdk.org (Postfix) with ESMTP id 747431D96F for ; Fri, 22 May 2020 11:41:36 +0200 (CEST) Received: by mail-wm1-f67.google.com with SMTP id u1so8063949wmn.3 for ; Fri, 22 May 2020 02:41:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bGRnYgGkF4EMciOZ6IdbiPgt7O3JHZq114JNOlpWwJ0=; b=tG7/mg1BqvaTKyUrjpww+kwgjlz0wFzSL0HHb+49+59DNulVaJveoZrtTwuV1r8LMX pSJcJbJiQznOu7OEBsTpNjl0lzRnHy562M2EAa3ekQ78Z6jvw4+ufn9tSbuwyqMuinVb Xu5azqI7AmNab3WEKSkt8dN/wRwhq0JX0ESC+IkZJAb/ghcfy5qYmDynn4L8HlfU+C0x XlJigfa56JuHL8CMv1JGID9aJAjf1hDrYlDI+YuMaigRWuqaK/lFxvhaBAjk5kSZ+f7K Vgom0cptXk99cIsNBAncPztS4IrsQ0+vzOWkCwGtoZx89UXcWKlbMl/BnqDUuILr3ebp tBAg== 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:mime-version:content-transfer-encoding; bh=bGRnYgGkF4EMciOZ6IdbiPgt7O3JHZq114JNOlpWwJ0=; b=gTM7f8Pccn/TI4Xj9U+obesvvd2S5ohZEnNxrshDMg7xMm8qTnP6b9kGqhlsEzm80V EaSrGcuxKlh9NqZydQL+68PDG2d8+E0DXaH3zLjOetEV+m86wN4TJKLl2W8ZpnpGb/DW NoGvCDmzY2hLNPLGqKWIy6VOEiWHggcvlkIDe74aeR6u7JDDco17dkR0JKAlXaqA7FQA GHXJn2k/2d5rEJx4i9oEZiocWOUdtF4Jw/nsw0ZygUkeHLpGcgi68Xa7+MTQtd2fsOdX isBc/h34ci25kepH9Zk7yQaijIOR3KQb/bjcfnGJB00ysTFIT+85chOFgucj4HzVWK6M KpNQ== X-Gm-Message-State: AOAM530BlvffenfY6fO/YG+Ls14Mji5nf1eRE40GAS+l+rIu8jwzxRaS R8RxDtYu2K4bxSh0L9OVujg= X-Google-Smtp-Source: ABdhPJyxfH5LGGxufkr9KSD8VScrNwzhHQ+PIxM0CDNloeUQJo2TL3eY5w63xzFtC+BR4yHE4pBElw== X-Received: by 2002:a1c:5fd4:: with SMTP id t203mr13318936wmb.175.1590140496112; Fri, 22 May 2020 02:41:36 -0700 (PDT) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id z7sm9035545wrl.88.2020.05.22.02.41.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2020 02:41:35 -0700 (PDT) From: luca.boccassi@gmail.com To: Kalesh AP Cc: Ajit Khaparde , dpdk stable Date: Fri, 22 May 2020 10:40:03 +0100 Message-Id: <20200522094022.1025696-24-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200522094022.1025696-1-luca.boccassi@gmail.com> References: <20200519130549.112823-214-luca.boccassi@gmail.com> <20200522094022.1025696-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/bnxt: fix storing MAC address twice' has been queued to stable release 19.11.3 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/24/20. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Thanks. Luca Boccassi --- >From 099b9e280c7f85a4345aca8a2e17d9813f0efe27 Mon Sep 17 00:00:00 2001 From: Kalesh AP Date: Thu, 14 May 2020 22:04:36 -0700 Subject: [PATCH] net/bnxt: fix storing MAC address twice [ upstream commit 86421846cc20e963e5b6878724727abd427cd1b6 ] We are maintaining MAC address twice which is unnecessary. This patch removes the copy which helps reduce size of bnxt structure. Fixes: b7778e8a1c00 ("net/bnxt: refactor to properly allocate resources for PF/VF") Signed-off-by: Kalesh AP Signed-off-by: Ajit Khaparde --- drivers/net/bnxt/bnxt.h | 3 ++- drivers/net/bnxt/bnxt_ethdev.c | 11 ++++------- drivers/net/bnxt/bnxt_hwrm.c | 8 ++++++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 995e5980a6..404d58a037 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -527,6 +527,7 @@ struct bnxt { #define BNXT_FLAG_FW_CAP_ONE_STEP_TX_TS BIT(22) #define BNXT_FLAG_ADV_FLOW_MGMT BIT(23) #define BNXT_FLAG_NPAR_PF BIT(24) +#define BNXT_FLAG_DFLT_MAC_SET BIT(26) #define BNXT_PF(bp) (!((bp)->flags & BNXT_FLAG_VF)) #define BNXT_VF(bp) ((bp)->flags & BNXT_FLAG_VF) #define BNXT_NPAR(bp) ((bp)->flags & BNXT_FLAG_NPAR_PF) @@ -539,6 +540,7 @@ struct bnxt { #define BNXT_STINGRAY(bp) ((bp)->flags & BNXT_FLAG_STINGRAY) #define BNXT_HAS_NQ(bp) BNXT_CHIP_THOR(bp) #define BNXT_HAS_RING_GRPS(bp) (!BNXT_CHIP_THOR(bp)) +#define BNXT_HAS_DFLT_MAC_SET(bp) ((bp)->flags & BNXT_FLAG_DFLT_MAC_SET) uint32_t fw_cap; #define BNXT_FW_CAP_HOT_RESET BIT(0) @@ -621,7 +623,6 @@ struct bnxt { uint8_t max_q; uint16_t fw_fid; - uint8_t dflt_mac_addr[RTE_ETHER_ADDR_LEN]; uint16_t max_rsscos_ctx; uint16_t max_cp_rings; uint16_t max_tx_rings; diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index aa6ceff13c..f1bd575356 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -4611,7 +4611,7 @@ static int bnxt_setup_mac_addr(struct rte_eth_dev *eth_dev) return -ENOMEM; } - if (bnxt_check_zero_bytes(bp->dflt_mac_addr, RTE_ETHER_ADDR_LEN)) { + if (!BNXT_HAS_DFLT_MAC_SET(bp)) { if (BNXT_PF(bp)) return -EINVAL; @@ -4624,14 +4624,11 @@ static int bnxt_setup_mac_addr(struct rte_eth_dev *eth_dev) bp->mac_addr[3], bp->mac_addr[4], bp->mac_addr[5]); rc = bnxt_hwrm_set_mac(bp); - if (!rc) - memcpy(&bp->eth_dev->data->mac_addrs[0], bp->mac_addr, - RTE_ETHER_ADDR_LEN); - return rc; + if (rc) + return rc; } /* Copy the permanent MAC from the FUNC_QCAPS response */ - memcpy(bp->mac_addr, bp->dflt_mac_addr, RTE_ETHER_ADDR_LEN); memcpy(ð_dev->data->mac_addrs[0], bp->mac_addr, RTE_ETHER_ADDR_LEN); return rc; @@ -4642,7 +4639,7 @@ static int bnxt_restore_dflt_mac(struct bnxt *bp) int rc = 0; /* MAC is already configured in FW */ - if (!bnxt_check_zero_bytes(bp->dflt_mac_addr, RTE_ETHER_ADDR_LEN)) + if (BNXT_HAS_DFLT_MAC_SET(bp)) return 0; /* Restore the old MAC configured */ diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 9dad6bd319..33f352fade 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -646,7 +646,12 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp) } bp->fw_fid = rte_le_to_cpu_32(resp->fid); - memcpy(bp->dflt_mac_addr, &resp->mac_address, RTE_ETHER_ADDR_LEN); + if (!bnxt_check_zero_bytes(resp->mac_address, RTE_ETHER_ADDR_LEN)) { + bp->flags |= BNXT_FLAG_DFLT_MAC_SET; + memcpy(bp->mac_addr, &resp->mac_address, RTE_ETHER_ADDR_LEN); + } else { + bp->flags &= ~BNXT_FLAG_DFLT_MAC_SET; + } bp->max_rsscos_ctx = rte_le_to_cpu_16(resp->max_rsscos_ctx); bp->max_cp_rings = rte_le_to_cpu_16(resp->max_cmpl_rings); bp->max_tx_rings = rte_le_to_cpu_16(resp->max_tx_rings); @@ -4861,7 +4866,6 @@ int bnxt_hwrm_set_mac(struct bnxt *bp) HWRM_CHECK_RESULT(); - memcpy(bp->dflt_mac_addr, bp->mac_addr, RTE_ETHER_ADDR_LEN); HWRM_UNLOCK(); return rc; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-05-22 10:37:40.141748846 +0100 +++ 0024-net-bnxt-fix-storing-MAC-address-twice.patch 2020-05-22 10:37:39.136412857 +0100 @@ -1,13 +1,14 @@ -From 86421846cc20e963e5b6878724727abd427cd1b6 Mon Sep 17 00:00:00 2001 +From 099b9e280c7f85a4345aca8a2e17d9813f0efe27 Mon Sep 17 00:00:00 2001 From: Kalesh AP Date: Thu, 14 May 2020 22:04:36 -0700 Subject: [PATCH] net/bnxt: fix storing MAC address twice +[ upstream commit 86421846cc20e963e5b6878724727abd427cd1b6 ] + We are maintaining MAC address twice which is unnecessary. This patch removes the copy which helps reduce size of bnxt structure. Fixes: b7778e8a1c00 ("net/bnxt: refactor to properly allocate resources for PF/VF") -Cc: stable@dpdk.org Signed-off-by: Kalesh AP Signed-off-by: Ajit Khaparde @@ -18,26 +19,26 @@ 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h -index 4093a2f01e..403b23f356 100644 +index 995e5980a6..404d58a037 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h -@@ -560,6 +560,7 @@ struct bnxt { - #define BNXT_FLAG_FC_THREAD BIT(23) - #define BNXT_FLAG_RX_VECTOR_PKT_MODE BIT(24) - #define BNXT_FLAG_FLOW_XSTATS_EN BIT(25) +@@ -527,6 +527,7 @@ struct bnxt { + #define BNXT_FLAG_FW_CAP_ONE_STEP_TX_TS BIT(22) + #define BNXT_FLAG_ADV_FLOW_MGMT BIT(23) + #define BNXT_FLAG_NPAR_PF BIT(24) +#define BNXT_FLAG_DFLT_MAC_SET BIT(26) #define BNXT_PF(bp) (!((bp)->flags & BNXT_FLAG_VF)) #define BNXT_VF(bp) ((bp)->flags & BNXT_FLAG_VF) #define BNXT_NPAR(bp) ((bp)->flags & BNXT_FLAG_NPAR_PF) -@@ -573,6 +574,7 @@ struct bnxt { +@@ -539,6 +540,7 @@ struct bnxt { + #define BNXT_STINGRAY(bp) ((bp)->flags & BNXT_FLAG_STINGRAY) #define BNXT_HAS_NQ(bp) BNXT_CHIP_THOR(bp) #define BNXT_HAS_RING_GRPS(bp) (!BNXT_CHIP_THOR(bp)) - #define BNXT_FLOW_XSTATS_EN(bp) ((bp)->flags & BNXT_FLAG_FLOW_XSTATS_EN) +#define BNXT_HAS_DFLT_MAC_SET(bp) ((bp)->flags & BNXT_FLAG_DFLT_MAC_SET) uint32_t fw_cap; #define BNXT_FW_CAP_HOT_RESET BIT(0) -@@ -658,7 +660,6 @@ struct bnxt { +@@ -621,7 +623,6 @@ struct bnxt { uint8_t max_q; uint16_t fw_fid; @@ -46,10 +47,10 @@ uint16_t max_cp_rings; uint16_t max_tx_rings; diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c -index 4d64a98351..77492f89c7 100644 +index aa6ceff13c..f1bd575356 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c -@@ -4980,7 +4980,7 @@ static int bnxt_setup_mac_addr(struct rte_eth_dev *eth_dev) +@@ -4611,7 +4611,7 @@ static int bnxt_setup_mac_addr(struct rte_eth_dev *eth_dev) return -ENOMEM; } @@ -58,7 +59,7 @@ if (BNXT_PF(bp)) return -EINVAL; -@@ -4993,14 +4993,11 @@ static int bnxt_setup_mac_addr(struct rte_eth_dev *eth_dev) +@@ -4624,14 +4624,11 @@ static int bnxt_setup_mac_addr(struct rte_eth_dev *eth_dev) bp->mac_addr[3], bp->mac_addr[4], bp->mac_addr[5]); rc = bnxt_hwrm_set_mac(bp); @@ -75,7 +76,7 @@ memcpy(ð_dev->data->mac_addrs[0], bp->mac_addr, RTE_ETHER_ADDR_LEN); return rc; -@@ -5011,7 +5008,7 @@ static int bnxt_restore_dflt_mac(struct bnxt *bp) +@@ -4642,7 +4639,7 @@ static int bnxt_restore_dflt_mac(struct bnxt *bp) int rc = 0; /* MAC is already configured in FW */ @@ -85,10 +86,10 @@ /* Restore the old MAC configured */ diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c -index a41d77669b..c1798b59d1 100644 +index 9dad6bd319..33f352fade 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c -@@ -731,7 +731,12 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp) +@@ -646,7 +646,12 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp) } bp->fw_fid = rte_le_to_cpu_32(resp->fid); @@ -102,7 +103,7 @@ bp->max_rsscos_ctx = rte_le_to_cpu_16(resp->max_rsscos_ctx); bp->max_cp_rings = rte_le_to_cpu_16(resp->max_cmpl_rings); bp->max_tx_rings = rte_le_to_cpu_16(resp->max_tx_rings); -@@ -5027,7 +5032,6 @@ int bnxt_hwrm_set_mac(struct bnxt *bp) +@@ -4861,7 +4866,6 @@ int bnxt_hwrm_set_mac(struct bnxt *bp) HWRM_CHECK_RESULT();