[dpdk-stable] patch 'net/bnxt: set a VNIC as default only once' has been queued to LTS release 16.11.9
Luca Boccassi
bluca at debian.org
Mon Oct 15 13:51:36 CEST 2018
Hi,
FYI, your patch has been queued to LTS release 16.11.9
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 10/17/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Luca Boccassi
---
>From 83b150cc0296971f1fb8e1e93165771891f8dca1 Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde at broadcom.com>
Date: Fri, 28 Sep 2018 19:00:03 -0700
Subject: [PATCH] net/bnxt: set a VNIC as default only once
[ upstream commit 5bf10cdb67db5ee7308cc752b51f0f12dcdcb0e8 ]
If a vnic is configured as default and the setting has not changed,
there is no need to issue this setting again to the FW.
Fixes: db678d5c2b54 ("net/bnxt: add HWRM VNIC configure")
Signed-off-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
---
drivers/net/bnxt/bnxt.h | 1 +
drivers/net/bnxt/bnxt_hwrm.c | 9 ++++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
index b934605efa..dc867b12e8 100644
--- a/drivers/net/bnxt/bnxt.h
+++ b/drivers/net/bnxt/bnxt.h
@@ -132,6 +132,7 @@ struct bnxt {
uint32_t flags;
#define BNXT_FLAG_REGISTERED (1 << 0)
#define BNXT_FLAG_VF (1 << 1)
+#define BNXT_FLAG_DFLT_VNIC_SET (1 << 12)
#define BNXT_PF(bp) (!((bp)->flags & BNXT_FLAG_VF))
#define BNXT_VF(bp) ((bp)->flags & BNXT_FLAG_VF)
#define BNXT_NPAR_ENABLED(bp) ((bp)->port_partition_type)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index f4e4e23fcd..b86a7e227f 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -900,8 +900,11 @@ int bnxt_hwrm_vnic_cfg(struct bnxt *bp, struct bnxt_vnic_info *vnic)
req.lb_rule = rte_cpu_to_le_16(0xffff);
req.mru = rte_cpu_to_le_16(bp->eth_dev->data->mtu + ETHER_HDR_LEN +
ETHER_CRC_LEN + VLAN_TAG_SIZE);
- if (vnic->func_default)
+ /* Configure default VNIC only once. */
+ if (vnic->func_default && !(bp->flags & BNXT_FLAG_DFLT_VNIC_SET)) {
req.flags = 1;
+ bp->flags |= BNXT_FLAG_DFLT_VNIC_SET;
+ }
if (vnic->vlan_strip)
req.flags |=
rte_cpu_to_le_32(HWRM_VNIC_CFG_INPUT_FLAGS_VLAN_STRIP_MODE);
@@ -978,6 +981,10 @@ int bnxt_hwrm_vnic_free(struct bnxt *bp, struct bnxt_vnic_info *vnic)
HWRM_CHECK_RESULT;
vnic->fw_vnic_id = INVALID_HW_RING_ID;
+ /* Configure default VNIC again if necessary. */
+ if (vnic->func_default && (bp->flags & BNXT_FLAG_DFLT_VNIC_SET))
+ bp->flags &= ~BNXT_FLAG_DFLT_VNIC_SET;
+
return rc;
}
--
2.19.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-10-15 12:48:35.019644089 +0100
+++ 0016-net-bnxt-set-a-VNIC-as-default-only-once.patch 2018-10-15 12:48:34.577096017 +0100
@@ -1,13 +1,14 @@
-From 5bf10cdb67db5ee7308cc752b51f0f12dcdcb0e8 Mon Sep 17 00:00:00 2001
+From 83b150cc0296971f1fb8e1e93165771891f8dca1 Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde at broadcom.com>
Date: Fri, 28 Sep 2018 19:00:03 -0700
Subject: [PATCH] net/bnxt: set a VNIC as default only once
+[ upstream commit 5bf10cdb67db5ee7308cc752b51f0f12dcdcb0e8 ]
+
If a vnic is configured as default and the setting has not changed,
there is no need to issue this setting again to the FW.
Fixes: db678d5c2b54 ("net/bnxt: add HWRM VNIC configure")
-Cc: stable at dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
---
@@ -16,37 +17,36 @@
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
-index 75b7215ce4..f75b0ad3c5 100644
+index b934605efa..dc867b12e8 100644
--- a/drivers/net/bnxt/bnxt.h
+++ b/drivers/net/bnxt/bnxt.h
-@@ -261,6 +261,7 @@ struct bnxt {
- #define BNXT_FLAG_EXT_TX_PORT_STATS (1 << 9)
- #define BNXT_FLAG_KONG_MB_EN (1 << 10)
- #define BNXT_FLAG_TRUSTED_VF_EN (1 << 11)
+@@ -132,6 +132,7 @@ struct bnxt {
+ uint32_t flags;
+ #define BNXT_FLAG_REGISTERED (1 << 0)
+ #define BNXT_FLAG_VF (1 << 1)
+#define BNXT_FLAG_DFLT_VNIC_SET (1 << 12)
- #define BNXT_FLAG_NEW_RM (1 << 30)
- #define BNXT_FLAG_INIT_DONE (1 << 31)
#define BNXT_PF(bp) (!((bp)->flags & BNXT_FLAG_VF))
+ #define BNXT_VF(bp) ((bp)->flags & BNXT_FLAG_VF)
+ #define BNXT_NPAR_ENABLED(bp) ((bp)->port_partition_type)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
-index b605659edb..38698e214c 100644
+index f4e4e23fcd..b86a7e227f 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
-@@ -1460,9 +1460,12 @@ int bnxt_hwrm_vnic_cfg(struct bnxt *bp, struct bnxt_vnic_info *vnic)
- req.cos_rule = rte_cpu_to_le_16(vnic->cos_rule);
- req.lb_rule = rte_cpu_to_le_16(vnic->lb_rule);
- req.mru = rte_cpu_to_le_16(vnic->mru);
+@@ -900,8 +900,11 @@ int bnxt_hwrm_vnic_cfg(struct bnxt *bp, struct bnxt_vnic_info *vnic)
+ req.lb_rule = rte_cpu_to_le_16(0xffff);
+ req.mru = rte_cpu_to_le_16(bp->eth_dev->data->mtu + ETHER_HDR_LEN +
+ ETHER_CRC_LEN + VLAN_TAG_SIZE);
- if (vnic->func_default)
+ /* Configure default VNIC only once. */
+ if (vnic->func_default && !(bp->flags & BNXT_FLAG_DFLT_VNIC_SET)) {
- req.flags |=
- rte_cpu_to_le_32(HWRM_VNIC_CFG_INPUT_FLAGS_DEFAULT);
+ req.flags = 1;
+ bp->flags |= BNXT_FLAG_DFLT_VNIC_SET;
+ }
if (vnic->vlan_strip)
req.flags |=
rte_cpu_to_le_32(HWRM_VNIC_CFG_INPUT_FLAGS_VLAN_STRIP_MODE);
-@@ -1600,6 +1603,10 @@ int bnxt_hwrm_vnic_free(struct bnxt *bp, struct bnxt_vnic_info *vnic)
- HWRM_UNLOCK();
+@@ -978,6 +981,10 @@ int bnxt_hwrm_vnic_free(struct bnxt *bp, struct bnxt_vnic_info *vnic)
+ HWRM_CHECK_RESULT;
vnic->fw_vnic_id = INVALID_HW_RING_ID;
+ /* Configure default VNIC again if necessary. */
More information about the stable
mailing list