patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2
@ 2021-05-10 15:59 Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'test/mem: fix page size for external memory' " Xueming Li
                   ` (227 more replies)
  0 siblings, 228 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Nithin Dabilpuram
  Cc: Luca Boccassi, Anatoly Burakov, David Christensen, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7f904ea0c6725fabfe16812f3d36d250ec3981c2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7f904ea0c6725fabfe16812f3d36d250ec3981c2 Mon Sep 17 00:00:00 2001
From: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date: Fri, 15 Jan 2021 13:02:42 +0530
Subject: [PATCH] vfio: fix DMA mapping granularity for IOVA as VA
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c13ca4e81cac591904c893a65ffbbf446af0268a ]

Partial unmapping is not supported for VFIO IOMMU type1
by kernel. Though kernel gives return as zero, the unmapped size
returned will not be same as expected. So check for
returned unmap size and return error.

For IOVA as PA, DMA mapping is already at memseg size
granularity. Do the same even for IOVA as VA mode as
DMA map/unmap triggered by heap allocations,
maintain granularity of memseg page size so that heap
expansion and contraction does not have this issue.

For user requested DMA map/unmap disallow partial unmapping
for VFIO type1.

Fixes: 73a639085938 ("vfio: allow to map other memory regions")

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: David Christensen <drc@linux.vnet.ibm.com>
---
 lib/librte_eal/linux/eal_vfio.c | 34 +++++++++++++++++++++++++++------
 lib/librte_eal/linux/eal_vfio.h |  1 +
 2 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/lib/librte_eal/linux/eal_vfio.c b/lib/librte_eal/linux/eal_vfio.c
index 64b134d530..b15b75882b 100644
--- a/lib/librte_eal/linux/eal_vfio.c
+++ b/lib/librte_eal/linux/eal_vfio.c
@@ -70,6 +70,7 @@ static const struct vfio_iommu_type iommu_types[] = {
 	{
 		.type_id = RTE_VFIO_TYPE1,
 		.name = "Type 1",
+		.partial_unmap = false,
 		.dma_map_func = &vfio_type1_dma_map,
 		.dma_user_map_func = &vfio_type1_dma_mem_map
 	},
@@ -77,6 +78,7 @@ static const struct vfio_iommu_type iommu_types[] = {
 	{
 		.type_id = RTE_VFIO_SPAPR,
 		.name = "sPAPR",
+		.partial_unmap = true,
 		.dma_map_func = &vfio_spapr_dma_map,
 		.dma_user_map_func = &vfio_spapr_dma_mem_map
 	},
@@ -84,6 +86,7 @@ static const struct vfio_iommu_type iommu_types[] = {
 	{
 		.type_id = RTE_VFIO_NOIOMMU,
 		.name = "No-IOMMU",
+		.partial_unmap = true,
 		.dma_map_func = &vfio_noiommu_dma_map,
 		.dma_user_map_func = &vfio_noiommu_dma_mem_map
 	},
@@ -526,12 +529,19 @@ vfio_mem_event_callback(enum rte_mem_event type, const void *addr, size_t len,
 	/* for IOVA as VA mode, no need to care for IOVA addresses */
 	if (rte_eal_iova_mode() == RTE_IOVA_VA && msl->external == 0) {
 		uint64_t vfio_va = (uint64_t)(uintptr_t)addr;
-		if (type == RTE_MEM_EVENT_ALLOC)
-			vfio_dma_mem_map(default_vfio_cfg, vfio_va, vfio_va,
-					len, 1);
-		else
-			vfio_dma_mem_map(default_vfio_cfg, vfio_va, vfio_va,
-					len, 0);
+		uint64_t page_sz = msl->page_sz;
+
+		/* Maintain granularity of DMA map/unmap to memseg size */
+		for (; cur_len < len; cur_len += page_sz) {
+			if (type == RTE_MEM_EVENT_ALLOC)
+				vfio_dma_mem_map(default_vfio_cfg, vfio_va,
+						 vfio_va, page_sz, 1);
+			else
+				vfio_dma_mem_map(default_vfio_cfg, vfio_va,
+						 vfio_va, page_sz, 0);
+			vfio_va += page_sz;
+		}
+
 		return;
 	}
 
@@ -1348,6 +1358,12 @@ vfio_type1_dma_mem_map(int vfio_container_fd, uint64_t vaddr, uint64_t iova,
 			RTE_LOG(ERR, EAL, "  cannot clear DMA remapping, error %i (%s)\n",
 					errno, strerror(errno));
 			return -1;
+		} else if (dma_unmap.size != len) {
+			RTE_LOG(ERR, EAL, "  unexpected size %"PRIu64" of DMA "
+				"remapping cleared instead of %"PRIu64"\n",
+				(uint64_t)dma_unmap.size, len);
+			rte_errno = EIO;
+			return -1;
 		}
 	}
 
@@ -1823,6 +1839,12 @@ container_dma_unmap(struct vfio_config *vfio_cfg, uint64_t vaddr, uint64_t iova,
 		/* we're partially unmapping a previously mapped region, so we
 		 * need to split entry into two.
 		 */
+		if (!vfio_cfg->vfio_iommu_type->partial_unmap) {
+			RTE_LOG(DEBUG, EAL, "DMA partial unmap unsupported\n");
+			rte_errno = ENOTSUP;
+			ret = -1;
+			goto out;
+		}
 		if (user_mem_maps->n_maps == VFIO_MAX_USER_MEM_MAPS) {
 			RTE_LOG(ERR, EAL, "Not enough space to store partial mapping\n");
 			rte_errno = ENOMEM;
diff --git a/lib/librte_eal/linux/eal_vfio.h b/lib/librte_eal/linux/eal_vfio.h
index cb2d35fb12..6ebaca6a0c 100644
--- a/lib/librte_eal/linux/eal_vfio.h
+++ b/lib/librte_eal/linux/eal_vfio.h
@@ -113,6 +113,7 @@ typedef int (*vfio_dma_user_func_t)(int fd, uint64_t vaddr, uint64_t iova,
 struct vfio_iommu_type {
 	int type_id;
 	const char *name;
+	bool partial_unmap;
 	vfio_dma_user_func_t dma_user_map_func;
 	vfio_dma_func_t dma_map_func;
 };
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.774717800 +0800
+++ 0002-vfio-fix-DMA-mapping-granularity-for-IOVA-as-VA.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From c13ca4e81cac591904c893a65ffbbf446af0268a Mon Sep 17 00:00:00 2001
+From 7f904ea0c6725fabfe16812f3d36d250ec3981c2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c13ca4e81cac591904c893a65ffbbf446af0268a ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'test/mem: fix page size for external memory' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'power: remove duplicated symbols from map file' " Xueming Li
                   ` (226 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Nithin Dabilpuram; +Cc: Luca Boccassi, Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/e41a908c66b456ca1b97af64ea78a9f5a79fc878

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e41a908c66b456ca1b97af64ea78a9f5a79fc878 Mon Sep 17 00:00:00 2001
From: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date: Fri, 15 Jan 2021 13:02:43 +0530
Subject: [PATCH] test/mem: fix page size for external memory
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 52db57db0536bf20cbb50464ca4c18b0c9fde4e4 ]

Currently external memory test uses 4K page size.
VFIO DMA mapping works only with system page granularity.

Earlier it was working because all the contiguous mappings
were coalesced and mapped in one-go which ended up becoming
a lot bigger page. Now that VFIO DMA mappings both in IOVA as VA
and IOVA as PA mode, are being done at memseg list granularity,
we need to use system page size.

Fixes: b270daa43b3d ("test: support external memory")

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 app/test/test_external_mem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/test/test_external_mem.c b/app/test/test_external_mem.c
index 7eb81f6448..5edf88b9f6 100644
--- a/app/test/test_external_mem.c
+++ b/app/test/test_external_mem.c
@@ -13,6 +13,7 @@
 #include <rte_common.h>
 #include <rte_debug.h>
 #include <rte_eal.h>
+#include <rte_eal_paging.h>
 #include <rte_errno.h>
 #include <rte_malloc.h>
 #include <rte_ring.h>
@@ -532,8 +533,8 @@ fail:
 static int
 test_external_mem(void)
 {
+	size_t pgsz = rte_mem_page_size();
 	size_t len = EXTERNAL_MEM_SZ;
-	size_t pgsz = RTE_PGSIZE_4K;
 	rte_iova_t iova[len / pgsz];
 	void *addr;
 	int ret, n_pages;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.801750300 +0800
+++ 0003-test-mem-fix-page-size-for-external-memory.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From 52db57db0536bf20cbb50464ca4c18b0c9fde4e4 Mon Sep 17 00:00:00 2001
+From e41a908c66b456ca1b97af64ea78a9f5a79fc878 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 52db57db0536bf20cbb50464ca4c18b0c9fde4e4 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'power: remove duplicated symbols from map file' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'test/mem: fix page size for external memory' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'vfio: fix API description' " Xueming Li
                   ` (225 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Luca Boccassi, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/b8bde7fa4b1a6303ce7a017031885ea4e72d83e5

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b8bde7fa4b1a6303ce7a017031885ea4e72d83e5 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Thu, 25 Feb 2021 10:54:49 +0000
Subject: [PATCH] power: remove duplicated symbols from map file
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e79b0efd989a077d0193e7dbf47f966f65d0c9dc ]

This is causing build error, like:
https://travis-ci.com/github/ovsrobot/dpdk/jobs/482121104

Also '@internal' marker removed from doxygen comment, since public API
should not be internal.
Experimental tag removed from 'rte_power_guest_channel_send_msg()'

Fixes: 4d3892dcd77b ("power: make channel message functions public")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_power/rte_power_guest_channel.h | 8 --------
 lib/librte_power/version.map               | 2 --
 2 files changed, 10 deletions(-)

diff --git a/lib/librte_power/rte_power_guest_channel.h b/lib/librte_power/rte_power_guest_channel.h
index ed4fbfdcd3..b5de1bd243 100644
--- a/lib/librte_power/rte_power_guest_channel.h
+++ b/lib/librte_power/rte_power_guest_channel.h
@@ -119,11 +119,6 @@ struct rte_power_channel_packet_caps_list {
 };
 
 /**
- * @internal
- *
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Send a message contained in pkt over the Virtio-Serial to the host endpoint.
  *
  * @param pkt
@@ -136,13 +131,10 @@ struct rte_power_channel_packet_caps_list {
  *  - 0 on success.
  *  - Negative on error.
  */
-__rte_experimental
 int rte_power_guest_channel_send_msg(struct rte_power_channel_packet *pkt,
 			unsigned int lcore_id);
 
 /**
- * @internal
- *
  * @warning
  * @b EXPERIMENTAL: this API may change without prior notice.
  *
diff --git a/lib/librte_power/version.map b/lib/librte_power/version.map
index 13f0af3b2d..7e7baafbf1 100644
--- a/lib/librte_power/version.map
+++ b/lib/librte_power/version.map
@@ -36,6 +36,4 @@ EXPERIMENTAL {
 	rte_power_poll_stat_update;
 
 	# added in 21.02
-	rte_power_guest_channel_receive_msg;
-	rte_power_guest_channel_send_msg;
 };
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.828154600 +0800
+++ 0004-power-remove-duplicated-symbols-from-map-file.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From e79b0efd989a077d0193e7dbf47f966f65d0c9dc Mon Sep 17 00:00:00 2001
+From b8bde7fa4b1a6303ce7a017031885ea4e72d83e5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e79b0efd989a077d0193e7dbf47f966f65d0c9dc ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -54 +56 @@
-index 3ba9390241..b004e3e4a9 100644
+index 13f0af3b2d..7e7baafbf1 100644
@@ -57 +59,3 @@
-@@ -38,6 +38,4 @@ EXPERIMENTAL {
+@@ -36,6 +36,4 @@ EXPERIMENTAL {
+ 	rte_power_poll_stat_update;
+ 
@@ -59,2 +62,0 @@
- 	rte_power_ethdev_pmgmt_queue_disable;
- 	rte_power_ethdev_pmgmt_queue_enable;

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'vfio: fix API description' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'test/mem: fix page size for external memory' " Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'power: remove duplicated symbols from map file' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'fbarray: fix log message on truncation error' " Xueming Li
                   ` (224 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Yunjian Wang; +Cc: Luca Boccassi, Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/db950ecec21d4a82f57657e45bf7e2aa9daf2e57

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From db950ecec21d4a82f57657e45bf7e2aa9daf2e57 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Sat, 6 Jun 2020 17:17:20 +0800
Subject: [PATCH] vfio: fix API description
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 8d63961fc7137cab823f85a50ee82779792f21e4 ]

Fix few comments and add detailed comments for return value.

Fixes: 279b581c897d ("vfio: expose functions")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/include/rte_vfio.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/librte_eal/include/rte_vfio.h b/lib/librte_eal/include/rte_vfio.h
index 20ed8c45a9..e7a87454be 100644
--- a/lib/librte_eal/include/rte_vfio.h
+++ b/lib/librte_eal/include/rte_vfio.h
@@ -156,7 +156,7 @@ int rte_vfio_enable(const char *modname);
  *   kernel module name.
  *
  * @return
- *   !0 if true.
+ *   1 if true.
  *   0 otherwise.
  */
 int rte_vfio_is_enabled(const char *modname);
@@ -168,8 +168,9 @@ int rte_vfio_is_enabled(const char *modname);
  * an error on BSD.
  *
  * @return
- *   !0 if true.
- *   0 otherwise.
+ *   1 if true.
+ *   0 if false.
+ *   <0 for errors.
  */
 int rte_vfio_noiommu_is_enabled(void);
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.853353700 +0800
+++ 0005-vfio-fix-API-description.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From 8d63961fc7137cab823f85a50ee82779792f21e4 Mon Sep 17 00:00:00 2001
+From db950ecec21d4a82f57657e45bf7e2aa9daf2e57 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 8d63961fc7137cab823f85a50ee82779792f21e4 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'fbarray: fix log message on truncation error' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (2 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'vfio: fix API description' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/failsafe: fix RSS hash offload reporting' " Xueming Li
                   ` (223 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Luca Boccassi, Andrew Boyer, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/4f140c14a27906881c4644b5afdeda83146ea9fd

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4f140c14a27906881c4644b5afdeda83146ea9fd Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Fri, 19 Feb 2021 17:54:45 +0000
Subject: [PATCH] fbarray: fix log message on truncation error
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 2a2ebeab9e3309ab332baefdbcc1caa7e62ecc82 ]

When file truncation fails, the log message attempts to print a path of
file we failed to truncate, but this path was never set to anything and,
what's worse, was uninitialized. Fix it by passing path from the caller.

Coverity issue: 366122
Fixes: c44d09811b40 ("eal: add shared indexed file-backed array")

Reported-by: Andrew Boyer <aboyer@pensando.io>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_eal/common/eal_common_fbarray.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_fbarray.c b/lib/librte_eal/common/eal_common_fbarray.c
index d974f3dab7..592ec58594 100644
--- a/lib/librte_eal/common/eal_common_fbarray.c
+++ b/lib/librte_eal/common/eal_common_fbarray.c
@@ -81,9 +81,8 @@ get_used_mask(void *data, unsigned int elt_sz, unsigned int len)
 }
 
 static int
-resize_and_map(int fd, void *addr, size_t len)
+resize_and_map(int fd, const char *path, void *addr, size_t len)
 {
-	char path[PATH_MAX];
 	void *map_addr;
 
 	if (eal_file_truncate(fd, len)) {
@@ -792,7 +791,7 @@ rte_fbarray_init(struct rte_fbarray *arr, const char *name, unsigned int len,
 		if (eal_file_lock(fd, EAL_FLOCK_SHARED, EAL_FLOCK_RETURN))
 			goto fail;
 
-		if (resize_and_map(fd, data, mmap_len))
+		if (resize_and_map(fd, path, data, mmap_len))
 			goto fail;
 	}
 	ma->addr = data;
@@ -895,7 +894,7 @@ rte_fbarray_attach(struct rte_fbarray *arr)
 	if (eal_file_lock(fd, EAL_FLOCK_SHARED, EAL_FLOCK_RETURN))
 		goto fail;
 
-	if (resize_and_map(fd, data, mmap_len))
+	if (resize_and_map(fd, path, data, mmap_len))
 		goto fail;
 
 	/* store our new memory area */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.877953200 +0800
+++ 0006-fbarray-fix-log-message-on-truncation-error.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From 2a2ebeab9e3309ab332baefdbcc1caa7e62ecc82 Mon Sep 17 00:00:00 2001
+From 4f140c14a27906881c4644b5afdeda83146ea9fd Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 2a2ebeab9e3309ab332baefdbcc1caa7e62ecc82 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/failsafe: fix RSS hash offload reporting' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (3 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'fbarray: fix log message on truncation error' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/failsafe: report minimum and maximum MTU' " Xueming Li
                   ` (222 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Luca Boccassi, Gaetan Rivet, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/9da42b8f936faaa9daec7ad4872785f789b78273

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 9da42b8f936faaa9daec7ad4872785f789b78273 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Date: Tue, 22 Dec 2020 11:00:04 +0300
Subject: [PATCH] net/failsafe: fix RSS hash offload reporting
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit f971b7d3013d53a5d911b8c5cf51ab55946253b0 ]

If sub-devices support RSS hash offload, the offload should be
reported by the failsafe device since handling is transparent
from failsafe point of view.

Fixes: 5d308972954c ("ethdev: add mbuf RSS update as an offload")

Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Gaetan Rivet <grive@u256.net>
---
 drivers/net/failsafe/failsafe_ops.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 492047f587..9946b696f3 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -1192,7 +1192,8 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
 		DEV_RX_OFFLOAD_SCATTER |
 		DEV_RX_OFFLOAD_TIMESTAMP |
-		DEV_RX_OFFLOAD_SECURITY;
+		DEV_RX_OFFLOAD_SECURITY |
+		DEV_RX_OFFLOAD_RSS_HASH;
 
 	infos->rx_queue_offload_capa =
 		DEV_RX_OFFLOAD_VLAN_STRIP |
@@ -1209,7 +1210,8 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
 		DEV_RX_OFFLOAD_SCATTER |
 		DEV_RX_OFFLOAD_TIMESTAMP |
-		DEV_RX_OFFLOAD_SECURITY;
+		DEV_RX_OFFLOAD_SECURITY |
+		DEV_RX_OFFLOAD_RSS_HASH;
 
 	infos->tx_offload_capa =
 		DEV_TX_OFFLOAD_MULTI_SEGS |
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.902135100 +0800
+++ 0007-net-failsafe-fix-RSS-hash-offload-reporting.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From f971b7d3013d53a5d911b8c5cf51ab55946253b0 Mon Sep 17 00:00:00 2001
+From 9da42b8f936faaa9daec7ad4872785f789b78273 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit f971b7d3013d53a5d911b8c5cf51ab55946253b0 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 2b6ca9080d..966cfd2dba 100644
+index 492047f587..9946b696f3 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/failsafe: report minimum and maximum MTU' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (4 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/failsafe: fix RSS hash offload reporting' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix external buffer pool registration for Rx queue' " Xueming Li
                   ` (221 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Luca Boccassi, Gaetan Rivet, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7fe1e5cdb90fef782d2752ba1992edaf65fc49f4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7fe1e5cdb90fef782d2752ba1992edaf65fc49f4 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Date: Tue, 22 Dec 2020 11:51:49 +0300
Subject: [PATCH] net/failsafe: report minimum and maximum MTU
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c0396a48b526eb3d38c941a7e7d63d360a789d16 ]

Take minimum and maximum MTU values for subdevices and
report maximum of minimums and minimum of maximums.

Fixes: ad97ceece12c ("ethdev: add min/max MTU to device info")

Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Gaetan Rivet <grive@u256.net>
---
 drivers/net/failsafe/failsafe_ops.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 9946b696f3..c9c38258a9 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -1095,6 +1095,8 @@ static void
 fs_dev_merge_info(struct rte_eth_dev_info *info,
 		  const struct rte_eth_dev_info *sinfo)
 {
+	info->min_mtu = RTE_MAX(info->min_mtu, sinfo->min_mtu);
+	info->max_mtu = RTE_MIN(info->max_mtu, sinfo->max_mtu);
 	info->max_rx_pktlen = RTE_MIN(info->max_rx_pktlen, sinfo->max_rx_pktlen);
 	info->max_rx_queues = RTE_MIN(info->max_rx_queues, sinfo->max_rx_queues);
 	info->max_tx_queues = RTE_MIN(info->max_tx_queues, sinfo->max_tx_queues);
@@ -1163,6 +1165,8 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
 	int ret;
 
 	/* Use maximum upper bounds by default */
+	infos->min_mtu = RTE_ETHER_MIN_MTU;
+	infos->max_mtu = UINT16_MAX;
 	infos->max_rx_pktlen = UINT32_MAX;
 	infos->max_rx_queues = RTE_MAX_QUEUES_PER_PORT;
 	infos->max_tx_queues = RTE_MAX_QUEUES_PER_PORT;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.924478600 +0800
+++ 0008-net-failsafe-report-minimum-and-maximum-MTU.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From c0396a48b526eb3d38c941a7e7d63d360a789d16 Mon Sep 17 00:00:00 2001
+From 7fe1e5cdb90fef782d2752ba1992edaf65fc49f4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c0396a48b526eb3d38c941a7e7d63d360a789d16 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 966cfd2dba..1343777d61 100644
+index 9946b696f3..c9c38258a9 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix external buffer pool registration for Rx queue' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (5 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/failsafe: report minimum and maximum MTU' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'common/mlx5: fix DevX read output buffer size' " Xueming Li
                   ` (220 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Luca Boccassi, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/23b584d6cc854fad62237b03899e494adc6526d5

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 23b584d6cc854fad62237b03899e494adc6526d5 Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Fri, 12 Feb 2021 13:06:30 +0200
Subject: [PATCH] net/mlx5: fix external buffer pool registration for Rx queue
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit a9ae33fbbc2d8d51542abf71d0a73887c17f39b5 ]

On Rx queue creation the mlx5 PMD registers the data buffers of the
specified pools for DMA operations. It scans the mem_list of the pools
and creates the MRs (DMA related NIC objects) for the chunks found.
If the pool is created with rte_pktmbuf_pool_create_extbuf() and
refers to the external attached buffers (whose are in the area of
application responsibility and it should explicitly register the
data buffer memory for DMA with rte_dev_dma_map() call) the chunks
contain the mbuf structures only, w/o any built-in data buffers.
Hence, DMA with mlx5 NIC never happens to this area and there is
no need to create MRs for these ones.

The extra not needed MRs were created for the pools with external
buffers causing MR cache load and performance was slightly affected.
The patch checks the mbuf pool type and skips MR creation for the
pools with external buffers.

Fixes: bdb8e5b1ea7b ("net/mlx5: allow allocated mbuf with external buffer")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5_mr.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_mr.c b/drivers/net/mlx5/mlx5_mr.c
index 8b20ee3f83..da4e91fc24 100644
--- a/drivers/net/mlx5/mlx5_mr.c
+++ b/drivers/net/mlx5/mlx5_mr.c
@@ -535,7 +535,18 @@ mlx5_mr_update_mp(struct rte_eth_dev *dev, struct mlx5_mr_ctrl *mr_ctrl,
 		.mr_ctrl = mr_ctrl,
 		.ret = 0,
 	};
+	uint32_t flags = rte_pktmbuf_priv_flags(mp);
 
+	if (flags & RTE_PKTMBUF_POOL_F_PINNED_EXT_BUF) {
+		/*
+		 * The pinned external buffer should be registered for DMA
+		 * operations by application. The mem_list of the pool contains
+		 * the list of chunks with mbuf structures w/o built-in data
+		 * buffers and DMA actually does not happen there, no need
+		 * to create MR for these chunks.
+		 */
+		return 0;
+	}
 	DRV_LOG(DEBUG, "Port %u Rx queue registering mp %s "
 		       "having %u chunks.", dev->data->port_id,
 		       mp->name, mp->nb_mem_chunks);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.943978500 +0800
+++ 0009-net-mlx5-fix-external-buffer-pool-registration-for-R.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From a9ae33fbbc2d8d51542abf71d0a73887c17f39b5 Mon Sep 17 00:00:00 2001
+From 23b584d6cc854fad62237b03899e494adc6526d5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit a9ae33fbbc2d8d51542abf71d0a73887c17f39b5 ]
@@ -23 +25,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'common/mlx5: fix DevX read output buffer size' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (6 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix external buffer pool registration for Rx queue' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix metadata item validation for ingress flows' " Xueming Li
                   ` (219 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Dekel Peled; +Cc: Luca Boccassi, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/8d2066d2ec530f74951f54f53b7b48847117681e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8d2066d2ec530f74951f54f53b7b48847117681e Mon Sep 17 00:00:00 2001
From: Dekel Peled <dekelp@nvidia.com>
Date: Thu, 18 Feb 2021 18:18:05 +0200
Subject: [PATCH] common/mlx5: fix DevX read output buffer size
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit dd9e9d5491858bee49914c4fa574cc8e15640905 ]

Previous patch included a glue function call, with wrong size
calculation for an output buffer.
This patch fixes the issue, using the correct size calculation.

Fixes: bb7ef9a96281 ("common/mlx5: add register access DevX routine")

Signed-off-by: Dekel Peled <dekelp@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/common/mlx5/mlx5_devx_cmds.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index eafee65f22..4485a9cd5e 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -53,8 +53,8 @@ mlx5_devx_cmd_register_read(void *ctx, uint16_t reg_id, uint32_t arg,
 	MLX5_SET(access_register_in, in, register_id, reg_id);
 	MLX5_SET(access_register_in, in, argument, arg);
 	rc = mlx5_glue->devx_general_cmd(ctx, in, sizeof(in), out,
-					 MLX5_ST_SZ_DW(access_register_out) *
-					 sizeof(uint32_t) + dw_cnt);
+					 MLX5_ST_SZ_BYTES(access_register_out) +
+					 sizeof(uint32_t) * dw_cnt);
 	if (rc)
 		goto error;
 	status = MLX5_GET(access_register_out, out, status);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.964338500 +0800
+++ 0010-common-mlx5-fix-DevX-read-output-buffer-size.patch	2021-05-10 23:59:26.310000000 +0800
@@ -1 +1 @@
-From dd9e9d5491858bee49914c4fa574cc8e15640905 Mon Sep 17 00:00:00 2001
+From 8d2066d2ec530f74951f54f53b7b48847117681e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit dd9e9d5491858bee49914c4fa574cc8e15640905 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index cc70c794e7..0185d57036 100644
+index eafee65f22..4485a9cd5e 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix metadata item validation for ingress flows' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (7 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'common/mlx5: fix DevX read output buffer size' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'bus/fslmc: fix random portal hangs with qbman 5.0' " Xueming Li
                   ` (218 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/58200ed66af5bfec99190f6e9eba6ffa4031c733

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 58200ed66af5bfec99190f6e9eba6ffa4031c733 Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Wed, 10 Feb 2021 11:30:51 +0200
Subject: [PATCH] net/mlx5: fix metadata item validation for ingress flows
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit aa1c17f1d8202a1a6e64e813103cdbe6b357b0ba ]

In legacy metadata mode the metadata register B is engaged to
handle the metadata item. In the ingress domain the hardware
supports the register setting only, the match on register B
is not supported.

Due to this limitation only the SET_META action can be supported
for the ingress flows, the META item should be rejected on
flow validation.

Fixes: 5f3541724e08 ("net/mlx5: fix flow META item validation")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 3fdc3ffe16..353a8df24c 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -1450,13 +1450,20 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,
 					  "isn't supported");
 		if (reg != REG_A)
 			nic_mask.data = priv->sh->dv_meta_mask;
-	} else if (attr->transfer) {
-		return rte_flow_error_set(error, ENOTSUP,
+	} else {
+		if (attr->transfer)
+			return rte_flow_error_set(error, ENOTSUP,
 					RTE_FLOW_ERROR_TYPE_ITEM, item,
 					"extended metadata feature "
 					"should be enabled when "
 					"meta item is requested "
 					"with e-switch mode ");
+		if (attr->ingress)
+			return rte_flow_error_set(error, ENOTSUP,
+					RTE_FLOW_ERROR_TYPE_ITEM, item,
+					"match on metadata for ingress "
+					"is not supported in legacy "
+					"metadata mode");
 	}
 	if (!mask)
 		mask = &rte_flow_item_meta_mask;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:26.985944800 +0800
+++ 0011-net-mlx5-fix-metadata-item-validation-for-ingress-fl.patch	2021-05-10 23:59:26.320000000 +0800
@@ -1 +1 @@
-From aa1c17f1d8202a1a6e64e813103cdbe6b357b0ba Mon Sep 17 00:00:00 2001
+From 58200ed66af5bfec99190f6e9eba6ffa4031c733 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit aa1c17f1d8202a1a6e64e813103cdbe6b357b0ba ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index a44291a3c9..1a74d5ac2b 100644
+index 3fdc3ffe16..353a8df24c 100644
@@ -27 +29 @@
-@@ -1960,13 +1960,20 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,
+@@ -1450,13 +1450,20 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'bus/fslmc: fix random portal hangs with qbman 5.0' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (8 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix metadata item validation for ingress flows' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'bus/dpaa: fix statistics reading' " Xueming Li
                   ` (217 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Youri Querry; +Cc: Luca Boccassi, Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/1965f4ee95941d134ce4f5751ee16fb37bfd9198

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1965f4ee95941d134ce4f5751ee16fb37bfd9198 Mon Sep 17 00:00:00 2001
From: Youri Querry <youri.querry_1@nxp.com>
Date: Wed, 24 Feb 2021 18:12:49 +0530
Subject: [PATCH] bus/fslmc: fix random portal hangs with qbman 5.0
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit a675f35d784115bb2a746daa94b6b5ab6305298f ]

Random portal hangs observed on device with QBMAN 5.0

This fixes few random packet hang issues in event mode.
Few things fixed it.
1. Generally, pi == ci, no need for extra checks.
2. The proper initializations in init with ci

Fixes: 1b49352f41be ("bus/fslmc: rename portal pi index to consumer index")

Signed-off-by: Youri Querry <youri.querry_1@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/qbman/qbman_portal.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/drivers/bus/fslmc/qbman/qbman_portal.c b/drivers/bus/fslmc/qbman/qbman_portal.c
index 77c9d508c4..aedcad9258 100644
--- a/drivers/bus/fslmc/qbman/qbman_portal.c
+++ b/drivers/bus/fslmc/qbman/qbman_portal.c
@@ -339,17 +339,9 @@ struct qbman_swp *qbman_swp_init(const struct qbman_swp_desc *d)
 	eqcr_pi = qbman_cinh_read(&p->sys, QBMAN_CINH_SWP_EQCR_PI);
 	p->eqcr.pi = eqcr_pi & p->eqcr.pi_ci_mask;
 	p->eqcr.pi_vb = eqcr_pi & QB_VALID_BIT;
-	if ((p->desc.qman_version & QMAN_REV_MASK) >= QMAN_REV_5000
-			&& (d->cena_access_mode == qman_cena_fastest_access))
-		p->eqcr.ci = qbman_cinh_read(&p->sys, QBMAN_CINH_SWP_EQCR_PI)
-					     & p->eqcr.pi_ci_mask;
-	else
-		p->eqcr.ci = qbman_cinh_read(&p->sys, QBMAN_CINH_SWP_EQCR_CI)
-					     & p->eqcr.pi_ci_mask;
-	p->eqcr.available = p->eqcr.pi_ring_size -
-				qm_cyc_diff(p->eqcr.pi_ring_size,
-				p->eqcr.ci & (p->eqcr.pi_ci_mask<<1),
-				p->eqcr.pi & (p->eqcr.pi_ci_mask<<1));
+	p->eqcr.ci = qbman_cinh_read(&p->sys, QBMAN_CINH_SWP_EQCR_CI)
+			& p->eqcr.pi_ci_mask;
+	p->eqcr.available = p->eqcr.pi_ring_size;
 
 	portal_idx_map[p->desc.idx] = p;
 	return p;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.013875500 +0800
+++ 0012-bus-fslmc-fix-random-portal-hangs-with-qbman-5.0.patch	2021-05-10 23:59:26.320000000 +0800
@@ -1 +1 @@
-From a675f35d784115bb2a746daa94b6b5ab6305298f Mon Sep 17 00:00:00 2001
+From 1965f4ee95941d134ce4f5751ee16fb37bfd9198 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit a675f35d784115bb2a746daa94b6b5ab6305298f ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'bus/dpaa: fix statistics reading' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (9 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'bus/fslmc: fix random portal hangs with qbman 5.0' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/dpaa2: fix getting link status' " Xueming Li
                   ` (216 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Nipun Gupta; +Cc: Luca Boccassi, Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/e518710835e10174e0dfe74ebcce73507046a0c6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e518710835e10174e0dfe74ebcce73507046a0c6 Mon Sep 17 00:00:00 2001
From: Nipun Gupta <nipun.gupta@nxp.com>
Date: Wed, 24 Feb 2021 18:12:50 +0530
Subject: [PATCH] bus/dpaa: fix statistics reading
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e62a3f4183f14a91f0dd63e9ea39e749406b5653 ]

Reading of word un-aligned values after reading word aligned
values lead to corruption of memory.
This patch make changes such that word aligned access is made,
before making an un-aligned access

Fixes: 6d6b4f49a155 ("bus/dpaa: add FMAN hardware operations")

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/fman/fman_hw.c | 33 ++++++++++++++--------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/drivers/bus/dpaa/base/fman/fman_hw.c b/drivers/bus/dpaa/base/fman/fman_hw.c
index 4ab49f7853..af9bac76c2 100644
--- a/drivers/bus/dpaa/base/fman/fman_hw.c
+++ b/drivers/bus/dpaa/base/fman/fman_hw.c
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  *
- * Copyright 2017 NXP
+ * Copyright 2017,2020 NXP
  *
  */
 
@@ -219,20 +219,20 @@ fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats)
 	struct memac_regs *regs = m->ccsr_map;
 
 	/* read recved packet count */
-	stats->ipackets = ((u64)in_be32(&regs->rfrm_u)) << 32 |
-			in_be32(&regs->rfrm_l);
-	stats->ibytes = ((u64)in_be32(&regs->roct_u)) << 32 |
-			in_be32(&regs->roct_l);
-	stats->ierrors = ((u64)in_be32(&regs->rerr_u)) << 32 |
-			in_be32(&regs->rerr_l);
+	stats->ipackets = (u64)in_be32(&regs->rfrm_l) |
+			((u64)in_be32(&regs->rfrm_u)) << 32;
+	stats->ibytes = (u64)in_be32(&regs->roct_l) |
+			((u64)in_be32(&regs->roct_u)) << 32;
+	stats->ierrors = (u64)in_be32(&regs->rerr_l) |
+			((u64)in_be32(&regs->rerr_u)) << 32;
 
 	/* read xmited packet count */
-	stats->opackets = ((u64)in_be32(&regs->tfrm_u)) << 32 |
-			in_be32(&regs->tfrm_l);
-	stats->obytes = ((u64)in_be32(&regs->toct_u)) << 32 |
-			in_be32(&regs->toct_l);
-	stats->oerrors = ((u64)in_be32(&regs->terr_u)) << 32 |
-			in_be32(&regs->terr_l);
+	stats->opackets = (u64)in_be32(&regs->tfrm_l) |
+			((u64)in_be32(&regs->tfrm_u)) << 32;
+	stats->obytes = (u64)in_be32(&regs->toct_l) |
+			((u64)in_be32(&regs->toct_u)) << 32;
+	stats->oerrors = (u64)in_be32(&regs->terr_l) |
+			((u64)in_be32(&regs->terr_u)) << 32;
 }
 
 void
@@ -244,10 +244,9 @@ fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n)
 	uint64_t base_offset = offsetof(struct memac_regs, reoct_l);
 
 	for (i = 0; i < n; i++)
-		value[i] = ((u64)in_be32((char *)regs
-				+ base_offset + 8 * i + 4)) << 32 |
-				((u64)in_be32((char *)regs
-				+ base_offset + 8 * i));
+		value[i] = (((u64)in_be32((char *)regs + base_offset + 8 * i) |
+				(u64)in_be32((char *)regs + base_offset +
+				8 * i + 4)) << 32);
 }
 
 void
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.037765100 +0800
+++ 0013-bus-dpaa-fix-statistics-reading.patch	2021-05-10 23:59:26.330000000 +0800
@@ -1 +1 @@
-From e62a3f4183f14a91f0dd63e9ea39e749406b5653 Mon Sep 17 00:00:00 2001
+From e518710835e10174e0dfe74ebcce73507046a0c6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e62a3f4183f14a91f0dd63e9ea39e749406b5653 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/dpaa2: fix getting link status' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (10 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'bus/dpaa: fix statistics reading' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/dpaa: " Xueming Li
                   ` (215 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Rohit Raj; +Cc: Luca Boccassi, Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/d287fda7da82a6224290ac9b3548d34d43593b32

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d287fda7da82a6224290ac9b3548d34d43593b32 Mon Sep 17 00:00:00 2001
From: Rohit Raj <rohit.raj@nxp.com>
Date: Wed, 24 Feb 2021 18:12:51 +0530
Subject: [PATCH] net/dpaa2: fix getting link status
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit eadcfd95ffde80b679b757d060f889f683c96266 ]

According to DPDK Documentation, rte_eth_link_get API can wait up to 9
seconds for auto-negotiation to finish and then returns link status.

In current implementation of rte_eth_link_get API in DPAA2 drivers, it
was not waiting for auto negotiation to finish and was returning link
status DOWN
It can cause issues with DPDK applications which relies on
rte_eth_link_get API for link status and does not support link status
interrupt.
Similar kind of issue was seen in TRex Application.

This patch fixes this bug by adding wait for up to 9 seconds for auto
negotiation to finish.

Fixes: c56c86ff87c1 ("net/dpaa2: update link status")

Signed-off-by: Rohit Raj <rohit.raj@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 6f38da3cce..5c1a12b841 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -31,6 +31,8 @@
 
 #define DRIVER_LOOPBACK_MODE "drv_loopback"
 #define DRIVER_NO_PREFETCH_MODE "drv_no_prefetch"
+#define CHECK_INTERVAL         100  /* 100ms */
+#define MAX_REPEAT_TIME        90   /* 9s (90 * 100ms) in total */
 
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
@@ -1805,23 +1807,32 @@ error:
 /* return 0 means link status changed, -1 means not changed */
 static int
 dpaa2_dev_link_update(struct rte_eth_dev *dev,
-			int wait_to_complete __rte_unused)
+		      int wait_to_complete)
 {
 	int ret;
 	struct dpaa2_dev_priv *priv = dev->data->dev_private;
 	struct fsl_mc_io *dpni = (struct fsl_mc_io *)dev->process_private;
 	struct rte_eth_link link;
 	struct dpni_link_state state = {0};
+	uint8_t count;
 
 	if (dpni == NULL) {
 		DPAA2_PMD_ERR("dpni is NULL");
 		return 0;
 	}
 
-	ret = dpni_get_link_state(dpni, CMD_PRI_LOW, priv->token, &state);
-	if (ret < 0) {
-		DPAA2_PMD_DEBUG("error: dpni_get_link_state %d", ret);
-		return -1;
+	for (count = 0; count <= MAX_REPEAT_TIME; count++) {
+		ret = dpni_get_link_state(dpni, CMD_PRI_LOW, priv->token,
+					  &state);
+		if (ret < 0) {
+			DPAA2_PMD_DEBUG("error: dpni_get_link_state %d", ret);
+			return -1;
+		}
+		if (state.up == ETH_LINK_DOWN &&
+		    wait_to_complete)
+			rte_delay_ms(CHECK_INTERVAL);
+		else
+			break;
 	}
 
 	memset(&link, 0, sizeof(struct rte_eth_link));
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.058958500 +0800
+++ 0014-net-dpaa2-fix-getting-link-status.patch	2021-05-10 23:59:26.330000000 +0800
@@ -1 +1 @@
-From eadcfd95ffde80b679b757d060f889f683c96266 Mon Sep 17 00:00:00 2001
+From d287fda7da82a6224290ac9b3548d34d43593b32 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit eadcfd95ffde80b679b757d060f889f683c96266 ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org
@@ -30 +32 @@
-index 38774e255b..a81c73438e 100644
+index 6f38da3cce..5c1a12b841 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/dpaa: fix getting link status' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (11 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/dpaa2: fix getting link status' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ionic: fix completion type in lif init' " Xueming Li
                   ` (214 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Rohit Raj; +Cc: Luca Boccassi, Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/c725e11eb3b131f59dcabca5c9056831ef257473

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c725e11eb3b131f59dcabca5c9056831ef257473 Mon Sep 17 00:00:00 2001
From: Rohit Raj <rohit.raj@nxp.com>
Date: Wed, 24 Feb 2021 18:12:52 +0530
Subject: [PATCH] net/dpaa: fix getting link status
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 89b9bb08dd7f742a7ba20d1812b4fe1b4ddf5008 ]

According to DPDK Documentation, rte_eth_link_get API can wait up to 9
seconds for auto-negotiation to finish and then returns link status.

In current implementation of rte_eth_link_get API in DPAA drivers, it
was not waiting for auto negotiation to finish and was returning link
status DOWN
It can cause issues with DPDK applications which relies
on rte_eth_link_get API for link statusand does not support link status
interrupt.

This patch fixes this bug by adding wait for up to 9 seconds for auto
negotiation to finish.

Fixes: 2aa10990a8dd ("bus/dpaa: enable link state interrupt")

Signed-off-by: Rohit Raj <rohit.raj@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa/dpaa_ethdev.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 0c87c136d7..79e39451b3 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -49,6 +49,9 @@
 #include <process.h>
 #include <fmlib/fm_ext.h>
 
+#define CHECK_INTERVAL         100  /* 100ms */
+#define MAX_REPEAT_TIME        90   /* 9s (90 * 100ms) in total */
+
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
@@ -669,23 +672,30 @@ dpaa_dev_tx_burst_mode_get(struct rte_eth_dev *dev,
 }
 
 static int dpaa_eth_link_update(struct rte_eth_dev *dev,
-				int wait_to_complete __rte_unused)
+				int wait_to_complete)
 {
 	struct dpaa_if *dpaa_intf = dev->data->dev_private;
 	struct rte_eth_link *link = &dev->data->dev_link;
 	struct fman_if *fif = dev->process_private;
 	struct __fman_if *__fif = container_of(fif, struct __fman_if, __if);
 	int ret, ioctl_version;
+	uint8_t count;
 
 	PMD_INIT_FUNC_TRACE();
 
 	ioctl_version = dpaa_get_ioctl_version_number();
 
-
 	if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) {
-		ret = dpaa_get_link_status(__fif->node_name, link);
-		if (ret)
-			return ret;
+		for (count = 0; count <= MAX_REPEAT_TIME; count++) {
+			ret = dpaa_get_link_status(__fif->node_name, link);
+			if (ret)
+				return ret;
+			if (link->link_status == ETH_LINK_DOWN &&
+			    wait_to_complete)
+				rte_delay_ms(CHECK_INTERVAL);
+			else
+				break;
+		}
 	} else {
 		link->link_status = dpaa_intf->valid;
 	}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.082257900 +0800
+++ 0015-net-dpaa-fix-getting-link-status.patch	2021-05-10 23:59:26.330000000 +0800
@@ -1 +1 @@
-From 89b9bb08dd7f742a7ba20d1812b4fe1b4ddf5008 Mon Sep 17 00:00:00 2001
+From c725e11eb3b131f59dcabca5c9056831ef257473 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 89b9bb08dd7f742a7ba20d1812b4fe1b4ddf5008 ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -29 +31 @@
-index d643514de6..c59873dd8a 100644
+index 0c87c136d7..79e39451b3 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ionic: fix completion type in lif init' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (12 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/dpaa: " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'app/testpmd: remove unnecessary UDP tunnel check' " Xueming Li
                   ` (213 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Andrew Boyer; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7a866f25e6aa059dca294bb85f5bf07c3b9b584e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7a866f25e6aa059dca294bb85f5bf07c3b9b584e Mon Sep 17 00:00:00 2001
From: Andrew Boyer <aboyer@pensando.io>
Date: Tue, 16 Feb 2021 12:35:40 -0800
Subject: [PATCH] net/ionic: fix completion type in lif init
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 656bfc9a4e3d377ebf160132242d1bb2b5f9b8b2 ]

The completion type was wrong.
Don't check the completion if the wait timed out.

Fixes: 669c8de67c88 ("net/ionic: support basic LIF")

Signed-off-by: Andrew Boyer <aboyer@pensando.io>
---
 drivers/net/ionic/ionic_lif.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c
index 5894f3505a..33a5977ced 100644
--- a/drivers/net/ionic/ionic_lif.c
+++ b/drivers/net/ionic/ionic_lif.c
@@ -1470,17 +1470,18 @@ int
 ionic_lif_init(struct ionic_lif *lif)
 {
 	struct ionic_dev *idev = &lif->adapter->idev;
-	struct ionic_q_init_comp comp;
+	struct ionic_lif_init_comp comp;
 	int err;
 
 	memset(&lif->stats_base, 0, sizeof(lif->stats_base));
 
 	ionic_dev_cmd_lif_init(idev, lif->index, lif->info_pa);
 	err = ionic_dev_cmd_wait_check(idev, IONIC_DEVCMD_TIMEOUT);
-	ionic_dev_cmd_comp(idev, &comp);
 	if (err)
 		return err;
 
+	ionic_dev_cmd_comp(idev, &comp);
+
 	lif->hw_index = comp.hw_index;
 
 	err = ionic_lif_adminq_init(lif);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.106608800 +0800
+++ 0016-net-ionic-fix-completion-type-in-lif-init.patch	2021-05-10 23:59:26.330000000 +0800
@@ -1 +1 @@
-From 656bfc9a4e3d377ebf160132242d1bb2b5f9b8b2 Mon Sep 17 00:00:00 2001
+From 7a866f25e6aa059dca294bb85f5bf07c3b9b584e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 656bfc9a4e3d377ebf160132242d1bb2b5f9b8b2 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index b8023e0632..cd220abee2 100644
+index 5894f3505a..33a5977ced 100644
@@ -21 +23 @@
-@@ -1605,17 +1605,18 @@ int
+@@ -1470,17 +1470,18 @@ int
@@ -31 +33 @@
- 	ionic_dev_cmd_lif_init(idev, lif->info_pa);
+ 	ionic_dev_cmd_lif_init(idev, lif->index, lif->info_pa);
@@ -39 +41 @@
- 	lif->hw_index = rte_cpu_to_le_16(comp.hw_index);
+ 	lif->hw_index = comp.hw_index;

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'app/testpmd: remove unnecessary UDP tunnel check' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (13 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ionic: fix completion type in lif init' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/sfc: fix buffer size for flow parse' " Xueming Li
                   ` (212 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Xiaoyun Li; +Cc: Luca Boccassi, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/40072bc599a16c519197ff29f7f7bd7e32c5d351

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 40072bc599a16c519197ff29f7f7bd7e32c5d351 Mon Sep 17 00:00:00 2001
From: Xiaoyun Li <xiaoyun.li@intel.com>
Date: Thu, 18 Feb 2021 11:06:10 +0800
Subject: [PATCH] app/testpmd: remove unnecessary UDP tunnel check
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 9d32f448ea0096185d0bbc5582c8b57f090c88a6 ]

cmd_tunnel_udp_config checked 'cmd' to set prot_type but this cmd is
only for rx_vxlan_port. The unnecessary cmd check will cause uninit
coverity issue. So remove it and rename 'cmd' to 'rx_vxlan_port'.

Coverity issue: 366155
Fixes: bd948f20d609 ("app/testpmd: VXLAN packet identification")

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 app/test-pmd/cmdline.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 2b9dd3e1f4..fa2a0c78e6 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -9096,7 +9096,7 @@ cmdline_parse_inst_t cmd_vf_rate_limit = {
 
 /* *** CONFIGURE TUNNEL UDP PORT *** */
 struct cmd_tunnel_udp_config {
-	cmdline_fixed_string_t cmd;
+	cmdline_fixed_string_t rx_vxlan_port;
 	cmdline_fixed_string_t what;
 	uint16_t udp_port;
 	portid_t port_id;
@@ -9112,9 +9112,7 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
 	int ret;
 
 	tunnel_udp.udp_port = res->udp_port;
-
-	if (!strcmp(res->cmd, "rx_vxlan_port"))
-		tunnel_udp.prot_type = RTE_TUNNEL_TYPE_VXLAN;
+	tunnel_udp.prot_type = RTE_TUNNEL_TYPE_VXLAN;
 
 	if (!strcmp(res->what, "add"))
 		ret = rte_eth_dev_udp_tunnel_port_add(res->port_id,
@@ -9127,9 +9125,9 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
 		printf("udp tunneling add error: (%s)\n", strerror(-ret));
 }
 
-cmdline_parse_token_string_t cmd_tunnel_udp_config_cmd =
+cmdline_parse_token_string_t cmd_tunnel_udp_config_rx_vxlan_port =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
-				cmd, "rx_vxlan_port");
+				rx_vxlan_port, "rx_vxlan_port");
 cmdline_parse_token_string_t cmd_tunnel_udp_config_what =
 	TOKEN_STRING_INITIALIZER(struct cmd_tunnel_udp_config,
 				what, "add#rm");
@@ -9146,7 +9144,7 @@ cmdline_parse_inst_t cmd_tunnel_udp_config = {
 	.help_str = "rx_vxlan_port add|rm <udp_port> <port_id>: "
 		"Add/Remove a tunneling UDP port filter",
 	.tokens = {
-		(void *)&cmd_tunnel_udp_config_cmd,
+		(void *)&cmd_tunnel_udp_config_rx_vxlan_port,
 		(void *)&cmd_tunnel_udp_config_what,
 		(void *)&cmd_tunnel_udp_config_udp_port,
 		(void *)&cmd_tunnel_udp_config_port_id,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.130425900 +0800
+++ 0017-app-testpmd-remove-unnecessary-UDP-tunnel-check.patch	2021-05-10 23:59:26.340000000 +0800
@@ -1 +1 @@
-From 9d32f448ea0096185d0bbc5582c8b57f090c88a6 Mon Sep 17 00:00:00 2001
+From 40072bc599a16c519197ff29f7f7bd7e32c5d351 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 9d32f448ea0096185d0bbc5582c8b57f090c88a6 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 65d03b0ffb..14110eb2e4 100644
+index 2b9dd3e1f4..fa2a0c78e6 100644
@@ -24 +26 @@
-@@ -9097,7 +9097,7 @@ cmdline_parse_inst_t cmd_vf_rate_limit = {
+@@ -9096,7 +9096,7 @@ cmdline_parse_inst_t cmd_vf_rate_limit = {
@@ -33 +35 @@
-@@ -9113,9 +9113,7 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
+@@ -9112,9 +9112,7 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
@@ -44 +46 @@
-@@ -9128,9 +9126,9 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
+@@ -9127,9 +9125,9 @@ cmd_tunnel_udp_config_parsed(void *parsed_result,
@@ -56 +58 @@
-@@ -9147,7 +9145,7 @@ cmdline_parse_inst_t cmd_tunnel_udp_config = {
+@@ -9146,7 +9144,7 @@ cmdline_parse_inst_t cmd_tunnel_udp_config = {

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/sfc: fix buffer size for flow parse' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (14 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'app/testpmd: remove unnecessary UDP tunnel check' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/af_xdp: fix error handling during Rx queue setup' " Xueming Li
                   ` (211 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Ivan Malov; +Cc: Luca Boccassi, Andrew Rybchenko, Andy Moreton, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/32ae43ccb7f2fb0717cff7e741aadc9e2a9725ad

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 32ae43ccb7f2fb0717cff7e741aadc9e2a9725ad Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov@oktetlabs.ru>
Date: Fri, 26 Feb 2021 17:10:23 +0300
Subject: [PATCH] net/sfc: fix buffer size for flow parse
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 05cc6e33961b41df6cdc37fd429e06c28c78a84e ]

Pass the size of the buffer where the item's mask
is stored and not the indirection pointer size.

Coverity issue: 363735
Fixes: dadff137931c ("net/sfc: support encap flow items in transfer rules")

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
---
 drivers/net/sfc/sfc_mae.c | 20 +++++++++-----------
 drivers/net/sfc/sfc_mae.h |  3 ++-
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index 4ddfef5563..15c5c39758 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -1395,7 +1395,6 @@ sfc_mae_rule_parse_item_tunnel(const struct rte_flow_item *item,
 	uint8_t supp_mask[sizeof(uint64_t)];
 	const uint8_t *spec = NULL;
 	const uint8_t *mask = NULL;
-	const void *def_mask;
 	int rc;
 
 	/*
@@ -1417,12 +1416,11 @@ sfc_mae_rule_parse_item_tunnel(const struct rte_flow_item *item,
 	 * sfc_mae_rule_encap_parse_init(). Default mask
 	 * was also picked by that helper. Use it here.
 	 */
-	def_mask = ctx_mae->tunnel_def_mask;
-
 	rc = sfc_flow_parse_init(item,
 				 (const void **)&spec, (const void **)&mask,
-				 (const void *)&supp_mask, def_mask,
-				 sizeof(def_mask), error);
+				 (const void *)&supp_mask,
+				 ctx_mae->tunnel_def_mask,
+				 ctx_mae->tunnel_def_mask_size,  error);
 	if (rc != 0)
 		return rc;
 
@@ -1656,20 +1654,20 @@ sfc_mae_rule_encap_parse_init(struct sfc_adapter *sa,
 		case RTE_FLOW_ITEM_TYPE_VXLAN:
 			ctx->encap_type = EFX_TUNNEL_PROTOCOL_VXLAN;
 			ctx->tunnel_def_mask = &rte_flow_item_vxlan_mask;
-			RTE_BUILD_BUG_ON(sizeof(ctx->tunnel_def_mask) !=
-					 sizeof(rte_flow_item_vxlan_mask));
+			ctx->tunnel_def_mask_size =
+				sizeof(rte_flow_item_vxlan_mask);
 			break;
 		case RTE_FLOW_ITEM_TYPE_GENEVE:
 			ctx->encap_type = EFX_TUNNEL_PROTOCOL_GENEVE;
 			ctx->tunnel_def_mask = &rte_flow_item_geneve_mask;
-			RTE_BUILD_BUG_ON(sizeof(ctx->tunnel_def_mask) !=
-					 sizeof(rte_flow_item_geneve_mask));
+			ctx->tunnel_def_mask_size =
+				sizeof(rte_flow_item_geneve_mask);
 			break;
 		case RTE_FLOW_ITEM_TYPE_NVGRE:
 			ctx->encap_type = EFX_TUNNEL_PROTOCOL_NVGRE;
 			ctx->tunnel_def_mask = &rte_flow_item_nvgre_mask;
-			RTE_BUILD_BUG_ON(sizeof(ctx->tunnel_def_mask) !=
-					 sizeof(rte_flow_item_nvgre_mask));
+			ctx->tunnel_def_mask_size =
+				sizeof(rte_flow_item_nvgre_mask);
 			break;
 		case RTE_FLOW_ITEM_TYPE_END:
 			break;
diff --git a/drivers/net/sfc/sfc_mae.h b/drivers/net/sfc/sfc_mae.h
index 53ddead979..bf432638c1 100644
--- a/drivers/net/sfc/sfc_mae.h
+++ b/drivers/net/sfc/sfc_mae.h
@@ -179,7 +179,8 @@ struct sfc_mae_parse_ctx {
 	 * which part of the pattern is being parsed.
 	 */
 	const efx_mae_field_id_t	*field_ids_remap;
-	/* This points to a tunnel-specific default mask. */
+	/* These two fields correspond to the tunnel-specific default mask. */
+	size_t				tunnel_def_mask_size;
 	const void			*tunnel_def_mask;
 	bool				match_mport_set;
 	struct sfc_mae_pattern_data	pattern_data;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.163305100 +0800
+++ 0018-net-sfc-fix-buffer-size-for-flow-parse.patch	2021-05-10 23:59:26.340000000 +0800
@@ -1 +1 @@
-From 05cc6e33961b41df6cdc37fd429e06c28c78a84e Mon Sep 17 00:00:00 2001
+From 32ae43ccb7f2fb0717cff7e741aadc9e2a9725ad Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 05cc6e33961b41df6cdc37fd429e06c28c78a84e ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/af_xdp: fix error handling during Rx queue setup' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (15 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/sfc: fix buffer size for flow parse' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/pcap: fix format string' " Xueming Li
                   ` (210 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Ciara Loftus; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/40313397da9b14ce38354e781976c2b0a25e00f6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 40313397da9b14ce38354e781976c2b0a25e00f6 Mon Sep 17 00:00:00 2001
From: Ciara Loftus <ciara.loftus@intel.com>
Date: Mon, 1 Mar 2021 10:34:13 +0000
Subject: [PATCH] net/af_xdp: fix error handling during Rx queue setup
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 831268022300cfbc338f65d43b8f685e50011c86 ]

Prior to this commit, if rte_pktmbuf_alloc_bullk failed during rx queue
setup the error was not returned to the user and they may incorrectly
assume that the rx queue had been successfully set up. This commit ensures
that the error is returned to the user.

Bugzilla ID: 643
Fixes: d8a210774e1d ("net/af_xdp: support unaligned umem chunks")

Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
---
 drivers/net/af_xdp/rte_eth_af_xdp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
index 7fc70df713..3885fb7c78 100644
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
@@ -1148,7 +1148,8 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,
 	}
 
 #if defined(XDP_UMEM_UNALIGNED_CHUNK_FLAG)
-	if (rte_pktmbuf_alloc_bulk(rxq->umem->mb_pool, fq_bufs, reserve_size)) {
+	ret = rte_pktmbuf_alloc_bulk(rxq->umem->mb_pool, fq_bufs, reserve_size);
+	if (ret) {
 		AF_XDP_LOG(DEBUG, "Failed to get enough buffers for fq.\n");
 		goto err;
 	}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.189219400 +0800
+++ 0019-net-af_xdp-fix-error-handling-during-Rx-queue-setup.patch	2021-05-10 23:59:26.340000000 +0800
@@ -1 +1 @@
-From 831268022300cfbc338f65d43b8f685e50011c86 Mon Sep 17 00:00:00 2001
+From 40313397da9b14ce38354e781976c2b0a25e00f6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 831268022300cfbc338f65d43b8f685e50011c86 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index b8d5ad0d91..3957227bf0 100644
+index 7fc70df713..3885fb7c78 100644
@@ -24 +26 @@
-@@ -1145,7 +1145,8 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,
+@@ -1148,7 +1148,8 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/pcap: fix format string' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (16 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/af_xdp: fix error handling during Rx queue setup' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix hashed list size for tunnel flow groups' " Xueming Li
                   ` (209 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Dmitry Kozlyuk; +Cc: Luca Boccassi, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/cf30b35eb3758dfb71c0de82627ff47713085b52

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From cf30b35eb3758dfb71c0de82627ff47713085b52 Mon Sep 17 00:00:00 2001
From: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Date: Sun, 14 Feb 2021 05:16:12 +0300
Subject: [PATCH] net/pcap: fix format string
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 198aba383316162e98c6e0c3c53c525ddca0b071 ]

Use PRIu32 for uint32_t (found by -Wformat with Clang on Windows).

Fixes: a3f5252e5cbd ("net/pcap: enable infinitely Rx a pcap file")

Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/pcap/rte_eth_pcap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index 40f4fa9021..14a0072d86 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -827,7 +827,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev,
 
 		pcap_pkt_count = count_packets_in_pcap(pcap, pcap_q);
 
-		snprintf(ring_name, sizeof(ring_name), "PCAP_RING%" PRIu16,
+		snprintf(ring_name, sizeof(ring_name), "PCAP_RING%" PRIu32,
 				ring_number);
 
 		pcap_q->pkts = rte_ring_create(ring_name,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.213834300 +0800
+++ 0020-net-pcap-fix-format-string.patch	2021-05-10 23:59:26.340000000 +0800
@@ -1 +1 @@
-From 198aba383316162e98c6e0c3c53c525ddca0b071 Mon Sep 17 00:00:00 2001
+From cf30b35eb3758dfb71c0de82627ff47713085b52 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 198aba383316162e98c6e0c3c53c525ddca0b071 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 38b1fe2f77..2766745a71 100644
+index 40f4fa9021..14a0072d86 100644
@@ -21 +23 @@
-@@ -893,7 +893,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -827,7 +827,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix hashed list size for tunnel flow groups' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (17 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/pcap: fix format string' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix UAR allocation diagnostics messages' " Xueming Li
                   ` (208 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Luca Boccassi, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/1cac75b516d87568beb9d946a6f8700f422b9d86

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1cac75b516d87568beb9d946a6f8700f422b9d86 Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Wed, 24 Feb 2021 10:15:14 +0200
Subject: [PATCH] net/mlx5: fix hashed list size for tunnel flow groups
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c86e5b90125890f950892e890e8859d87d63140b ]

The hashed list size must be the power of 2, otherwise the
adjustment is applied and the warning message is emitted.
This patch provides the correct list size to eliminate the
warning.

Fixes: 4ec6360de37d ("net/mlx5: implement tunnel offload")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index cda3ca557c..34dd33ba38 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -7648,7 +7648,8 @@ int mlx5_alloc_tunnel_hub(struct mlx5_dev_ctx_shared *sh)
 		return -ENOMEM;
 	LIST_INIT(&thub->tunnels);
 	rte_spinlock_init(&thub->sl);
-	thub->groups = mlx5_hlist_create("flow groups", MLX5_MAX_TABLES, 0,
+	thub->groups = mlx5_hlist_create("flow groups",
+					 rte_align32pow2(MLX5_MAX_TABLES), 0,
 					 0, mlx5_flow_tunnel_grp2tbl_create_cb,
 					 NULL,
 					 mlx5_flow_tunnel_grp2tbl_remove_cb);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.236769700 +0800
+++ 0021-net-mlx5-fix-hashed-list-size-for-tunnel-flow-groups.patch	2021-05-10 23:59:26.340000000 +0800
@@ -1 +1 @@
-From c86e5b90125890f950892e890e8859d87d63140b Mon Sep 17 00:00:00 2001
+From 1cac75b516d87568beb9d946a6f8700f422b9d86 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c86e5b90125890f950892e890e8859d87d63140b ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 632f46dfde..ab5be3dacc 100644
+index cda3ca557c..34dd33ba38 100644
@@ -24 +26 @@
-@@ -7940,7 +7940,8 @@ int mlx5_alloc_tunnel_hub(struct mlx5_dev_ctx_shared *sh)
+@@ -7648,7 +7648,8 @@ int mlx5_alloc_tunnel_hub(struct mlx5_dev_ctx_shared *sh)
@@ -32 +34 @@
- 					 mlx5_flow_tunnel_grp2tbl_match_cb,
+ 					 NULL,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix UAR allocation diagnostics messages' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (18 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix hashed list size for tunnel flow groups' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/pcap: fix file descriptor leak on close' " Xueming Li
                   ` (207 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Luca Boccassi, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/82f21305c4abbc39a8e3cece20919aacd061d01d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 82f21305c4abbc39a8e3cece20919aacd061d01d Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Wed, 24 Feb 2021 10:17:35 +0200
Subject: [PATCH] net/mlx5: fix UAR allocation diagnostics messages
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 09d196c0a0797813c0c608f303c9ebbe58656fbe ]

Depending on kernel capabilities and rdma-core version the mapping
of UAR (User Access Region) of desired memory caching type (non-cached
or write combining) might fail. The PMD implements the flexible
strategy of UAR mapping, alternating the type of caching to succeed.
During this process the failure diagnostics messages are emitted.
These messages are merely diagnostics ones and the logging level
should be adjusted to DEBUG.

Fixes: a0bfe9d56f74 ("net/mlx5: fix UAR memory mapping type")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index bdb446d2d2..b8f31497b2 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -767,7 +767,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
 			 * the UAR mapping type into account on UAR setup
 			 * on queue creation.
 			 */
-			DRV_LOG(WARNING, "Failed to allocate Tx DevX UAR (BF)");
+			DRV_LOG(DEBUG, "Failed to allocate Tx DevX UAR (BF)");
 			uar_mapping = MLX5DV_UAR_ALLOC_TYPE_NC;
 			sh->tx_uar = mlx5_glue->devx_alloc_uar
 							(sh->ctx, uar_mapping);
@@ -780,7 +780,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
 			 * If Verbs/kernel does not support "Non-Cached"
 			 * try the "Write-Combining".
 			 */
-			DRV_LOG(WARNING, "Failed to allocate Tx DevX UAR (NC)");
+			DRV_LOG(DEBUG, "Failed to allocate Tx DevX UAR (NC)");
 			uar_mapping = MLX5DV_UAR_ALLOC_TYPE_BF;
 			sh->tx_uar = mlx5_glue->devx_alloc_uar
 							(sh->ctx, uar_mapping);
@@ -799,7 +799,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
 		 * IB device context, on context closure all UARs
 		 * will be freed, should be no memory/object leakage.
 		 */
-		DRV_LOG(WARNING, "Retrying to allocate Tx DevX UAR");
+		DRV_LOG(DEBUG, "Retrying to allocate Tx DevX UAR");
 		sh->tx_uar = NULL;
 	}
 	/* Check whether we finally succeeded with valid UAR allocation. */
@@ -820,7 +820,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
 			 * should be no datapath noticeable impact,
 			 * can try "Non-Cached" mapping safely.
 			 */
-			DRV_LOG(WARNING, "Failed to allocate Rx DevX UAR (BF)");
+			DRV_LOG(DEBUG, "Failed to allocate Rx DevX UAR (BF)");
 			uar_mapping = MLX5DV_UAR_ALLOC_TYPE_NC;
 			sh->devx_rx_uar = mlx5_glue->devx_alloc_uar
 							(sh->ctx, uar_mapping);
@@ -839,7 +839,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
 		 * IB device context, on context closure all UARs
 		 * will be freed, should be no memory/object leakage.
 		 */
-		DRV_LOG(WARNING, "Retrying to allocate Rx DevX UAR");
+		DRV_LOG(DEBUG, "Retrying to allocate Rx DevX UAR");
 		sh->devx_rx_uar = NULL;
 	}
 	/* Check whether we finally succeeded with valid UAR allocation. */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.261623800 +0800
+++ 0022-net-mlx5-fix-UAR-allocation-diagnostics-messages.patch	2021-05-10 23:59:26.350000000 +0800
@@ -1 +1 @@
-From 09d196c0a0797813c0c608f303c9ebbe58656fbe Mon Sep 17 00:00:00 2001
+From 82f21305c4abbc39a8e3cece20919aacd061d01d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 09d196c0a0797813c0c608f303c9ebbe58656fbe ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index aae2ef9af7..4ee0005a5c 100644
+index bdb446d2d2..b8f31497b2 100644
@@ -27 +29 @@
-@@ -768,7 +768,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
+@@ -767,7 +767,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
@@ -36 +38 @@
-@@ -781,7 +781,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
+@@ -780,7 +780,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
@@ -45 +47 @@
-@@ -800,7 +800,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
+@@ -799,7 +799,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
@@ -54 +56 @@
-@@ -821,7 +821,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
+@@ -820,7 +820,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
@@ -63 +65 @@
-@@ -840,7 +840,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,
+@@ -839,7 +839,7 @@ mlx5_alloc_rxtx_uars(struct mlx5_dev_ctx_shared *sh,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/pcap: fix file descriptor leak on close' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (19 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix UAR allocation diagnostics messages' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'common/mlx5/linux: add glue function to query WQ' " Xueming Li
                   ` (206 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Tengfei Zhang; +Cc: Luca Boccassi, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/44e87e7c102af00f688992b09487b1dd33c47506

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 44e87e7c102af00f688992b09487b1dd33c47506 Mon Sep 17 00:00:00 2001
From: Tengfei Zhang <zypscode@outlook.com>
Date: Tue, 2 Mar 2021 16:51:30 +0000
Subject: [PATCH] net/pcap: fix file descriptor leak on close
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e412a138db918019cbd883132f81860951515a9b ]

pcap fd was opend when vdev probed,
but not closed when vdev removed.

Fixes: c956caa6eabf ("pcap: support port hotplug")

Signed-off-by: Tengfei Zhang <zypscode@outlook.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/pcap/rte_eth_pcap.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index 14a0072d86..da4dfe799e 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -621,9 +621,11 @@ eth_dev_stop(struct rte_eth_dev *dev)
 
 	/* Special iface case. Single pcap is open and shared between tx/rx. */
 	if (internals->single_iface) {
-		pcap_close(pp->tx_pcap[0]);
-		pp->tx_pcap[0] = NULL;
-		pp->rx_pcap[0] = NULL;
+		if (pp->tx_pcap[0] != NULL) {
+			pcap_close(pp->tx_pcap[0]);
+			pp->tx_pcap[0] = NULL;
+			pp->rx_pcap[0] = NULL;
+		}
 		goto status_down;
 	}
 
@@ -755,6 +757,8 @@ eth_dev_close(struct rte_eth_dev *dev)
 	PMD_LOG(INFO, "Closing pcap ethdev on NUMA socket %d",
 			rte_socket_id());
 
+	eth_dev_stop(dev);
+
 	rte_free(dev->process_private);
 
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.284370200 +0800
+++ 0023-net-pcap-fix-file-descriptor-leak-on-close.patch	2021-05-10 23:59:26.350000000 +0800
@@ -1 +1 @@
-From e412a138db918019cbd883132f81860951515a9b Mon Sep 17 00:00:00 2001
+From 44e87e7c102af00f688992b09487b1dd33c47506 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e412a138db918019cbd883132f81860951515a9b ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 2766745a71..28a5027315 100644
+index 14a0072d86..da4dfe799e 100644
@@ -22 +24,2 @@
-@@ -682,9 +682,11 @@ eth_dev_stop(struct rte_eth_dev *dev)
+@@ -621,9 +621,11 @@ eth_dev_stop(struct rte_eth_dev *dev)
+ 
@@ -25 +27,0 @@
- 		queue_missed_stat_on_stop_update(dev, 0);
@@ -37 +39 @@
-@@ -821,6 +823,8 @@ eth_dev_close(struct rte_eth_dev *dev)
+@@ -755,6 +757,8 @@ eth_dev_close(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'common/mlx5/linux: add glue function to query WQ' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (20 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/pcap: fix file descriptor leak on close' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'common/mlx5: add DevX command " Xueming Li
                   ` (205 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Matan Azrad; +Cc: Luca Boccassi, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/fba807cae93d7b42aa0bdae5e92d1bb9f604d376

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From fba807cae93d7b42aa0bdae5e92d1bb9f604d376 Mon Sep 17 00:00:00 2001
From: Matan Azrad <matan@nvidia.com>
Date: Thu, 25 Feb 2021 10:44:58 +0000
Subject: [PATCH] common/mlx5/linux: add glue function to query WQ
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 75a9a73ddbdd3e7581078752aadb1c980617e739 ]

When Rx queue is created by VERBS API ibv_create_wq there is a dedicated
rdma-core API to query an information about this WQ(Work Queue).

VERBS WQ querying is needed for PMD cases which combine VERBS objects
with DevX objects.

Next feature to use this glue function is the HW queue counters.

Signed-off-by: Matan Azrad <matan@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/common/mlx5/linux/mlx5_glue.c | 18 ++++++++++++++++++
 drivers/common/mlx5/linux/mlx5_glue.h |  2 ++
 2 files changed, 20 insertions(+)

diff --git a/drivers/common/mlx5/linux/mlx5_glue.c b/drivers/common/mlx5/linux/mlx5_glue.c
index 8146c79287..964f7e74ef 100644
--- a/drivers/common/mlx5/linux/mlx5_glue.c
+++ b/drivers/common/mlx5/linux/mlx5_glue.c
@@ -1067,6 +1067,23 @@ mlx5_glue_devx_qp_query(struct ibv_qp *qp,
 #endif
 }
 
+static int
+mlx5_glue_devx_wq_query(struct ibv_wq *wq, const void *in, size_t inlen,
+			void *out, size_t outlen)
+{
+#ifdef HAVE_IBV_DEVX_QP
+	return mlx5dv_devx_wq_query(wq, in, inlen, out, outlen);
+#else
+	(void)wq;
+	(void)in;
+	(void)inlen;
+	(void)out;
+	(void)outlen;
+	errno = ENOTSUP;
+	return errno;
+#endif
+}
+
 static int
 mlx5_glue_devx_port_query(struct ibv_context *ctx,
 			  uint32_t port_num,
@@ -1403,6 +1420,7 @@ const struct mlx5_glue *mlx5_glue = &(const struct mlx5_glue) {
 	.devx_umem_reg = mlx5_glue_devx_umem_reg,
 	.devx_umem_dereg = mlx5_glue_devx_umem_dereg,
 	.devx_qp_query = mlx5_glue_devx_qp_query,
+	.devx_wq_query = mlx5_glue_devx_wq_query,
 	.devx_port_query = mlx5_glue_devx_port_query,
 	.dr_dump_domain = mlx5_glue_dr_dump_domain,
 	.dr_reclaim_domain_memory = mlx5_glue_dr_reclaim_domain_memory,
diff --git a/drivers/common/mlx5/linux/mlx5_glue.h b/drivers/common/mlx5/linux/mlx5_glue.h
index 8be446a902..9e385be957 100644
--- a/drivers/common/mlx5/linux/mlx5_glue.h
+++ b/drivers/common/mlx5/linux/mlx5_glue.h
@@ -307,6 +307,8 @@ struct mlx5_glue {
 	int (*devx_qp_query)(struct ibv_qp *qp,
 			     const void *in, size_t inlen,
 			     void *out, size_t outlen);
+	int (*devx_wq_query)(struct ibv_wq *wq, const void *in, size_t inlen,
+			     void *out, size_t outlen);
 	int (*devx_port_query)(struct ibv_context *ctx,
 			       uint32_t port_num,
 			       struct mlx5dv_devx_port *mlx5_devx_port);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.308924500 +0800
+++ 0024-common-mlx5-linux-add-glue-function-to-query-WQ.patch	2021-05-10 23:59:26.350000000 +0800
@@ -1 +1 @@
-From 75a9a73ddbdd3e7581078752aadb1c980617e739 Mon Sep 17 00:00:00 2001
+From fba807cae93d7b42aa0bdae5e92d1bb9f604d376 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 75a9a73ddbdd3e7581078752aadb1c980617e739 ]
@@ -13,2 +15,0 @@
-
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'common/mlx5: add DevX command to query WQ' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (21 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'common/mlx5/linux: add glue function to query WQ' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'common/mlx5: add DevX commands for queue counters' " Xueming Li
                   ` (204 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Matan Azrad; +Cc: Luca Boccassi, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/6e06d42907bd796d133b217fc523156b984777cf

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6e06d42907bd796d133b217fc523156b984777cf Mon Sep 17 00:00:00 2001
From: Matan Azrad <matan@nvidia.com>
Date: Thu, 25 Feb 2021 10:44:59 +0000
Subject: [PATCH] common/mlx5: add DevX command to query WQ
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 542689e92e668c2d734829145996da15de3d0c97 ]

Add a DevX command to query Rx queues attributes created by VERBS.

Currently support only counter_set_id attribute.

This counter ID is managed by the kernel driver and being assigned to
any queue created by the kernel.

Signed-off-by: Matan Azrad <matan@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/common/mlx5/mlx5_devx_cmds.c | 28 ++++++++++++++++++++++++++++
 drivers/common/mlx5/mlx5_devx_cmds.h |  3 +++
 drivers/common/mlx5/mlx5_prm.h       | 19 +++++++++++++++++++
 drivers/common/mlx5/version.map      |  1 +
 4 files changed, 51 insertions(+)

diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index 4485a9cd5e..c10be482f3 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -2049,3 +2049,31 @@ mlx5_devx_cmd_create_flow_hit_aso_obj(void *ctx, uint32_t pd)
 	flow_hit_aso_obj->id = MLX5_GET(general_obj_out_cmd_hdr, out, obj_id);
 	return flow_hit_aso_obj;
 }
+
+int
+mlx5_devx_cmd_wq_query(void *wq, uint32_t *counter_set_id)
+{
+#ifdef HAVE_IBV_FLOW_DV_SUPPORT
+	uint32_t in[MLX5_ST_SZ_DW(query_rq_in)] = {0};
+	uint32_t out[MLX5_ST_SZ_DW(query_rq_out)] = {0};
+	int rc;
+	void *rq_ctx;
+
+	MLX5_SET(query_rq_in, in, opcode, MLX5_CMD_OP_QUERY_RQ);
+	MLX5_SET(query_rq_in, in, rqn, ((struct ibv_wq *)wq)->wq_num);
+	rc = mlx5_glue->devx_wq_query(wq, in, sizeof(in), out, sizeof(out));
+	if (rc) {
+		rte_errno = errno;
+		DRV_LOG(ERR, "Failed to query WQ counter set ID using DevX - "
+			"rc = %d, errno = %d.", rc, errno);
+		return -rc;
+	};
+	rq_ctx = MLX5_ADDR_OF(query_rq_out, out, rq_context);
+	*counter_set_id = MLX5_GET(rqc, rq_ctx, counter_set_id);
+	return 0;
+#else
+	(void)wq;
+	(void)counter_set_id;
+	return -ENOTSUP;
+#endif
+}
diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h
index 78202eba9d..3fef39654c 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.h
+++ b/drivers/common/mlx5/mlx5_devx_cmds.h
@@ -502,4 +502,7 @@ __rte_internal
 struct mlx5_devx_obj *mlx5_devx_cmd_create_flow_hit_aso_obj(void *ctx,
 							    uint32_t pd);
 
+
+__rte_internal
+int mlx5_devx_cmd_wq_query(void *wq, uint32_t *counter_set_id);
 #endif /* RTE_PMD_MLX5_DEVX_CMDS_H_ */
diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h
index 00b425ac85..6638f46ec6 100644
--- a/drivers/common/mlx5/mlx5_prm.h
+++ b/drivers/common/mlx5/mlx5_prm.h
@@ -851,6 +851,7 @@ enum {
 	MLX5_CMD_OP_MODIFY_SQ = 0X905,
 	MLX5_CMD_OP_CREATE_RQ = 0x908,
 	MLX5_CMD_OP_MODIFY_RQ = 0x909,
+	MLX5_CMD_OP_QUERY_RQ = 0x90b,
 	MLX5_CMD_OP_CREATE_TIS = 0x912,
 	MLX5_CMD_OP_QUERY_TIS = 0x915,
 	MLX5_CMD_OP_CREATE_RQT = 0x916,
@@ -1810,6 +1811,24 @@ struct mlx5_ifc_modify_rq_out_bits {
 	u8 reserved_at_40[0x40];
 };
 
+struct mlx5_ifc_query_rq_out_bits {
+	u8 status[0x8];
+	u8 reserved_at_8[0x18];
+	u8 syndrome[0x20];
+	u8 reserved_at_40[0xc0];
+	struct mlx5_ifc_rqc_bits rq_context;
+};
+
+struct mlx5_ifc_query_rq_in_bits {
+	u8 opcode[0x10];
+	u8 reserved_at_10[0x10];
+	u8 reserved_at_20[0x10];
+	u8 op_mod[0x10];
+	u8 reserved_at_40[0x8];
+	u8 rqn[0x18];
+	u8 reserved_at_60[0x20];
+};
+
 struct mlx5_ifc_create_tis_out_bits {
 	u8 status[0x8];
 	u8 reserved_at_8[0x18];
diff --git a/drivers/common/mlx5/version.map b/drivers/common/mlx5/version.map
index 17dd11f635..709b2c708e 100644
--- a/drivers/common/mlx5/version.map
+++ b/drivers/common/mlx5/version.map
@@ -39,6 +39,7 @@ INTERNAL {
 	mlx5_devx_cmd_query_virtio_q_counters;
 	mlx5_devx_cmd_query_virtq;
 	mlx5_devx_cmd_register_read;
+	mlx5_devx_cmd_wq_query;
 	mlx5_devx_get_out_command_status;
 	mlx5_devx_alloc_uar;
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.331139500 +0800
+++ 0025-common-mlx5-add-DevX-command-to-query-WQ.patch	2021-05-10 23:59:26.350000000 +0800
@@ -1 +1 @@
-From 542689e92e668c2d734829145996da15de3d0c97 Mon Sep 17 00:00:00 2001
+From 6e06d42907bd796d133b217fc523156b984777cf Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 542689e92e668c2d734829145996da15de3d0c97 ]
@@ -13,2 +15,0 @@
-Cc: stable@dpdk.org
-
@@ -25 +26 @@
-index 0185d57036..2dcc1ff551 100644
+index 4485a9cd5e..c10be482f3 100644
@@ -28,2 +29,3 @@
-@@ -2165,3 +2165,31 @@ mlx5_devx_cmd_create_geneve_tlv_option(void *ctx,
- 	return geneve_tlv_opt_obj;
+@@ -2049,3 +2049,31 @@ mlx5_devx_cmd_create_flow_hit_aso_obj(void *ctx, uint32_t pd)
+ 	flow_hit_aso_obj->id = MLX5_GET(general_obj_out_cmd_hdr, out, obj_id);
+ 	return flow_hit_aso_obj;
@@ -31 +33 @@
- 
++
@@ -59 +60,0 @@
-+
@@ -61 +62 @@
-index 9dcd917c39..f01d5a8802 100644
+index 78202eba9d..3fef39654c 100644
@@ -64 +65,3 @@
-@@ -539,4 +539,7 @@ struct mlx5_devx_obj *mlx5_devx_cmd_create_flow_hit_aso_obj(void *ctx,
+@@ -502,4 +502,7 @@ __rte_internal
+ struct mlx5_devx_obj *mlx5_devx_cmd_create_flow_hit_aso_obj(void *ctx,
+ 							    uint32_t pd);
@@ -66,2 +68,0 @@
- __rte_internal
- struct mlx5_devx_obj *mlx5_devx_cmd_alloc_pd(void *ctx);
@@ -73 +74 @@
-index de721aa177..f8327158fd 100644
+index 00b425ac85..6638f46ec6 100644
@@ -76 +77 @@
-@@ -911,6 +911,7 @@ enum {
+@@ -851,6 +851,7 @@ enum {
@@ -84 +85 @@
-@@ -1890,6 +1891,24 @@ struct mlx5_ifc_modify_rq_out_bits {
+@@ -1810,6 +1811,24 @@ struct mlx5_ifc_modify_rq_out_bits {
@@ -110 +111 @@
-index 244b9c7339..edd6c0e757 100644
+index 17dd11f635..709b2c708e 100644
@@ -113 +114 @@
-@@ -41,6 +41,7 @@ INTERNAL {
+@@ -39,6 +39,7 @@ INTERNAL {

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'common/mlx5: add DevX commands for queue counters' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (22 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'common/mlx5: add DevX command " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/hns3: fix device capabilities for copper media type' " Xueming Li
                   ` (203 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Matan Azrad; +Cc: Luca Boccassi, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/4371d3b12b9da53687df7501e9f727422188cbae

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4371d3b12b9da53687df7501e9f727422188cbae Mon Sep 17 00:00:00 2001
From: Matan Azrad <matan@nvidia.com>
Date: Thu, 25 Feb 2021 10:45:00 +0000
Subject: [PATCH] common/mlx5: add DevX commands for queue counters
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 750e48c7d8c39531c6e0a3aab0f2e11f02af19b4 ]

A queue counter set is an HW object that can be assigned to any RQ\QP
and it counts HW events on the assigned QPs\RQs.

Add DevX API to allocate and query queue counter set object.

The only used counter event is the "out of buffer" where the queue
drops packets when no SW buffer is available to receive it.

Signed-off-by: Matan Azrad <matan@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/common/mlx5/mlx5_devx_cmds.c | 73 +++++++++++++++++++++++++
 drivers/common/mlx5/mlx5_devx_cmds.h |  6 +++
 drivers/common/mlx5/mlx5_prm.h       | 81 ++++++++++++++++++++++++++++
 drivers/common/mlx5/version.map      |  4 +-
 4 files changed, 163 insertions(+), 1 deletion(-)

diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index c10be482f3..e3196f86f9 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -2077,3 +2077,76 @@ mlx5_devx_cmd_wq_query(void *wq, uint32_t *counter_set_id)
 	return -ENOTSUP;
 #endif
 }
+
+/*
+ * Allocate queue counters via devx interface.
+ *
+ * @param[in] ctx
+ *   Context returned from mlx5 open_device() glue function.
+ *
+ * @return
+ *   Pointer to counter object on success, a NULL value otherwise and
+ *   rte_errno is set.
+ */
+struct mlx5_devx_obj *
+mlx5_devx_cmd_queue_counter_alloc(void *ctx)
+{
+	struct mlx5_devx_obj *dcs = mlx5_malloc(MLX5_MEM_ZERO, sizeof(*dcs), 0,
+						SOCKET_ID_ANY);
+	uint32_t in[MLX5_ST_SZ_DW(alloc_q_counter_in)]   = {0};
+	uint32_t out[MLX5_ST_SZ_DW(alloc_q_counter_out)] = {0};
+
+	if (!dcs) {
+		rte_errno = ENOMEM;
+		return NULL;
+	}
+	MLX5_SET(alloc_q_counter_in, in, opcode, MLX5_CMD_OP_ALLOC_Q_COUNTER);
+	dcs->obj = mlx5_glue->devx_obj_create(ctx, in, sizeof(in), out,
+					      sizeof(out));
+	if (!dcs->obj) {
+		DRV_LOG(DEBUG, "Can't allocate q counter set by DevX - error "
+			"%d.", errno);
+		rte_errno = errno;
+		mlx5_free(dcs);
+		return NULL;
+	}
+	dcs->id = MLX5_GET(alloc_q_counter_out, out, counter_set_id);
+	return dcs;
+}
+
+/**
+ * Query queue counters values.
+ *
+ * @param[in] dcs
+ *   devx object of the queue counter set.
+ * @param[in] clear
+ *   Whether hardware should clear the counters after the query or not.
+ *  @param[out] out_of_buffers
+ *   Number of dropped occurred due to lack of WQE for the associated QPs/RQs.
+ *
+ * @return
+ *   0 on success, a negative value otherwise.
+ */
+int
+mlx5_devx_cmd_queue_counter_query(struct mlx5_devx_obj *dcs, int clear,
+				  uint32_t *out_of_buffers)
+{
+	uint32_t out[MLX5_ST_SZ_BYTES(query_q_counter_out)] = {0};
+	uint32_t in[MLX5_ST_SZ_DW(query_q_counter_in)] = {0};
+	int rc;
+
+	MLX5_SET(query_q_counter_in, in, opcode,
+		 MLX5_CMD_OP_QUERY_Q_COUNTER);
+	MLX5_SET(query_q_counter_in, in, op_mod, 0);
+	MLX5_SET(query_q_counter_in, in, counter_set_id, dcs->id);
+	MLX5_SET(query_q_counter_in, in, clear, !!clear);
+	rc = mlx5_glue->devx_obj_query(dcs->obj, in, sizeof(in), out,
+				       sizeof(out));
+	if (rc) {
+		DRV_LOG(ERR, "Failed to query devx q counter set - rc %d", rc);
+		rte_errno = rc;
+		return -rc;
+	}
+	*out_of_buffers = MLX5_GET(query_q_counter_out, out, out_of_buffer);
+	return 0;
+}
diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h
index 3fef39654c..a9aa8a3ebf 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.h
+++ b/drivers/common/mlx5/mlx5_devx_cmds.h
@@ -505,4 +505,10 @@ struct mlx5_devx_obj *mlx5_devx_cmd_create_flow_hit_aso_obj(void *ctx,
 
 __rte_internal
 int mlx5_devx_cmd_wq_query(void *wq, uint32_t *counter_set_id);
+
+__rte_internal
+struct mlx5_devx_obj *mlx5_devx_cmd_queue_counter_alloc(void *ctx);
+__rte_internal
+int mlx5_devx_cmd_queue_counter_query(struct mlx5_devx_obj *dcs, int clear,
+				      uint32_t *out_of_buffers);
 #endif /* RTE_PMD_MLX5_DEVX_CMDS_H_ */
diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h
index 6638f46ec6..cce55c8ddd 100644
--- a/drivers/common/mlx5/mlx5_prm.h
+++ b/drivers/common/mlx5/mlx5_prm.h
@@ -843,6 +843,8 @@ enum {
 	MLX5_CMD_OP_SUSPEND_QP = 0x50F,
 	MLX5_CMD_OP_RESUME_QP = 0x510,
 	MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT = 0x754,
+	MLX5_CMD_OP_ALLOC_Q_COUNTER = 0x771,
+	MLX5_CMD_OP_QUERY_Q_COUNTER = 0x773,
 	MLX5_CMD_OP_ACCESS_REGISTER = 0x805,
 	MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN = 0x816,
 	MLX5_CMD_OP_CREATE_TIR = 0x900,
@@ -3034,6 +3036,85 @@ struct mlx5_ifc_query_regexp_register_out_bits {
 	u8 register_data[0x20];
 };
 
+/* Queue counters. */
+struct mlx5_ifc_alloc_q_counter_out_bits {
+	u8 status[0x8];
+	u8 reserved_at_8[0x18];
+	u8 syndrome[0x20];
+	u8 reserved_at_40[0x18];
+	u8 counter_set_id[0x8];
+	u8 reserved_at_60[0x20];
+};
+
+struct mlx5_ifc_alloc_q_counter_in_bits {
+	u8 opcode[0x10];
+	u8 uid[0x10];
+	u8 reserved_at_20[0x10];
+	u8 op_mod[0x10];
+	u8 reserved_at_40[0x40];
+};
+
+struct mlx5_ifc_query_q_counter_out_bits {
+	u8 status[0x8];
+	u8 reserved_at_8[0x18];
+	u8 syndrome[0x20];
+	u8 reserved_at_40[0x40];
+	u8 rx_write_requests[0x20];
+	u8 reserved_at_a0[0x20];
+	u8 rx_read_requests[0x20];
+	u8 reserved_at_e0[0x20];
+	u8 rx_atomic_requests[0x20];
+	u8 reserved_at_120[0x20];
+	u8 rx_dct_connect[0x20];
+	u8 reserved_at_160[0x20];
+	u8 out_of_buffer[0x20];
+	u8 reserved_at_1a0[0x20];
+	u8 out_of_sequence[0x20];
+	u8 reserved_at_1e0[0x20];
+	u8 duplicate_request[0x20];
+	u8 reserved_at_220[0x20];
+	u8 rnr_nak_retry_err[0x20];
+	u8 reserved_at_260[0x20];
+	u8 packet_seq_err[0x20];
+	u8 reserved_at_2a0[0x20];
+	u8 implied_nak_seq_err[0x20];
+	u8 reserved_at_2e0[0x20];
+	u8 local_ack_timeout_err[0x20];
+	u8 reserved_at_320[0xa0];
+	u8 resp_local_length_error[0x20];
+	u8 req_local_length_error[0x20];
+	u8 resp_local_qp_error[0x20];
+	u8 local_operation_error[0x20];
+	u8 resp_local_protection[0x20];
+	u8 req_local_protection[0x20];
+	u8 resp_cqe_error[0x20];
+	u8 req_cqe_error[0x20];
+	u8 req_mw_binding[0x20];
+	u8 req_bad_response[0x20];
+	u8 req_remote_invalid_request[0x20];
+	u8 resp_remote_invalid_request[0x20];
+	u8 req_remote_access_errors[0x20];
+	u8 resp_remote_access_errors[0x20];
+	u8 req_remote_operation_errors[0x20];
+	u8 req_transport_retries_exceeded[0x20];
+	u8 cq_overflow[0x20];
+	u8 resp_cqe_flush_error[0x20];
+	u8 req_cqe_flush_error[0x20];
+	u8 reserved_at_620[0x1e0];
+};
+
+struct mlx5_ifc_query_q_counter_in_bits {
+	u8 opcode[0x10];
+	u8 uid[0x10];
+	u8 reserved_at_20[0x10];
+	u8 op_mod[0x10];
+	u8 reserved_at_40[0x80];
+	u8 clear[0x1];
+	u8 reserved_at_c1[0x1f];
+	u8 reserved_at_e0[0x18];
+	u8 counter_set_id[0x8];
+};
+
 /* CQE format mask. */
 #define MLX5E_CQE_FORMAT_MASK 0xc
 
diff --git a/drivers/common/mlx5/version.map b/drivers/common/mlx5/version.map
index 709b2c708e..fd6019bd2b 100644
--- a/drivers/common/mlx5/version.map
+++ b/drivers/common/mlx5/version.map
@@ -21,7 +21,7 @@ INTERNAL {
 	mlx5_devx_cmd_create_tis;
 	mlx5_devx_cmd_create_virtio_q_counters;
 	mlx5_devx_cmd_create_virtq;
-        mlx5_devx_cmd_create_flow_hit_aso_obj;
+	mlx5_devx_cmd_create_flow_hit_aso_obj;
 	mlx5_devx_cmd_destroy;
 	mlx5_devx_cmd_flow_counter_alloc;
 	mlx5_devx_cmd_flow_counter_query;
@@ -38,6 +38,8 @@ INTERNAL {
 	mlx5_devx_cmd_query_parse_samples;
 	mlx5_devx_cmd_query_virtio_q_counters;
 	mlx5_devx_cmd_query_virtq;
+	mlx5_devx_cmd_queue_counter_alloc;
+	mlx5_devx_cmd_queue_counter_query;
 	mlx5_devx_cmd_register_read;
 	mlx5_devx_cmd_wq_query;
 	mlx5_devx_get_out_command_status;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.358582500 +0800
+++ 0026-common-mlx5-add-DevX-commands-for-queue-counters.patch	2021-05-10 23:59:26.350000000 +0800
@@ -1 +1 @@
-From 750e48c7d8c39531c6e0a3aab0f2e11f02af19b4 Mon Sep 17 00:00:00 2001
+From 4371d3b12b9da53687df7501e9f727422188cbae Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 750e48c7d8c39531c6e0a3aab0f2e11f02af19b4 ]
@@ -14,2 +16,0 @@
-Cc: stable@dpdk.org
-
@@ -19 +20 @@
- drivers/common/mlx5/mlx5_devx_cmds.c | 72 +++++++++++++++++++++++++
+ drivers/common/mlx5/mlx5_devx_cmds.c | 73 +++++++++++++++++++++++++
@@ -23 +24 @@
- 4 files changed, 162 insertions(+), 1 deletion(-)
+ 4 files changed, 163 insertions(+), 1 deletion(-)
@@ -26 +27 @@
-index 2dcc1ff551..0060c37fc0 100644
+index c10be482f3..e3196f86f9 100644
@@ -29 +30,2 @@
-@@ -2193,3 +2193,75 @@ mlx5_devx_cmd_wq_query(void *wq, uint32_t *counter_set_id)
+@@ -2077,3 +2077,76 @@ mlx5_devx_cmd_wq_query(void *wq, uint32_t *counter_set_id)
+ 	return -ENOTSUP;
@@ -32 +34 @@
- 
++
@@ -106 +108 @@
-index f01d5a8802..bc66d28e83 100644
+index 3fef39654c..a9aa8a3ebf 100644
@@ -109 +111 @@
-@@ -542,4 +542,10 @@ struct mlx5_devx_obj *mlx5_devx_cmd_alloc_pd(void *ctx);
+@@ -505,4 +505,10 @@ struct mlx5_devx_obj *mlx5_devx_cmd_create_flow_hit_aso_obj(void *ctx,
@@ -121 +123 @@
-index f8327158fd..01a039f1f7 100644
+index 6638f46ec6..cce55c8ddd 100644
@@ -124 +126 @@
-@@ -901,6 +901,8 @@ enum {
+@@ -843,6 +843,8 @@ enum {
@@ -130,2 +131,0 @@
- 	MLX5_CMD_OP_ALLOC_PD = 0x800,
- 	MLX5_CMD_OP_DEALLOC_PD = 0x801,
@@ -133 +133,3 @@
-@@ -3213,6 +3215,85 @@ struct mlx5_ifc_query_regexp_register_out_bits {
+ 	MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN = 0x816,
+ 	MLX5_CMD_OP_CREATE_TIR = 0x900,
+@@ -3034,6 +3036,85 @@ struct mlx5_ifc_query_regexp_register_out_bits {
@@ -220 +222 @@
-index edd6c0e757..91f3fa5779 100644
+index 709b2c708e..fd6019bd2b 100644
@@ -223 +225 @@
-@@ -22,7 +22,7 @@ INTERNAL {
+@@ -21,7 +21,7 @@ INTERNAL {
@@ -229 +230,0 @@
- 	mlx5_devx_cmd_create_geneve_tlv_option;
@@ -232 +233,2 @@
-@@ -40,6 +40,8 @@ INTERNAL {
+ 	mlx5_devx_cmd_flow_counter_query;
+@@ -38,6 +38,8 @@ INTERNAL {

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: fix device capabilities for copper media type' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (23 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'common/mlx5: add DevX commands for queue counters' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/hns3: fix HW buffer size on MTU update' " Xueming Li
                   ` (202 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Huisong Li; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/e4e0a6505d77bec24938065bc77ecd0a74e02ae8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e4e0a6505d77bec24938065bc77ecd0a74e02ae8 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Thu, 4 Mar 2021 15:44:47 +0800
Subject: [PATCH] net/hns3: fix device capabilities for copper media type
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 68ed5ee49de7f6e3a57c5ecca812b3bbcced6bbf ]

The configuration operation for PHY is implemented by firmware. And
a capability flag will be report to driver, which means the firmware
supports the PHY driver.  However, the current implementation only
supports obtaining the capability bit, but some basic functions of
copper ports in driver, such as, the query of link status and link
info, are not supported.

Therefore, it is necessary for driver to set the copper capability
bit to zero when the firmware supports the configuration of the PHY.

Fixes: 438752358158 ("net/hns3: get device capability from firmware")
Fixes: 95e50325864c ("net/hns3: support copper media type")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
 drivers/net/hns3/hns3_cmd.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index 76d16a5a92..7f115d37ef 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -424,8 +424,14 @@ static void hns3_parse_capability(struct hns3_hw *hw,
 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_PTP_B, 1);
 	if (hns3_get_bit(caps, HNS3_CAPS_TX_PUSH_B))
 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_TX_PUSH_B, 1);
+	/*
+	 * Currently, the query of link status and link info on copper ports
+	 * are not supported. So it is necessary for driver to set the copper
+	 * capability bit to zero when the firmware supports the configuration
+	 * of the PHY.
+	 */
 	if (hns3_get_bit(caps, HNS3_CAPS_PHY_IMP_B))
-		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_COPPER_B, 1);
+		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_COPPER_B, 0);
 	if (hns3_get_bit(caps, HNS3_CAPS_TQP_TXRX_INDEP_B))
 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_INDEP_TXRX_B, 1);
 	if (hns3_get_bit(caps, HNS3_CAPS_STASH_B))
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.383658500 +0800
+++ 0027-net-hns3-fix-device-capabilities-for-copper-media-ty.patch	2021-05-10 23:59:26.350000000 +0800
@@ -1 +1 @@
-From 68ed5ee49de7f6e3a57c5ecca812b3bbcced6bbf Mon Sep 17 00:00:00 2001
+From e4e0a6505d77bec24938065bc77ecd0a74e02ae8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 68ed5ee49de7f6e3a57c5ecca812b3bbcced6bbf ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 32cd56b478..ec34615558 100644
+index 76d16a5a92..7f115d37ef 100644
@@ -29 +31 @@
-@@ -423,8 +423,14 @@ static void hns3_parse_capability(struct hns3_hw *hw,
+@@ -424,8 +424,14 @@ static void hns3_parse_capability(struct hns3_hw *hw,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: fix HW buffer size on MTU update' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (24 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/hns3: fix device capabilities for copper media type' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/hns3: remove unused parameter markers' " Xueming Li
                   ` (201 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Chengchang Tang; +Cc: Luca Boccassi, Lijun Ou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/3997b852411f2022478b2b32e1916f9a555a68b8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 3997b852411f2022478b2b32e1916f9a555a68b8 Mon Sep 17 00:00:00 2001
From: Chengchang Tang <tangchengchang@huawei.com>
Date: Thu, 4 Mar 2021 15:44:50 +0800
Subject: [PATCH] net/hns3: fix HW buffer size on MTU update
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 25fb790f7868f8eee96f7f051a834dec01b8a369 ]

After MTU changed, the buffer used to store packets in HW should be
reallocated. And buffer size is allocated based on the maximum frame
size in the PF struct. However, the value of maximum frame size  is
not updated in time when MTU is changed. This would lead to a packet
loss for not enough buffer.

This patch update the maximum frame size before reallocating the HW
buffer. And a rollback operation is added to avoid the side effects
of buffer reallocation failures.

Fixes: 1f5ca0b460cd ("net/hns3: support some device operations")
Fixes: d51867db65c1 ("net/hns3: add initialization")

Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index ba7d6e38a2..8f4ce58c0b 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2435,17 +2435,33 @@ hns3_set_mac_mtu(struct hns3_hw *hw, uint16_t new_mps)
 static int
 hns3_config_mtu(struct hns3_hw *hw, uint16_t mps)
 {
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+	uint16_t original_mps = hns->pf.mps;
+	int err;
 	int ret;
 
 	ret = hns3_set_mac_mtu(hw, mps);
 	if (ret) {
-		hns3_err(hw, "Failed to set mtu, ret = %d", ret);
+		hns3_err(hw, "failed to set mtu, ret = %d", ret);
 		return ret;
 	}
 
+	hns->pf.mps = mps;
 	ret = hns3_buffer_alloc(hw);
-	if (ret)
-		hns3_err(hw, "Failed to allocate buffer, ret = %d", ret);
+	if (ret) {
+		hns3_err(hw, "failed to allocate buffer, ret = %d", ret);
+		goto rollback;
+	}
+
+	return 0;
+
+rollback:
+	err = hns3_set_mac_mtu(hw, original_mps);
+	if (err) {
+		hns3_err(hw, "fail to rollback MTU, err = %d", err);
+		return ret;
+	}
+	hns->pf.mps = original_mps;
 
 	return ret;
 }
@@ -2480,7 +2496,7 @@ hns3_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 			 dev->data->port_id, mtu, ret);
 		return ret;
 	}
-	hns->pf.mps = (uint16_t)frame_size;
+
 	if (is_jumbo_frame)
 		dev->data->dev_conf.rxmode.offloads |=
 						DEV_RX_OFFLOAD_JUMBO_FRAME;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.408646500 +0800
+++ 0028-net-hns3-fix-HW-buffer-size-on-MTU-update.patch	2021-05-10 23:59:26.350000000 +0800
@@ -1 +1 @@
-From 25fb790f7868f8eee96f7f051a834dec01b8a369 Mon Sep 17 00:00:00 2001
+From 3997b852411f2022478b2b32e1916f9a555a68b8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 25fb790f7868f8eee96f7f051a834dec01b8a369 ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -27 +29 @@
-index b3fd331fe4..21c3c59cdd 100644
+index ba7d6e38a2..8f4ce58c0b 100644
@@ -30 +32 @@
-@@ -2460,17 +2460,33 @@ hns3_set_mac_mtu(struct hns3_hw *hw, uint16_t new_mps)
+@@ -2435,17 +2435,33 @@ hns3_set_mac_mtu(struct hns3_hw *hw, uint16_t new_mps)
@@ -67 +69 @@
-@@ -2505,7 +2521,7 @@ hns3_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
+@@ -2480,7 +2496,7 @@ hns3_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: remove unused parameter markers' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (25 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/hns3: fix HW buffer size on MTU update' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/bonding: fix LACP system address check' " Xueming Li
                   ` (200 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Huisong Li; +Cc: Luca Boccassi, Lijun Ou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/19922dfa9e13c872fdd60e2baca9cddec879f44d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 19922dfa9e13c872fdd60e2baca9cddec879f44d Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Thu, 4 Mar 2021 15:44:51 +0800
Subject: [PATCH] net/hns3: remove unused parameter markers
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e5081655405784a387127ed99c231565585d9302 ]

All input parameters in the "hns3_dev_xstats_get_by_id" API are used,
so the rte_unused flag of some variables should be deleted.

Fixes: 3213d584b698 ("net/hns3: fix xstats with id and names")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
---
 drivers/net/hns3/hns3_stats.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_stats.h b/drivers/net/hns3/hns3_stats.h
index 9fcd5f9bbf..09b81b131a 100644
--- a/drivers/net/hns3/hns3_stats.h
+++ b/drivers/net/hns3/hns3_stats.h
@@ -140,8 +140,8 @@ int hns3_dev_xstats_get_names(struct rte_eth_dev *dev,
 			      struct rte_eth_xstat_name *xstats_names,
 			      __rte_unused unsigned int size);
 int hns3_dev_xstats_get_by_id(struct rte_eth_dev *dev,
-			      __rte_unused const uint64_t *ids,
-			      __rte_unused uint64_t *values,
+			      const uint64_t *ids,
+			      uint64_t *values,
 			      uint32_t size);
 int hns3_dev_xstats_get_names_by_id(struct rte_eth_dev *dev,
 				    struct rte_eth_xstat_name *xstats_names,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.435535500 +0800
+++ 0029-net-hns3-remove-unused-parameter-markers.patch	2021-05-10 23:59:26.350000000 +0800
@@ -1 +1 @@
-From e5081655405784a387127ed99c231565585d9302 Mon Sep 17 00:00:00 2001
+From 19922dfa9e13c872fdd60e2baca9cddec879f44d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e5081655405784a387127ed99c231565585d9302 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 01b4f36dc4..70a9c5bcd5 100644
+index 9fcd5f9bbf..09b81b131a 100644
@@ -22 +24 @@
-@@ -156,8 +156,8 @@ int hns3_dev_xstats_get_names(struct rte_eth_dev *dev,
+@@ -140,8 +140,8 @@ int hns3_dev_xstats_get_names(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bonding: fix LACP system address check' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (26 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/hns3: remove unused parameter markers' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/txgbe: remove unused functions' " Xueming Li
                   ` (199 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Vadim Podovinnikov; +Cc: Luca Boccassi, Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/96cc541d1115b9ce2df3cf6c83e513c88766e040

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 96cc541d1115b9ce2df3cf6c83e513c88766e040 Mon Sep 17 00:00:00 2001
From: Vadim Podovinnikov <podovinnikov@protei.ru>
Date: Wed, 17 Feb 2021 16:26:55 +0000
Subject: [PATCH] net/bonding: fix LACP system address check
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit fad80ab3698e7f7d3e9c2a28c371da6a17fbc477 ]

In bond (LACP) we have several NICs (ports), when we have negotiation
with peer about what port we prefer, we send information about what
system we preferred in partner system name field. Peer also sends us
what partner system name it prefer.

When we receive a message from it we must compare its preferred system
name with our system name, but not with our port mac address

In my test I have several problems with that:
1. If master port (mac address same as system address) shuts down (I
   have two ports) I loose connection
2. If secondary port (mac address not same as system address) receives
   message before master port, my connection is not established.

Fixes: 56cbc0817399 ("net/bonding: fix LACP negotiation")

Signed-off-by: Vadim Podovinnikov <podovinnikov@protei.ru>
Acked-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
index 5fe004e551..128754f459 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.c
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
@@ -804,19 +804,34 @@ rx_machine_update(struct bond_dev_private *internals, uint16_t slave_id,
 		struct rte_mbuf *lacp_pkt) {
 	struct lacpdu_header *lacp;
 	struct lacpdu_actor_partner_params *partner;
+	struct port *port, *agg;
 
 	if (lacp_pkt != NULL) {
 		lacp = rte_pktmbuf_mtod(lacp_pkt, struct lacpdu_header *);
 		RTE_ASSERT(lacp->lacpdu.subtype == SLOW_SUBTYPE_LACP);
 
 		partner = &lacp->lacpdu.partner;
+		port = &bond_mode_8023ad_ports[slave_id];
+		agg = &bond_mode_8023ad_ports[port->aggregator_port_id];
+
 		if (rte_is_zero_ether_addr(&partner->port_params.system) ||
 			rte_is_same_ether_addr(&partner->port_params.system,
-			&internals->mode4.mac_addr)) {
+				&agg->actor.system)) {
 			/* This LACP frame is sending to the bonding port
 			 * so pass it to rx_machine.
 			 */
 			rx_machine(internals, slave_id, &lacp->lacpdu);
+		} else {
+			char preferred_system_name[RTE_ETHER_ADDR_FMT_SIZE];
+			char self_system_name[RTE_ETHER_ADDR_FMT_SIZE];
+
+			rte_ether_format_addr(preferred_system_name,
+				RTE_ETHER_ADDR_FMT_SIZE, &partner->port_params.system);
+			rte_ether_format_addr(self_system_name,
+				RTE_ETHER_ADDR_FMT_SIZE, &agg->actor.system);
+			MODE4_DEBUG("preferred partner system %s "
+				"is not equal with self system: %s\n",
+				preferred_system_name, self_system_name);
 		}
 		rte_pktmbuf_free(lacp_pkt);
 	} else
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.458009500 +0800
+++ 0030-net-bonding-fix-LACP-system-address-check.patch	2021-05-10 23:59:26.360000000 +0800
@@ -1 +1 @@
-From fad80ab3698e7f7d3e9c2a28c371da6a17fbc477 Mon Sep 17 00:00:00 2001
+From 96cc541d1115b9ce2df3cf6c83e513c88766e040 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit fad80ab3698e7f7d3e9c2a28c371da6a17fbc477 ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/txgbe: remove unused functions' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (27 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/bonding: fix LACP system address check' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/txgbe: fix Rx missed packet counter' " Xueming Li
                   ` (198 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/991c44b257506f3dbd66e180cfa7ba32f1efaf67

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 991c44b257506f3dbd66e180cfa7ba32f1efaf67 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Fri, 5 Mar 2021 10:14:35 +0800
Subject: [PATCH] net/txgbe: remove unused functions
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 9f1b1fbbdd483836f30004ce5db3b99080ebf718 ]

Remove unused functions for EEPROM read and write.

Fixes: 35c90ecccfd4 ("net/txgbe: add EEPROM functions")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/base/txgbe_eeprom.c | 76 +--------------------------
 drivers/net/txgbe/base/txgbe_eeprom.h |  2 -
 2 files changed, 2 insertions(+), 76 deletions(-)

diff --git a/drivers/net/txgbe/base/txgbe_eeprom.c b/drivers/net/txgbe/base/txgbe_eeprom.c
index 72cd3ff307..bcbf3503c8 100644
--- a/drivers/net/txgbe/base/txgbe_eeprom.c
+++ b/drivers/net/txgbe/base/txgbe_eeprom.c
@@ -193,7 +193,7 @@ s32 txgbe_ee_read16(struct txgbe_hw *hw, u32 offset,
 }
 
 /**
- *  txgbe_ee_read_buffer- Read EEPROM word(s) using hostif
+ *  txgbe_ee_readw_buffer- Read EEPROM word(s) using hostif
  *  @hw: pointer to hardware structure
  *  @offset: offset of  word in the EEPROM to read
  *  @words: number of words
@@ -274,42 +274,6 @@ s32 txgbe_ee_read32(struct txgbe_hw *hw, u32 addr, u32 *data)
 	return err;
 }
 
-/**
- *  txgbe_ee_read_buffer - Read EEPROM byte(s) using hostif
- *  @hw: pointer to hardware structure
- *  @addr: offset of bytes in the EEPROM to read
- *  @len: number of bytes
- *  @data: byte(s) read from the EEPROM
- *
- *  Reads a 8 bit byte(s) from the EEPROM using the hostif.
- **/
-s32 txgbe_ee_read_buffer(struct txgbe_hw *hw,
-				     u32 addr, u32 len, void *data)
-{
-	const u32 mask = TXGBE_MNGSEM_SWMBX | TXGBE_MNGSEM_SWFLASH;
-	u8 *buf = (u8 *)data;
-	int err;
-
-	err = hw->mac.acquire_swfw_sync(hw, mask);
-	if (err)
-		return err;
-
-	while (len) {
-		u32 seg = (len <= TXGBE_PMMBX_DATA_SIZE
-				? len : TXGBE_PMMBX_DATA_SIZE);
-
-		err = txgbe_hic_sr_read(hw, addr, buf, seg);
-		if (err)
-			break;
-
-		len -= seg;
-		buf += seg;
-	}
-
-	hw->mac.release_swfw_sync(hw, mask);
-	return err;
-}
-
 /**
  *  txgbe_ee_write - Write EEPROM word using hostif
  *  @hw: pointer to hardware structure
@@ -339,7 +303,7 @@ s32 txgbe_ee_write16(struct txgbe_hw *hw, u32 offset,
 }
 
 /**
- *  txgbe_ee_write_buffer - Write EEPROM word(s) using hostif
+ *  txgbe_ee_writew_buffer - Write EEPROM word(s) using hostif
  *  @hw: pointer to hardware structure
  *  @offset: offset of  word in the EEPROM to write
  *  @words: number of words
@@ -420,42 +384,6 @@ s32 txgbe_ee_write32(struct txgbe_hw *hw, u32 addr, u32 data)
 	return err;
 }
 
-/**
- *  txgbe_ee_write_buffer - Write EEPROM byte(s) using hostif
- *  @hw: pointer to hardware structure
- *  @addr: offset of bytes in the EEPROM to write
- *  @len: number of bytes
- *  @data: word(s) write to the EEPROM
- *
- *  Write a 8 bit byte(s) to the EEPROM using the hostif.
- **/
-s32 txgbe_ee_write_buffer(struct txgbe_hw *hw,
-				      u32 addr, u32 len, void *data)
-{
-	const u32 mask = TXGBE_MNGSEM_SWMBX | TXGBE_MNGSEM_SWFLASH;
-	u8 *buf = (u8 *)data;
-	int err;
-
-	err = hw->mac.acquire_swfw_sync(hw, mask);
-	if (err)
-		return err;
-
-	while (len) {
-		u32 seg = (len <= TXGBE_PMMBX_DATA_SIZE
-				? len : TXGBE_PMMBX_DATA_SIZE);
-
-		err = txgbe_hic_sr_write(hw, addr, buf, seg);
-		if (err)
-			break;
-
-		len -= seg;
-		buf += seg;
-	}
-
-	hw->mac.release_swfw_sync(hw, mask);
-	return err;
-}
-
 /**
  *  txgbe_calc_eeprom_checksum - Calculates and returns the checksum
  *  @hw: pointer to hardware structure
diff --git a/drivers/net/txgbe/base/txgbe_eeprom.h b/drivers/net/txgbe/base/txgbe_eeprom.h
index d0e142dba5..78b8af978b 100644
--- a/drivers/net/txgbe/base/txgbe_eeprom.h
+++ b/drivers/net/txgbe/base/txgbe_eeprom.h
@@ -51,14 +51,12 @@ s32 txgbe_ee_readw_sw(struct txgbe_hw *hw, u32 offset, u16 *data);
 s32 txgbe_ee_readw_buffer(struct txgbe_hw *hw, u32 offset, u32 words,
 				void *data);
 s32 txgbe_ee_read32(struct txgbe_hw *hw, u32 addr, u32 *data);
-s32 txgbe_ee_read_buffer(struct txgbe_hw *hw, u32 addr, u32 len, void *data);
 
 s32 txgbe_ee_write16(struct txgbe_hw *hw, u32 offset, u16 data);
 s32 txgbe_ee_writew_sw(struct txgbe_hw *hw, u32 offset, u16 data);
 s32 txgbe_ee_writew_buffer(struct txgbe_hw *hw, u32 offset, u32 words,
 				void *data);
 s32 txgbe_ee_write32(struct txgbe_hw *hw, u32 addr, u32 data);
-s32 txgbe_ee_write_buffer(struct txgbe_hw *hw, u32 addr, u32 len, void *data);
 
 
 #endif /* _TXGBE_EEPROM_H_ */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.480772900 +0800
+++ 0031-net-txgbe-remove-unused-functions.patch	2021-05-10 23:59:26.360000000 +0800
@@ -1 +1 @@
-From 9f1b1fbbdd483836f30004ce5db3b99080ebf718 Mon Sep 17 00:00:00 2001
+From 991c44b257506f3dbd66e180cfa7ba32f1efaf67 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 9f1b1fbbdd483836f30004ce5db3b99080ebf718 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/txgbe: fix Rx missed packet counter' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (28 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/txgbe: remove unused functions' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/txgbe: update packet type' " Xueming Li
                   ` (197 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/4d4ae30d079595fceae005624f66f96fb630fda0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4d4ae30d079595fceae005624f66f96fb630fda0 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Fri, 5 Mar 2021 10:14:36 +0800
Subject: [PATCH] net/txgbe: fix Rx missed packet counter
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit fa702fde0c3670bf0a206d9e074046274233c516 ]

Add the Rx dropped packet counter into stats->imissed, to ensure the
stats correct.

Fixes: c9bb590d4295 ("net/txgbe: support device statistics")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/base/txgbe_type.h | 1 +
 drivers/net/txgbe/txgbe_ethdev.c    | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/txgbe/base/txgbe_type.h b/drivers/net/txgbe/base/txgbe_type.h
index b322a2cac8..4e9a7deb12 100644
--- a/drivers/net/txgbe/base/txgbe_type.h
+++ b/drivers/net/txgbe/base/txgbe_type.h
@@ -284,6 +284,7 @@ struct txgbe_hw_stats {
 	u64 rx_management_packets;
 	u64 tx_management_packets;
 	u64 rx_management_dropped;
+	u64 rx_dma_drop;
 	u64 rx_drop_packets;
 
 	/* Basic Error */
diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index f8dffe1f12..63bae511ef 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1881,6 +1881,7 @@ txgbe_read_stats_registers(struct txgbe_hw *hw,
 
 	hw_stats->rx_bytes += rd64(hw, TXGBE_DMARXOCTL);
 	hw_stats->tx_bytes += rd64(hw, TXGBE_DMATXOCTL);
+	hw_stats->rx_dma_drop += rd32(hw, TXGBE_DMARXDROP);
 	hw_stats->rx_drop_packets += rd32(hw, TXGBE_PBRXDROP);
 
 	/* MAC Stats */
@@ -2029,7 +2030,8 @@ txgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 	}
 
 	/* Rx Errors */
-	stats->imissed  = hw_stats->rx_total_missed_packets;
+	stats->imissed  = hw_stats->rx_total_missed_packets +
+			  hw_stats->rx_dma_drop;
 	stats->ierrors  = hw_stats->rx_crc_errors +
 			  hw_stats->rx_mac_short_packet_dropped +
 			  hw_stats->rx_length_errors +
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.505093800 +0800
+++ 0032-net-txgbe-fix-Rx-missed-packet-counter.patch	2021-05-10 23:59:26.360000000 +0800
@@ -1 +1 @@
-From fa702fde0c3670bf0a206d9e074046274233c516 Mon Sep 17 00:00:00 2001
+From 4d4ae30d079595fceae005624f66f96fb630fda0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit fa702fde0c3670bf0a206d9e074046274233c516 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index ef8358ae37..2c8a3866a7 100644
+index b322a2cac8..4e9a7deb12 100644
@@ -22 +24 @@
-@@ -353,6 +353,7 @@ struct txgbe_hw_stats {
+@@ -284,6 +284,7 @@ struct txgbe_hw_stats {
@@ -31 +33 @@
-index 90137d0ceb..1ab8d2cded 100644
+index f8dffe1f12..63bae511ef 100644
@@ -34 +36 @@
-@@ -2080,6 +2080,7 @@ txgbe_read_stats_registers(struct txgbe_hw *hw,
+@@ -1881,6 +1881,7 @@ txgbe_read_stats_registers(struct txgbe_hw *hw,
@@ -42 +44 @@
-@@ -2228,7 +2229,8 @@ txgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
+@@ -2029,7 +2030,8 @@ txgbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/txgbe: update packet type' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (29 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/txgbe: fix Rx missed packet counter' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ice: fix VLAN filter with PF' " Xueming Li
                   ` (196 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/58fc7f65f2ce721e274f74709d0be7623de5244e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 58fc7f65f2ce721e274f74709d0be7623de5244e Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Fri, 5 Mar 2021 10:14:37 +0800
Subject: [PATCH] net/txgbe: update packet type
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 893b78035463f9d2eb35ea02ad7049312e2f855e ]

Update the packet type lookup table according to the HW design.
Fix the bug that inner L3 and L4 type can not be parsed when
QINQ insert in tunnel packet.

Fixes: 9e30b88f60b2 ("net/txgbe: support packet type")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ptypes.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/txgbe/txgbe_ptypes.c b/drivers/net/txgbe/txgbe_ptypes.c
index cd160ebbaf..7009f20821 100644
--- a/drivers/net/txgbe/txgbe_ptypes.c
+++ b/drivers/net/txgbe/txgbe_ptypes.c
@@ -50,6 +50,7 @@
 static u32 txgbe_ptype_lookup[TXGBE_PTID_MAX] __rte_cache_aligned = {
 	/* L2:0-3 L3:4-7 L4:8-11 TUN:12-15 EL2:16-19 EL3:20-23 EL2:24-27 */
 	/* L2: ETH */
+	TPTE(0x10, ETHER,          NONE, NONE, NONE, NONE, NONE, NONE),
 	TPTE(0x11, ETHER,          NONE, NONE, NONE, NONE, NONE, NONE),
 	TPTE(0x12, ETHER_TIMESYNC, NONE, NONE, NONE, NONE, NONE, NONE),
 	TPTE(0x13, ETHER_FIP,      NONE, NONE, NONE, NONE, NONE, NONE),
@@ -67,6 +68,7 @@ static u32 txgbe_ptype_lookup[TXGBE_PTID_MAX] __rte_cache_aligned = {
 	TPTE(0x1E, ETHER_FILTER,   NONE, NONE, NONE, NONE, NONE, NONE),
 	TPTE(0x1F, ETHER_FILTER,   NONE, NONE, NONE, NONE, NONE, NONE),
 	/* L3: IP */
+	TPTE(0x20, ETHER, IPV4, NONFRAG, NONE, NONE, NONE, NONE),
 	TPTE(0x21, ETHER, IPV4, FRAG,    NONE, NONE, NONE, NONE),
 	TPTE(0x22, ETHER, IPV4, NONFRAG, NONE, NONE, NONE, NONE),
 	TPTE(0x23, ETHER, IPV4, UDP,     NONE, NONE, NONE, NONE),
@@ -339,7 +341,7 @@ txgbe_encode_ptype_tunnel(u32 ptype)
 		break;
 	case RTE_PTYPE_INNER_L2_ETHER_QINQ:
 		ptid |= TXGBE_PTID_TUN_EIGMV;
-		return ptid;
+		break;
 	default:
 		break;
 	}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.528868400 +0800
+++ 0033-net-txgbe-update-packet-type.patch	2021-05-10 23:59:26.360000000 +0800
@@ -1 +1 @@
-From 893b78035463f9d2eb35ea02ad7049312e2f855e Mon Sep 17 00:00:00 2001
+From 58fc7f65f2ce721e274f74709d0be7623de5244e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 893b78035463f9d2eb35ea02ad7049312e2f855e ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ice: fix VLAN filter with PF' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (30 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/txgbe: update packet type' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/igc: remove MTU setting limitation' " Xueming Li
                   ` (195 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Alvin Zhang; +Cc: Luca Boccassi, Zhimin Huang, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/f27ac1c00932691e806d55dc66be578bd57cf7fc

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f27ac1c00932691e806d55dc66be578bd57cf7fc Mon Sep 17 00:00:00 2001
From: Alvin Zhang <alvinx.zhang@intel.com>
Date: Fri, 19 Feb 2021 13:13:46 +0800
Subject: [PATCH] net/ice: fix VLAN filter with PF
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit da996000e8ea513ee47e3e01f0f4e709e66cec07 ]

The macro flag DEV_RX_OFFLOAD_VLAN_FILTER is used to enable/disable
Rx VLAN filter, but not Tx VLAN filter. Therefore, Tx VLAN filter
should not be enabled/disabled in function ice_vsi_config_vlan_filter
called after checking DEV_RX_OFFLOAD_VLAN_FILTER flag.

In addition, the kernel driver doesn't enable/disable the TX VLAN
filter in the similar function ice_cfg_vlan_pruning.

This patch removes the setting about the TX VLAN filter in function
ice_vsi_config_vlan_filter.

Fixes: e0dcf94a0d7f ("net/ice: support VLAN ops")

Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
Tested-by: Zhimin Huang <zhiminx.huang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 70e5f74b2f..d789650652 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -4039,20 +4039,16 @@ ice_vsi_config_vlan_filter(struct ice_vsi *vsi, bool on)
 {
 	struct ice_hw *hw = ICE_VSI_TO_HW(vsi);
 	struct ice_vsi_ctx ctxt;
-	uint8_t sec_flags, sw_flags2;
+	uint8_t sw_flags2;
 	int ret = 0;
 
-	sec_flags = ICE_AQ_VSI_SEC_TX_VLAN_PRUNE_ENA <<
-		    ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S;
 	sw_flags2 = ICE_AQ_VSI_SW_FLAG_RX_VLAN_PRUNE_ENA;
 
-	if (on) {
-		vsi->info.sec_flags |= sec_flags;
+	if (on)
 		vsi->info.sw_flags2 |= sw_flags2;
-	} else {
-		vsi->info.sec_flags &= ~sec_flags;
+	else
 		vsi->info.sw_flags2 &= ~sw_flags2;
-	}
+
 	vsi->info.sw_id = hw->port_info->sw_id;
 	(void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info));
 	ctxt.info.valid_sections =
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.551984200 +0800
+++ 0034-net-ice-fix-VLAN-filter-with-PF.patch	2021-05-10 23:59:26.360000000 +0800
@@ -1 +1 @@
-From da996000e8ea513ee47e3e01f0f4e709e66cec07 Mon Sep 17 00:00:00 2001
+From f27ac1c00932691e806d55dc66be578bd57cf7fc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit da996000e8ea513ee47e3e01f0f4e709e66cec07 ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index dfd99ace94..8999d441ac 100644
+index 70e5f74b2f..d789650652 100644
@@ -31 +33 @@
-@@ -4011,20 +4011,16 @@ ice_vsi_config_vlan_filter(struct ice_vsi *vsi, bool on)
+@@ -4039,20 +4039,16 @@ ice_vsi_config_vlan_filter(struct ice_vsi *vsi, bool on)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/igc: remove MTU setting limitation' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (31 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ice: fix VLAN filter with PF' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/e1000: " Xueming Li
                   ` (194 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Dapeng Yu; +Cc: Luca Boccassi, Jeff Guo, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/f9b6f0ca8b382686cf390db90e0bd95036e3ed6c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f9b6f0ca8b382686cf390db90e0bd95036e3ed6c Mon Sep 17 00:00:00 2001
From: Dapeng Yu <dapengx.yu@intel.com>
Date: Fri, 19 Feb 2021 18:01:07 +0800
Subject: [PATCH] net/igc: remove MTU setting limitation
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 5db232fa5aed20f7b1b2eeed19c17a97259c1261 ]

Currently, if requested MTU is bigger than mbuf size and scattered
receive is not enabled, setting MTU to that value fails.

This patch allows setting this special MTU when device is stopped,
because scattered_rx will be re-configured during next port start
and driver may enable scattered receive according new MTU value.

After this patch, driver may select different receive function
automatically after MTU set, according MTU values selected.

Fixes: a5aeb2b9e225 ("net/igc: support Rx and Tx")

Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
---
 drivers/net/igc/igc_ethdev.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c
index 802212fc57..75e114b9ca 100644
--- a/drivers/net/igc/igc_ethdev.c
+++ b/drivers/net/igc/igc_ethdev.c
@@ -1590,12 +1590,14 @@ eth_igc_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 		return -EINVAL;
 
 	/*
-	 * refuse mtu that requires the support of scattered packets when
-	 * this feature has not been enabled before.
+	 * If device is started, refuse mtu that requires the support of
+	 * scattered packets when this feature has not been enabled before.
 	 */
-	if (!dev->data->scattered_rx &&
-	    frame_size > dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM)
+	if (dev->data->dev_started && !dev->data->scattered_rx &&
+	    frame_size > dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM) {
+		PMD_INIT_LOG(ERR, "Stop port first.");
 		return -EINVAL;
+	}
 
 	rctl = IGC_READ_REG(hw, IGC_RCTL);
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.577615200 +0800
+++ 0035-net-igc-remove-MTU-setting-limitation.patch	2021-05-10 23:59:26.360000000 +0800
@@ -1 +1 @@
-From 5db232fa5aed20f7b1b2eeed19c17a97259c1261 Mon Sep 17 00:00:00 2001
+From f9b6f0ca8b382686cf390db90e0bd95036e3ed6c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 5db232fa5aed20f7b1b2eeed19c17a97259c1261 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index dbaa7a83e5..0ea6e2a045 100644
+index 802212fc57..75e114b9ca 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/e1000: remove MTU setting limitation' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (32 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/igc: remove MTU setting limitation' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ice/base: fix payload indicator on ptype' " Xueming Li
                   ` (193 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Dapeng Yu; +Cc: Luca Boccassi, Jeff Guo, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/e3486cbde8ea2bb1c791c9711e28820ce75a0e7d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e3486cbde8ea2bb1c791c9711e28820ce75a0e7d Mon Sep 17 00:00:00 2001
From: Dapeng Yu <dapengx.yu@intel.com>
Date: Fri, 19 Feb 2021 18:03:23 +0800
Subject: [PATCH] net/e1000: remove MTU setting limitation
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 0984d196be2a92eb6e2e0b926fdb4a06a1d7d823 ]

Currently, if requested MTU is bigger than mbuf size and scattered
receive is not enabled, setting MTU to that value fails.

This patch allows setting this special MTU when device is stopped,
because scattered_rx will be re-configured during next port start
and driver may enable scattered receive according new MTU value.

After this patch, driver may select different receive function
automatically after MTU set, according MTU values selected.

Fixes: 59d0ecdbf0e1 ("ethdev: MTU accessors")

Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
---
 drivers/net/e1000/em_ethdev.c  | 12 ++++++++----
 drivers/net/e1000/igb_ethdev.c | 12 ++++++++----
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index 2036c6e917..f116063876 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -1805,11 +1805,15 @@ eth_em_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 	if (mtu < RTE_ETHER_MIN_MTU || frame_size > dev_info.max_rx_pktlen)
 		return -EINVAL;
 
-	/* refuse mtu that requires the support of scattered packets when this
-	 * feature has not been enabled before. */
-	if (!dev->data->scattered_rx &&
-	    frame_size > dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM)
+	/*
+	 * If device is started, refuse mtu that requires the support of
+	 * scattered packets when this feature has not been enabled before.
+	 */
+	if (dev->data->dev_started && !dev->data->scattered_rx &&
+	    frame_size > dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM) {
+		PMD_INIT_LOG(ERR, "Stop port first.");
 		return -EINVAL;
+	}
 
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	rctl = E1000_READ_REG(hw, E1000_RCTL);
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 5bcc67d75f..669af23103 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -4394,11 +4394,15 @@ eth_igb_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 			frame_size > dev_info.max_rx_pktlen)
 		return -EINVAL;
 
-	/* refuse mtu that requires the support of scattered packets when this
-	 * feature has not been enabled before. */
-	if (!dev->data->scattered_rx &&
-	    frame_size > dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM)
+	/*
+	 * If device is started, refuse mtu that requires the support of
+	 * scattered packets when this feature has not been enabled before.
+	 */
+	if (dev->data->dev_started && !dev->data->scattered_rx &&
+	    frame_size > dev->data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM) {
+		PMD_INIT_LOG(ERR, "Stop port first.");
 		return -EINVAL;
+	}
 
 	rctl = E1000_READ_REG(hw, E1000_RCTL);
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.600968100 +0800
+++ 0036-net-e1000-remove-MTU-setting-limitation.patch	2021-05-10 23:59:26.370000000 +0800
@@ -1 +1 @@
-From 0984d196be2a92eb6e2e0b926fdb4a06a1d7d823 Mon Sep 17 00:00:00 2001
+From e3486cbde8ea2bb1c791c9711e28820ce75a0e7d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 0984d196be2a92eb6e2e0b926fdb4a06a1d7d823 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -27 +29 @@
-index 9b8c4a7de5..3c6f643c19 100644
+index 2036c6e917..f116063876 100644
@@ -51 +53 @@
-index 5323504e98..1716d6b904 100644
+index 5bcc67d75f..669af23103 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ice/base: fix payload indicator on ptype' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (33 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/e1000: " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ice/base: fix uninitialized struct' " Xueming Li
                   ` (192 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Luca Boccassi, Jacob Keller, Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/d4ef2f169e4d922a62efc272fbf491a368004fc2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d4ef2f169e4d922a62efc272fbf491a368004fc2 Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 2 Mar 2021 15:23:52 +0800
Subject: [PATCH] net/ice/base: fix payload indicator on ptype
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 50fb95cb66d0dc993e98500a8384eb366b0d7b52 ]

The entry for PTYPE 90 indicates that the payload is layer 3. This does
not match the specification in the datasheet which indicates the packet
is a MAC, IPv6, UDP packet, with a payload in layer 4.

Fix the lookup table to match the data sheet.

Fixes: 64e9587d5629 ("net/ice/base: add structures for Rx/Tx queues")

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/net/ice/base/ice_lan_tx_rx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ice/base/ice_lan_tx_rx.h b/drivers/net/ice/base/ice_lan_tx_rx.h
index ec0c9f3ab0..7039cc8d92 100644
--- a/drivers/net/ice/base/ice_lan_tx_rx.h
+++ b/drivers/net/ice/base/ice_lan_tx_rx.h
@@ -1353,7 +1353,7 @@ static const struct ice_rx_ptype_decoded ice_ptype_lkup[] = {
 	/* Non Tunneled IPv6 */
 	ICE_PTT(88, IP, IPV6, FRG, NONE, NONE, NOF, NONE, PAY3),
 	ICE_PTT(89, IP, IPV6, NOF, NONE, NONE, NOF, NONE, PAY3),
-	ICE_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP,  PAY3),
+	ICE_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP,  PAY4),
 	ICE_PTT_UNUSED_ENTRY(91),
 	ICE_PTT(92, IP, IPV6, NOF, NONE, NONE, NOF, TCP,  PAY4),
 	ICE_PTT(93, IP, IPV6, NOF, NONE, NONE, NOF, SCTP, PAY4),
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.627007900 +0800
+++ 0037-net-ice-base-fix-payload-indicator-on-ptype.patch	2021-05-10 23:59:26.370000000 +0800
@@ -1 +1 @@
-From 50fb95cb66d0dc993e98500a8384eb366b0d7b52 Mon Sep 17 00:00:00 2001
+From d4ef2f169e4d922a62efc272fbf491a368004fc2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 50fb95cb66d0dc993e98500a8384eb366b0d7b52 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 107826acd0..e0e79cad95 100644
+index ec0c9f3ab0..7039cc8d92 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ice/base: fix uninitialized struct' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (34 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ice/base: fix payload indicator on ptype' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ice/base: cleanup filter list on error' " Xueming Li
                   ` (191 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Luca Boccassi, Jesse Brandeburg, Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/8d88d38931c2d0b5c7b38d1121a0f7f8ef79cf7c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8d88d38931c2d0b5c7b38d1121a0f7f8ef79cf7c Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 2 Mar 2021 15:23:56 +0800
Subject: [PATCH] net/ice/base: fix uninitialized struct
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 739dee1f22d9d2d537fe5d38bb90ba29606e0196 ]

One of the structs being used for ACL counter rules was allocated on
the stack and left uninitialized.  Rather than depending on
undefined behavior around the .amount member during rule removal,
just leave a comment and initialize the struct to zero, as this is a
slow path call anyway. This bug could have caused silent failures
during counter removal.

Fixes: f3202a097f12 ("net/ice/base: add ACL module")

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/net/ice/base/ice_flow.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c
index 1b36c2b897..548d998546 100644
--- a/drivers/net/ice/base/ice_flow.c
+++ b/drivers/net/ice/base/ice_flow.c
@@ -1732,9 +1732,14 @@ ice_flow_acl_free_act_cntr(struct ice_hw *hw, struct ice_flow_action *acts,
 		if (acts[i].type == ICE_FLOW_ACT_CNTR_PKT ||
 		    acts[i].type == ICE_FLOW_ACT_CNTR_BYTES ||
 		    acts[i].type == ICE_FLOW_ACT_CNTR_PKT_BYTES) {
-			struct ice_acl_cntrs cntrs;
+			struct ice_acl_cntrs cntrs = { 0 };
 			enum ice_status status;
 
+			/* amount is unused in the dealloc path but the common
+			 * parameter check routine wants a value set, as zero
+			 * is invalid for the check. Just set it.
+			 */
+			cntrs.amount = 1;
 			cntrs.bank = 0; /* Only bank0 for the moment */
 			cntrs.first_cntr =
 					LE16_TO_CPU(acts[i].data.acl_act.value);
@@ -2333,7 +2338,7 @@ ice_flow_acl_check_actions(struct ice_hw *hw, struct ice_flow_action *acts,
 		if (acts[i].type == ICE_FLOW_ACT_CNTR_PKT ||
 		    acts[i].type == ICE_FLOW_ACT_CNTR_BYTES ||
 		    acts[i].type == ICE_FLOW_ACT_CNTR_PKT_BYTES) {
-			struct ice_acl_cntrs cntrs;
+			struct ice_acl_cntrs cntrs = { 0 };
 			enum ice_status status;
 
 			cntrs.amount = 1;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.650212400 +0800
+++ 0038-net-ice-base-fix-uninitialized-struct.patch	2021-05-10 23:59:26.370000000 +0800
@@ -1 +1 @@
-From 739dee1f22d9d2d537fe5d38bb90ba29606e0196 Mon Sep 17 00:00:00 2001
+From 8d88d38931c2d0b5c7b38d1121a0f7f8ef79cf7c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 739dee1f22d9d2d537fe5d38bb90ba29606e0196 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index a081fbe5a4..d123206fc6 100644
+index 1b36c2b897..548d998546 100644
@@ -27 +29 @@
-@@ -1795,9 +1795,14 @@ ice_flow_acl_free_act_cntr(struct ice_hw *hw, struct ice_flow_action *acts,
+@@ -1732,9 +1732,14 @@ ice_flow_acl_free_act_cntr(struct ice_hw *hw, struct ice_flow_action *acts,
@@ -43 +45 @@
-@@ -2396,7 +2401,7 @@ ice_flow_acl_check_actions(struct ice_hw *hw, struct ice_flow_action *acts,
+@@ -2333,7 +2338,7 @@ ice_flow_acl_check_actions(struct ice_hw *hw, struct ice_flow_action *acts,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ice/base: cleanup filter list on error' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (35 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ice/base: fix uninitialized struct' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/i40evf: fix packet loss for X722' " Xueming Li
                   ` (190 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Luca Boccassi, Robert Malz, Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/0d32ae0c6f43fe3a954bc3016b80fecc0e132125

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0d32ae0c6f43fe3a954bc3016b80fecc0e132125 Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 2 Mar 2021 15:23:57 +0800
Subject: [PATCH] net/ice/base: cleanup filter list on error
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 34ede45188c318e451ef98183814cc4555208f46 ]

When ice_remove_vsi_lkup_fltr is called, by calling
ice_add_to_vsi_fltr_list local copy of vsi filter list
is created. If any issues during creation of vsi filter
list occurs it up for the caller to free already
allocated memory. This patch ensures proper memory
deallocation in these cases.

Fixes: c7dd15931183 ("net/ice/base: add virtual switch code")

Signed-off-by: Robert Malz <robertx.malz@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/net/ice/base/ice_switch.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c
index 247c3acb67..e6ea04183f 100644
--- a/drivers/net/ice/base/ice_switch.c
+++ b/drivers/net/ice/base/ice_switch.c
@@ -5602,7 +5602,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,
 					  &remove_list_head);
 	ice_release_lock(rule_lock);
 	if (status)
-		return;
+		goto free_fltr_list;
 
 	switch (lkup) {
 	case ICE_SW_LKUP_MAC:
@@ -5630,6 +5630,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,
 		break;
 	}
 
+free_fltr_list:
 	LIST_FOR_EACH_ENTRY_SAFE(fm_entry, tmp, &remove_list_head,
 				 ice_fltr_list_entry, list_entry) {
 		LIST_DEL(&fm_entry->list_entry);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.676447800 +0800
+++ 0039-net-ice-base-cleanup-filter-list-on-error.patch	2021-05-10 23:59:26.380000000 +0800
@@ -1 +1 @@
-From 34ede45188c318e451ef98183814cc4555208f46 Mon Sep 17 00:00:00 2001
+From 0d32ae0c6f43fe3a954bc3016b80fecc0e132125 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 34ede45188c318e451ef98183814cc4555208f46 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 2d0dd4b28c..3dc764266b 100644
+index 247c3acb67..e6ea04183f 100644
@@ -27 +29 @@
-@@ -6078,7 +6078,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,
+@@ -5602,7 +5602,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,
@@ -36 +38 @@
-@@ -6106,6 +6106,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,
+@@ -5630,6 +5630,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/i40evf: fix packet loss for X722' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (36 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/ice/base: cleanup filter list on error' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/i40e: fix IPv4 fragment offload' " Xueming Li
                   ` (189 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Beilei Xing; +Cc: Luca Boccassi, Hengjian Zhang, Jeff Guo, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/94610393111ac87f41e5ee6550a843b743b172d2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 94610393111ac87f41e5ee6550a843b743b172d2 Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing@intel.com>
Date: Wed, 24 Feb 2021 10:09:00 +0800
Subject: [PATCH] net/i40evf: fix packet loss for X722
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c45bd78e07e9d4b5ffc29748b9b7d4127293597a ]

When Tx queue number is more than Rx queue number, and RSS is
enabled, there'll be packet loss with X722.
The root cause is the lookup table is not configured correctly,
since it uses VF's queue pair number but not Rx queue number.

Fixes: 2da3ba746795 ("net/i40e: fix VF runtime queues RSS config")

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Signed-off-by: Hengjian Zhang <hengjianx.zhang@intel.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
---
 drivers/net/i40e/i40e_ethdev_vf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index bca8cb80e4..62acad702d 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -2745,7 +2745,7 @@ i40evf_config_rss(struct i40e_vf *vf)
 		}
 
 		for (i = 0; i < rss_lut_size; i++)
-			lut_info[i] = i % vf->num_queue_pairs;
+			lut_info[i] = i % num;
 
 		ret = i40evf_set_rss_lut(&vf->vsi, lut_info,
 					 rss_lut_size);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.704359600 +0800
+++ 0040-net-i40evf-fix-packet-loss-for-X722.patch	2021-05-10 23:59:26.380000000 +0800
@@ -1 +1 @@
-From c45bd78e07e9d4b5ffc29748b9b7d4127293597a Mon Sep 17 00:00:00 2001
+From 94610393111ac87f41e5ee6550a843b743b172d2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c45bd78e07e9d4b5ffc29748b9b7d4127293597a ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 2909b4d894..0c9bd8d2c6 100644
+index bca8cb80e4..62acad702d 100644
@@ -25 +27 @@
-@@ -2746,7 +2746,7 @@ i40evf_config_rss(struct i40e_vf *vf)
+@@ -2745,7 +2745,7 @@ i40evf_config_rss(struct i40e_vf *vf)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/i40e: fix IPv4 fragment offload' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (37 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/i40evf: fix packet loss for X722' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix Rx segmented packets on mbuf starvation' " Xueming Li
                   ` (188 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Xiaoyun Li; +Cc: Luca Boccassi, Beilei Xing, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/d0de930b7b5cd26106ad1660628283acf20af2b3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d0de930b7b5cd26106ad1660628283acf20af2b3 Mon Sep 17 00:00:00 2001
From: Xiaoyun Li <xiaoyun.li@intel.com>
Date: Tue, 2 Mar 2021 15:03:20 +0800
Subject: [PATCH] net/i40e: fix IPv4 fragment offload
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 10127dbacf7c041a1b67b9e962635b31184bd604 ]

IPv4 fragment_offset mask was required to be 0 no matter what the
spec value was. But zero mask means not caring about fragment_offset
field then both non-frag and frag packets should hit the rule.

But the actual fragment rules should be like the following:
Only non-fragment packets can hit Rule 1:
Rule 1: mask=0x3fff, spec=0
Only fragment packets can hit rule 2:
Rule 2: mask=0x3fff, spec=0x8, last=0x2000

This patch allows the above rules.

Fixes: 42044b69c67d ("net/i40e: support input set selection for FDIR")

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
 drivers/net/i40e/i40e_flow.c | 87 ++++++++++++++++++++++++++++++++----
 1 file changed, 78 insertions(+), 9 deletions(-)

diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
index bbd666b7a0..5bef8c76a7 100644
--- a/drivers/net/i40e/i40e_flow.c
+++ b/drivers/net/i40e/i40e_flow.c
@@ -2433,7 +2433,7 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,
 	const struct rte_flow_item *item = pattern;
 	const struct rte_flow_item_eth *eth_spec, *eth_mask;
 	const struct rte_flow_item_vlan *vlan_spec, *vlan_mask;
-	const struct rte_flow_item_ipv4 *ipv4_spec, *ipv4_mask;
+	const struct rte_flow_item_ipv4 *ipv4_spec, *ipv4_last, *ipv4_mask;
 	const struct rte_flow_item_ipv6 *ipv6_spec, *ipv6_mask;
 	const struct rte_flow_item_tcp *tcp_spec, *tcp_mask;
 	const struct rte_flow_item_udp *udp_spec, *udp_mask;
@@ -2446,7 +2446,6 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,
 
 	uint8_t pctype = 0;
 	uint64_t input_set = I40E_INSET_NONE;
-	uint16_t frag_off;
 	enum rte_flow_item_type item_type;
 	enum rte_flow_item_type next_type;
 	enum rte_flow_item_type l3 = RTE_FLOW_ITEM_TYPE_END;
@@ -2472,7 +2471,7 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,
 	memset(len_arr, 0, sizeof(len_arr));
 	filter->input.flow_ext.customized_pctype = false;
 	for (; item->type != RTE_FLOW_ITEM_TYPE_END; item++) {
-		if (item->last) {
+		if (item->last && item->type != RTE_FLOW_ITEM_TYPE_IPV4) {
 			rte_flow_error_set(error, EINVAL,
 					   RTE_FLOW_ERROR_TYPE_ITEM,
 					   item,
@@ -2611,15 +2610,40 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,
 			l3 = RTE_FLOW_ITEM_TYPE_IPV4;
 			ipv4_spec = item->spec;
 			ipv4_mask = item->mask;
+			ipv4_last = item->last;
 			pctype = I40E_FILTER_PCTYPE_NONF_IPV4_OTHER;
 			layer_idx = I40E_FLXPLD_L3_IDX;
 
+			if (ipv4_last) {
+				if (!ipv4_spec || !ipv4_mask || !outer_ip) {
+					rte_flow_error_set(error, EINVAL,
+						RTE_FLOW_ERROR_TYPE_ITEM,
+						item,
+						"Not support range");
+					return -rte_errno;
+				}
+				/* Only fragment_offset supports range */
+				if (ipv4_last->hdr.version_ihl ||
+				    ipv4_last->hdr.type_of_service ||
+				    ipv4_last->hdr.total_length ||
+				    ipv4_last->hdr.packet_id ||
+				    ipv4_last->hdr.time_to_live ||
+				    ipv4_last->hdr.next_proto_id ||
+				    ipv4_last->hdr.hdr_checksum ||
+				    ipv4_last->hdr.src_addr ||
+				    ipv4_last->hdr.dst_addr) {
+					rte_flow_error_set(error, EINVAL,
+						   RTE_FLOW_ERROR_TYPE_ITEM,
+						   item,
+						   "Not support range");
+					return -rte_errno;
+				}
+			}
 			if (ipv4_spec && ipv4_mask && outer_ip) {
 				/* Check IPv4 mask and update input set */
 				if (ipv4_mask->hdr.version_ihl ||
 				    ipv4_mask->hdr.total_length ||
 				    ipv4_mask->hdr.packet_id ||
-				    ipv4_mask->hdr.fragment_offset ||
 				    ipv4_mask->hdr.hdr_checksum) {
 					rte_flow_error_set(error, EINVAL,
 						   RTE_FLOW_ERROR_TYPE_ITEM,
@@ -2640,11 +2664,56 @@ i40e_flow_parse_fdir_pattern(struct rte_eth_dev *dev,
 					input_set |= I40E_INSET_IPV4_PROTO;
 
 				/* Check if it is fragment. */
-				frag_off = ipv4_spec->hdr.fragment_offset;
-				frag_off = rte_be_to_cpu_16(frag_off);
-				if (frag_off & RTE_IPV4_HDR_OFFSET_MASK ||
-				    frag_off & RTE_IPV4_HDR_MF_FLAG)
-					pctype = I40E_FILTER_PCTYPE_FRAG_IPV4;
+				uint16_t frag_mask =
+					ipv4_mask->hdr.fragment_offset;
+				uint16_t frag_spec =
+					ipv4_spec->hdr.fragment_offset;
+				uint16_t frag_last = 0;
+				if (ipv4_last)
+					frag_last =
+					ipv4_last->hdr.fragment_offset;
+				if (frag_mask) {
+					frag_mask = rte_be_to_cpu_16(frag_mask);
+					frag_spec = rte_be_to_cpu_16(frag_spec);
+					frag_last = rte_be_to_cpu_16(frag_last);
+					/* frag_off mask has to be 0x3fff */
+					if (frag_mask !=
+					    (RTE_IPV4_HDR_OFFSET_MASK |
+					    RTE_IPV4_HDR_MF_FLAG)) {
+						rte_flow_error_set(error,
+						   EINVAL,
+						   RTE_FLOW_ERROR_TYPE_ITEM,
+						   item,
+						   "Invalid IPv4 fragment_offset mask");
+						return -rte_errno;
+					}
+					/*
+					 * non-frag rule:
+					 * mask=0x3fff,spec=0
+					 * frag rule:
+					 * mask=0x3fff,spec=0x8,last=0x2000
+					 */
+					if (frag_spec ==
+					    (1 << RTE_IPV4_HDR_FO_SHIFT) &&
+					    frag_last == RTE_IPV4_HDR_MF_FLAG) {
+						pctype =
+						  I40E_FILTER_PCTYPE_FRAG_IPV4;
+					} else if (frag_spec || frag_last) {
+						rte_flow_error_set(error,
+						   EINVAL,
+						   RTE_FLOW_ERROR_TYPE_ITEM,
+						   item,
+						   "Invalid IPv4 fragment_offset rule");
+						return -rte_errno;
+					}
+				} else if (frag_spec || frag_last) {
+					rte_flow_error_set(error,
+						EINVAL,
+						RTE_FLOW_ERROR_TYPE_ITEM,
+						item,
+						"Invalid fragment_offset");
+					return -rte_errno;
+				}
 
 				if (input_set & (I40E_INSET_DMAC | I40E_INSET_SMAC)) {
 					if (input_set & (I40E_INSET_IPV4_SRC |
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.728231900 +0800
+++ 0041-net-i40e-fix-IPv4-fragment-offload.patch	2021-05-10 23:59:26.380000000 +0800
@@ -1 +1 @@
-From 10127dbacf7c041a1b67b9e962635b31184bd604 Mon Sep 17 00:00:00 2001
+From d0de930b7b5cd26106ad1660628283acf20af2b3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 10127dbacf7c041a1b67b9e962635b31184bd604 ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index 4d44282312..3e514d5f38 100644
+index bbd666b7a0..5bef8c76a7 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix Rx segmented packets on mbuf starvation' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (38 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/i40e: fix IPv4 fragment offload' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/octeontx2: fix VLAN filter' " Xueming Li
                   ` (187 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Jiawei Zhu; +Cc: Luca Boccassi, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/6f1a03c53ef11381577d7f9c8216c9ec4da7fb63

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6f1a03c53ef11381577d7f9c8216c9ec4da7fb63 Mon Sep 17 00:00:00 2001
From: Jiawei Zhu <zhujiawei12@huawei.com>
Date: Mon, 1 Mar 2021 12:19:50 -0500
Subject: [PATCH] net/mlx5: fix Rx segmented packets on mbuf starvation
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c9678e49feef4e423ebd917c7670fee238f4c2bb ]

The issue occurred if mbuf starvation happened
in the middle of segmented packet reception.
In such a situation, after release the segments of
packet being received, code did not advance the
consumer index to the next stride. This caused
the receiving of the wrong segmented packet data.

The possible error scenario:
- we assume segs_n is 4 and we are receiving 4
  segments of multi-segment packet.
- we fail to allocate mbuf while receiving the 3rd segment,
  and this frees the mbufs of the packet chain we have built.
  There are the 1st and 2nd segments in the chain.
- the 1st and the 2nd segments of this stride of Rx queue
  are filled up (in elts array) with the new allocated
  mbufs and their data are random (the 3rd and 4th
  segments still contain the valid data of the packet though).
- on the next iteration of stride processing we get
  the wrong two segments of the multi-segment packet.

Hence, we should skip these mbufs in the stride and
we should advance the consumer index on loop exit.

Fixes: 15a756b63734 ("net/mlx5: fix possible NULL dereference in Rx path")

Signed-off-by: Jiawei Zhu <zhujiawei12@huawei.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxtx.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index d12d746c2f..fac823ba64 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -1430,6 +1430,9 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
 				rte_mbuf_raw_free(pkt);
 				pkt = rep;
 			}
+			rq_ci >>= sges_n;
+			++rq_ci;
+			rq_ci <<= sges_n;
 			break;
 		}
 		if (!pkt) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.754244800 +0800
+++ 0042-net-mlx5-fix-Rx-segmented-packets-on-mbuf-starvation.patch	2021-05-10 23:59:26.380000000 +0800
@@ -1 +1 @@
-From c9678e49feef4e423ebd917c7670fee238f4c2bb Mon Sep 17 00:00:00 2001
+From 6f1a03c53ef11381577d7f9c8216c9ec4da7fb63 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c9678e49feef4e423ebd917c7670fee238f4c2bb ]
@@ -30 +32,0 @@
-Cc: stable@dpdk.org
@@ -39 +41 @@
-index 2e4b87c3e5..e3ce9fd224 100644
+index d12d746c2f..fac823ba64 100644
@@ -42 +44 @@
-@@ -1480,6 +1480,9 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
+@@ -1430,6 +1430,9 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/octeontx2: fix VLAN filter' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (39 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/mlx5: fix Rx segmented packets on mbuf starvation' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'build: exclude meson files from examples installation' " Xueming Li
                   ` (186 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Satheesh Paul; +Cc: Luca Boccassi, Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/b66b37a2b5305fa4a601c8a1829a51d19f368163

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b66b37a2b5305fa4a601c8a1829a51d19f368163 Mon Sep 17 00:00:00 2001
From: Satheesh Paul <psatheesh@marvell.com>
Date: Tue, 9 Feb 2021 15:31:13 +0530
Subject: [PATCH] net/octeontx2: fix VLAN filter
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c8238116ece889fe356c54930bca791091ab1938 ]

This patch fixes incorrect MCAM key preparation when creating
MCAM entry to allow VLAN IDs after vlan filtering is enabled on port.

Fixes: ba1b3b081edf ("net/octeontx2: support VLAN offloads")

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 drivers/net/octeontx2/otx2_vlan.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/octeontx2/otx2_vlan.c b/drivers/net/octeontx2/otx2_vlan.c
index 7357b06695..f5161e17a1 100644
--- a/drivers/net/octeontx2/otx2_vlan.c
+++ b/drivers/net/octeontx2/otx2_vlan.c
@@ -306,12 +306,12 @@ nix_vlan_mcam_config(struct rte_eth_dev *eth_dev,
 			(0xF & ~(NPC_LT_LB_CTAG ^ NPC_LT_LB_STAG_QINQ))
 							<< mkex->lb_lt_offset;
 
-		mcam_data = ((uint32_t)vlan_id << 16);
-		mcam_mask = (BIT_ULL(16) - 1) << 16;
+		mcam_data = (uint16_t)vlan_id;
+		mcam_mask = (BIT_ULL(16) - 1);
 		otx2_mbox_memcpy(key_data + mkex->lb_xtract.key_off,
-				     &mcam_data, mkex->lb_xtract.len + 1);
+				     &mcam_data, mkex->lb_xtract.len);
 		otx2_mbox_memcpy(key_mask + mkex->lb_xtract.key_off,
-				     &mcam_mask, mkex->lb_xtract.len + 1);
+				     &mcam_mask, mkex->lb_xtract.len);
 	}
 
 	/* Adds LB STAG flag to MCAM KW */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.781918600 +0800
+++ 0043-net-octeontx2-fix-VLAN-filter.patch	2021-05-10 23:59:26.380000000 +0800
@@ -1 +1 @@
-From c8238116ece889fe356c54930bca791091ab1938 Mon Sep 17 00:00:00 2001
+From b66b37a2b5305fa4a601c8a1829a51d19f368163 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c8238116ece889fe356c54930bca791091ab1938 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'build: exclude meson files from examples installation' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (40 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/octeontx2: fix VLAN filter' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'log/linux: make default output stderr' " Xueming Li
                   ` (185 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/f59f4e98e4981473bfb8a1922a9753b25141d4d5

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f59f4e98e4981473bfb8a1922a9753b25141d4d5 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 12 Mar 2021 14:56:05 +0000
Subject: [PATCH] build: exclude meson files from examples installation
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 5d20515e0c260377fcd23fab785070c4391cc59d ]

The meson.build files in each example directory is simply to support
building the example as part of the main SDK build, and these should not
be installed with the example's source code and makefile. The exclude of
"meson.build" only filters out the top-level examples/meson.build file,
not the file in each subdirectory.

To fix this, we can build up the list of files to exclude based off the
list of all examples. With this change "find examples/ -name meson.build"
returns no hits when run on an installed instance.

Fixes: e5b95003f1df ("examples: fix flattening directory layout on install")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 examples/meson.build | 6 ++++++
 meson.build          | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/examples/meson.build b/examples/meson.build
index b9ab24223f..3fe08d4ca5 100644
--- a/examples/meson.build
+++ b/examples/meson.build
@@ -48,6 +48,12 @@ all_examples = [
 	'vmdq', 'vmdq_dcb',
 ]
 
+# on install, skip copying all meson.build files
+ex_file_excludes = ['meson.build']
+foreach ex:all_examples
+	ex_file_excludes += [ex + '/meson.build']
+endforeach
+
 if get_option('examples') == ''
 	subdir_done()
 endif
diff --git a/meson.build b/meson.build
index 45d974cd2c..8e051f7f4e 100644
--- a/meson.build
+++ b/meson.build
@@ -61,7 +61,7 @@ subdir('doc')
 subdir('examples')
 install_subdir('examples',
 	install_dir: get_option('datadir') + '/dpdk',
-	exclude_files: 'meson.build')
+	exclude_files: ex_file_excludes)
 
 # build kernel modules if enabled
 if get_option('enable_kmods')
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.806503100 +0800
+++ 0044-build-exclude-meson-files-from-examples-installation.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From 5d20515e0c260377fcd23fab785070c4391cc59d Mon Sep 17 00:00:00 2001
+From f59f4e98e4981473bfb8a1922a9753b25141d4d5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 5d20515e0c260377fcd23fab785070c4391cc59d ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -43 +45 @@
-index fcc4d4c900..7778e18200 100644
+index 45d974cd2c..8e051f7f4e 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'log/linux: make default output stderr' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (41 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'build: exclude meson files from examples installation' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'eal/windows: add missing SPDX license tag' " Xueming Li
                   ` (184 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Luca Boccassi, Alexandre Ferrieux, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/d43987787c0257694974864963d8b420ee4f89dd

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d43987787c0257694974864963d8b420ee4f89dd Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Tue, 9 Feb 2021 15:06:20 +0000
Subject: [PATCH] log/linux: make default output stderr
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 5988725d0efeb7021670986aafeb3ff3d87839e1 ]

In Linux by default DPDK log goes to stdout, as well as syslog.

It is possible for an application to change the library output stream
via 'rte_openlog_stream()' API, to set it to stderr, it can be used as:
rte_openlog_stream(stderr);

But still updating the default log output to 'stderr'.

Bugzilla ID: 8
Fixes: af75078fece3 ("first public release")

Reported-by: Alexandre Ferrieux <alexandre.ferrieux@orange.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 lib/librte_eal/linux/eal_log.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/librte_eal/linux/eal_log.c b/lib/librte_eal/linux/eal_log.c
index 43c8460bfb..2095df74c5 100644
--- a/lib/librte_eal/linux/eal_log.c
+++ b/lib/librte_eal/linux/eal_log.c
@@ -27,9 +27,9 @@ console_log_write(__rte_unused void *c, const char *buf, size_t size)
 {
 	ssize_t ret;
 
-	/* write on stdout */
-	ret = fwrite(buf, 1, size, stdout);
-	fflush(stdout);
+	/* write on stderr */
+	ret = fwrite(buf, 1, size, stderr);
+	fflush(stderr);
 
 	/* Syslog error levels are from 0 to 7, so subtract 1 to convert */
 	syslog(rte_log_cur_msg_loglevel() - 1, "%.*s", (int)size, buf);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.829381300 +0800
+++ 0045-log-linux-make-default-output-stderr.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From 5988725d0efeb7021670986aafeb3ff3d87839e1 Mon Sep 17 00:00:00 2001
+From d43987787c0257694974864963d8b420ee4f89dd Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 5988725d0efeb7021670986aafeb3ff3d87839e1 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'eal/windows: add missing SPDX license tag' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (42 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'log/linux: make default output stderr' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'eal/windows: fix default thread priority' " Xueming Li
                   ` (183 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Dmitry Kozlyuk
  Cc: Luca Boccassi, Stephen Hemminger, Nick Connolly, Ranjit Menon,
	dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/87af5c7023060a70f7efd4ce74224a68bd0fb710

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 87af5c7023060a70f7efd4ce74224a68bd0fb710 Mon Sep 17 00:00:00 2001
From: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Date: Sat, 27 Feb 2021 23:32:01 +0300
Subject: [PATCH] eal/windows: add missing SPDX license tag
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e863fe3a13da89787fdf3b5c590101a3c0f10af6 ]

Fixes: c08bd191b13d ("eal/windows: initialize hugepage info")

Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Nick Connolly <nick.connolly@mayadata.io>
Acked-by: Ranjit Menon <ranjit.menon@intel.com>
---
 lib/librte_eal/windows/eal_hugepages.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/librte_eal/windows/eal_hugepages.c b/lib/librte_eal/windows/eal_hugepages.c
index 44dae985e5..83a3d0ffc6 100644
--- a/lib/librte_eal/windows/eal_hugepages.c
+++ b/lib/librte_eal/windows/eal_hugepages.c
@@ -1,3 +1,7 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2020 Dmitry Kozlyuk
+ */
+
 #include <rte_errno.h>
 #include <rte_log.h>
 #include <rte_memory.h>
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.851504300 +0800
+++ 0046-eal-windows-add-missing-SPDX-license-tag.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From e863fe3a13da89787fdf3b5c590101a3c0f10af6 Mon Sep 17 00:00:00 2001
+From 87af5c7023060a70f7efd4ce74224a68bd0fb710 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e863fe3a13da89787fdf3b5c590101a3c0f10af6 ]
@@ -7 +9,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'eal/windows: fix default thread priority' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (43 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'eal/windows: add missing SPDX license tag' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'bus/pci: skip probing some Windows NDIS devices' " Xueming Li
                   ` (182 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Tal Shnaiderman; +Cc: Luca Boccassi, Odi Assli, Dmitry Kozlyuk, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/d68bec0b176c41aac146c1a943f6a324fcbf8ad6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d68bec0b176c41aac146c1a943f6a324fcbf8ad6 Mon Sep 17 00:00:00 2001
From: Tal Shnaiderman <talshn@nvidia.com>
Date: Thu, 18 Feb 2021 13:40:58 +0200
Subject: [PATCH] eal/windows: fix default thread priority
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 16afcbfa30e9c2831264fb349457a4228fa687c8 ]

The hard-coded thread priority for Windows threads in EAL
is REALTIME_PRIORITY_CLASS/THREAD_PRIORITY_TIME_CRITICAL.

This results in issues with DPDK threads causing OS thread starvation
and eventually a bugcheck.

The fix reduce the thread priority to
NORMAL_PRIORITY_CLASS/THREAD_PRIORITY_NORMAL.

Bugzilla ID: 600
Fixes: 53ffd9f080f ("eal/windows: add minimum viable code")

Reported-by: Odi Assli <odia@nvidia.com>
Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
---
 lib/librte_eal/windows/eal_thread.c      | 4 ++--
 lib/librte_eal/windows/include/pthread.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_eal/windows/eal_thread.c b/lib/librte_eal/windows/eal_thread.c
index 908e726d16..9c3f6d69fd 100644
--- a/lib/librte_eal/windows/eal_thread.c
+++ b/lib/librte_eal/windows/eal_thread.c
@@ -134,8 +134,8 @@ eal_thread_create(pthread_t *thread)
 	if (!th)
 		return -1;
 
-	SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
-	SetThreadPriority(th, THREAD_PRIORITY_TIME_CRITICAL);
+	SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
+	SetThreadPriority(th, THREAD_PRIORITY_NORMAL);
 
 	return 0;
 }
diff --git a/lib/librte_eal/windows/include/pthread.h b/lib/librte_eal/windows/include/pthread.h
index fb11a07ce6..9aeab1fa70 100644
--- a/lib/librte_eal/windows/include/pthread.h
+++ b/lib/librte_eal/windows/include/pthread.h
@@ -137,8 +137,8 @@ pthread_create(void *threadid, const void *threadattr, void *threadfunc,
 	hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)threadfunc,
 		args, 0, (LPDWORD)threadid);
 	if (hThread) {
-		SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
-		SetThreadPriority(hThread, THREAD_PRIORITY_TIME_CRITICAL);
+		SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
+		SetThreadPriority(hThread, THREAD_PRIORITY_NORMAL);
 	}
 	return ((hThread != NULL) ? 0 : E_FAIL);
 }
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.874876400 +0800
+++ 0047-eal-windows-fix-default-thread-priority.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From 16afcbfa30e9c2831264fb349457a4228fa687c8 Mon Sep 17 00:00:00 2001
+From d68bec0b176c41aac146c1a943f6a324fcbf8ad6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 16afcbfa30e9c2831264fb349457a4228fa687c8 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'bus/pci: skip probing some Windows NDIS devices' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (44 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'eal/windows: fix default thread priority' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'bus/pci: fix Windows kernel driver categories' " Xueming Li
                   ` (181 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Pallavi Kadam
  Cc: Luca Boccassi, Dmitry Kozlyuk, Ranjit Menon, Tal Shnaiderman,
	Narcisa Vasile, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/75c0d71c9f47c541375815b9b02d9185e32b10e1

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 75c0d71c9f47c541375815b9b02d9185e32b10e1 Mon Sep 17 00:00:00 2001
From: Pallavi Kadam <pallavi.kadam@intel.com>
Date: Wed, 10 Feb 2021 12:36:54 -0800
Subject: [PATCH] bus/pci: skip probing some Windows NDIS devices
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit de04405b336ed01e234db39fc211b4592b79c2b3 ]

Implement rte_pci_map_device() to distinguish between the devices bound
to netuio and NDIS devices.
Only return success for the netuio devices.

Fixes: c76ec01b4591 ("bus/pci: support netuio on Windows")

Suggested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com>
Reviewed-by: Ranjit Menon <ranjit.menon@intel.com>
Acked-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Narcisa Vasile <navasile@linux.microsoft.com>
Tested-by: Narcisa Vasile <navasile@linux.microsoft.com>
---
 drivers/bus/pci/windows/pci.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c
index f662584528..00e7849b05 100644
--- a/drivers/bus/pci/windows/pci.c
+++ b/drivers/bus/pci/windows/pci.c
@@ -23,20 +23,22 @@ DEFINE_DEVPROPKEY(DEVPKEY_Device_Numa_Node, 0x540b947e, 0x8b40, 0x45bc,
  * the registry hive for PCI devices.
  */
 
-/* The functions below are not implemented on Windows,
+/* Some of the functions below are not implemented on Windows,
  * but need to be defined for compilation purposes
  */
 
 /* Map pci device */
 int
-rte_pci_map_device(struct rte_pci_device *dev __rte_unused)
+rte_pci_map_device(struct rte_pci_device *dev)
 {
-	/* This function is not implemented on Windows.
-	 * We really should short-circuit the call to these functions by
-	 * clearing the RTE_PCI_DRV_NEED_MAPPING flag
-	 * in the rte_pci_driver flags.
+	/* Only return success for devices bound to netuio.
+	 * Devices that are bound to netuio are mapped at
+	 * the bus probing stage.
 	 */
-	return 0;
+	if (dev->kdrv == RTE_PCI_KDRV_NIC_UIO)
+		return 0;
+	else
+		return -1;
 }
 
 /* Unmap pci device */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.897172400 +0800
+++ 0048-bus-pci-skip-probing-some-Windows-NDIS-devices.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From de04405b336ed01e234db39fc211b4592b79c2b3 Mon Sep 17 00:00:00 2001
+From 75c0d71c9f47c541375815b9b02d9185e32b10e1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit de04405b336ed01e234db39fc211b4592b79c2b3 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'bus/pci: fix Windows kernel driver categories' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (45 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'bus/pci: skip probing some Windows NDIS devices' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net: fix comment in IPv6 header' " Xueming Li
                   ` (180 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Dmitry Kozlyuk, Tal Shnaiderman, Ranjit Menon,
	dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/a7e79f5d2c09aa51a4826d583e908db3f8340eb6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a7e79f5d2c09aa51a4826d583e908db3f8340eb6 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Tue, 16 Mar 2021 23:09:38 +0100
Subject: [PATCH] bus/pci: fix Windows kernel driver categories
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 41e026c1b3fd07ee6520e3d5d4ec0787d0dac300 ]

In Windows probing, the value RTE_PCI_KDRV_NONE was used
instead of RTE_PCI_KDRV_UNKNOWN.
This value covers the mlx case where the kernel driver is in place,
offering a bifurcated mode to the userspace driver.
When the kernel driver is listed as unknown,
there is no special treatment in DPDK probing, contrary to UIO modes.

The value RTE_PCI_KDRV_NIC_UIO (FreeBSD) was re-used
instead of having a new RTE_PCI_KDRV_NET_UIO for Windows NetUIO.
While adding the new value RTE_PCI_KDRV_NET_UIO
(at the end for ABI compatibility),
the enum of kernel driver categories is annotated.

Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers")
Fixes: c76ec01b4591 ("bus/pci: support netuio on Windows")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Ranjit Menon <ranjit.menon@intel.com>
---
 drivers/bus/pci/rte_bus_pci.h | 13 +++++++------
 drivers/bus/pci/windows/pci.c | 14 +++++++-------
 2 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/drivers/bus/pci/rte_bus_pci.h b/drivers/bus/pci/rte_bus_pci.h
index fdda046515..876abddefb 100644
--- a/drivers/bus/pci/rte_bus_pci.h
+++ b/drivers/bus/pci/rte_bus_pci.h
@@ -52,12 +52,13 @@ TAILQ_HEAD(rte_pci_driver_list, rte_pci_driver);
 struct rte_devargs;
 
 enum rte_pci_kernel_driver {
-	RTE_PCI_KDRV_UNKNOWN = 0,
-	RTE_PCI_KDRV_IGB_UIO,
-	RTE_PCI_KDRV_VFIO,
-	RTE_PCI_KDRV_UIO_GENERIC,
-	RTE_PCI_KDRV_NIC_UIO,
-	RTE_PCI_KDRV_NONE,
+	RTE_PCI_KDRV_UNKNOWN = 0,  /* may be misc UIO or bifurcated driver */
+	RTE_PCI_KDRV_IGB_UIO,      /* igb_uio for Linux */
+	RTE_PCI_KDRV_VFIO,         /* VFIO for Linux */
+	RTE_PCI_KDRV_UIO_GENERIC,  /* uio_pci_generic for Linux */
+	RTE_PCI_KDRV_NIC_UIO,      /* nic_uio for FreeBSD */
+	RTE_PCI_KDRV_NONE,         /* no attached driver */
+	RTE_PCI_KDRV_NET_UIO,      /* NetUIO for Windows */
 };
 
 /**
diff --git a/drivers/bus/pci/windows/pci.c b/drivers/bus/pci/windows/pci.c
index 00e7849b05..ad9d65efd8 100644
--- a/drivers/bus/pci/windows/pci.c
+++ b/drivers/bus/pci/windows/pci.c
@@ -35,7 +35,7 @@ rte_pci_map_device(struct rte_pci_device *dev)
 	 * Devices that are bound to netuio are mapped at
 	 * the bus probing stage.
 	 */
-	if (dev->kdrv == RTE_PCI_KDRV_NIC_UIO)
+	if (dev->kdrv == RTE_PCI_KDRV_NET_UIO)
 		return 0;
 	else
 		return -1;
@@ -204,14 +204,14 @@ get_device_resource_info(HDEVINFO dev_info,
 	int ret;
 
 	switch (dev->kdrv) {
-	case RTE_PCI_KDRV_NONE:
-		/* mem_resource - Unneeded for RTE_PCI_KDRV_NONE */
+	case RTE_PCI_KDRV_UNKNOWN:
+		/* bifurcated driver case - mem_resource is unneeded */
 		dev->mem_resource[0].phys_addr = 0;
 		dev->mem_resource[0].len = 0;
 		dev->mem_resource[0].addr = NULL;
 		break;
-	case RTE_PCI_KDRV_NIC_UIO:
-		/* get device info from netuio kernel driver */
+	case RTE_PCI_KDRV_NET_UIO:
+		/* get device info from NetUIO kernel driver */
 		ret = get_netuio_device_info(dev_info, dev_info_data, dev);
 		if (ret != 0) {
 			RTE_LOG(DEBUG, EAL,
@@ -302,9 +302,9 @@ set_kernel_driver_type(PSP_DEVINFO_DATA device_info_data,
 {
 	/* set kernel driver type based on device class */
 	if (IsEqualGUID(&(device_info_data->ClassGuid), &GUID_DEVCLASS_NETUIO))
-		dev->kdrv = RTE_PCI_KDRV_NIC_UIO;
+		dev->kdrv = RTE_PCI_KDRV_NET_UIO;
 	else
-		dev->kdrv = RTE_PCI_KDRV_NONE;
+		dev->kdrv = RTE_PCI_KDRV_UNKNOWN;
 }
 
 static int
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.919961300 +0800
+++ 0049-bus-pci-fix-Windows-kernel-driver-categories.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From 41e026c1b3fd07ee6520e3d5d4ec0787d0dac300 Mon Sep 17 00:00:00 2001
+From a7e79f5d2c09aa51a4826d583e908db3f8340eb6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 41e026c1b3fd07ee6520e3d5d4ec0787d0dac300 ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org
@@ -57 +59 @@
-index 8f906097f4..d39a7748b8 100644
+index 00e7849b05..ad9d65efd8 100644
@@ -60 +62 @@
-@@ -38,7 +38,7 @@ rte_pci_map_device(struct rte_pci_device *dev)
+@@ -35,7 +35,7 @@ rte_pci_map_device(struct rte_pci_device *dev)
@@ -69 +71 @@
-@@ -207,14 +207,14 @@ get_device_resource_info(HDEVINFO dev_info,
+@@ -204,14 +204,14 @@ get_device_resource_info(HDEVINFO dev_info,
@@ -88 +90 @@
-@@ -323,9 +323,9 @@ set_kernel_driver_type(PSP_DEVINFO_DATA device_info_data,
+@@ -302,9 +302,9 @@ set_kernel_driver_type(PSP_DEVINFO_DATA device_info_data,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net: fix comment in IPv6 header' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (46 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'bus/pci: fix Windows kernel driver categories' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/bnxt: remove unused macro' " Xueming Li
                   ` (179 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Ivan Malov; +Cc: Luca Boccassi, Andrew Rybchenko, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7c078fd0e9edbe5b196b8e3963aad9862776cef0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7c078fd0e9edbe5b196b8e3963aad9862776cef0 Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov@oktetlabs.ru>
Date: Mon, 8 Mar 2021 09:51:04 +0300
Subject: [PATCH] net: fix comment in IPv6 header
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 24f8b2d896328785038400046773a1e412360627 ]

The comment got it wrong. The payload length field
does not include the fixed IPv6 header size.

Fixes: 7eca7f7fd09d ("net: add missing endianness annotations")
Fixes: af75078fece3 ("first public release")

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 lib/librte_net/rte_ip.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_net/rte_ip.h b/lib/librte_net/rte_ip.h
index 212ff2c4fd..b59c4d67a3 100644
--- a/lib/librte_net/rte_ip.h
+++ b/lib/librte_net/rte_ip.h
@@ -384,7 +384,7 @@ rte_ipv4_udptcp_cksum(const struct rte_ipv4_hdr *ipv4_hdr, const void *l4_hdr)
  */
 struct rte_ipv6_hdr {
 	rte_be32_t vtc_flow;	/**< IP version, traffic class & flow label. */
-	rte_be16_t payload_len;	/**< IP packet length - includes header size */
+	rte_be16_t payload_len;	/**< IP payload size, including ext. headers */
 	uint8_t  proto;		/**< Protocol, next header. */
 	uint8_t  hop_limits;	/**< Hop limits. */
 	uint8_t  src_addr[16];	/**< IP address of source host. */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.942235300 +0800
+++ 0050-net-fix-comment-in-IPv6-header.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From 24f8b2d896328785038400046773a1e412360627 Mon Sep 17 00:00:00 2001
+From 7c078fd0e9edbe5b196b8e3963aad9862776cef0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 24f8b2d896328785038400046773a1e412360627 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: remove unused macro' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (47 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net: fix comment in IPv6 header' " Xueming Li
@ 2021-05-10 15:59 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix VNIC configuration' " Xueming Li
                   ` (178 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 15:59 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Somnath Kotur, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/262c0649f5290cc9acb813b739f69538604c6997

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 262c0649f5290cc9acb813b739f69538604c6997 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Wed, 24 Feb 2021 21:25:43 +0530
Subject: [PATCH] net/bnxt: remove unused macro
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit a7bc5e04be47f4d0850a83bec971fcec2785fee4 ]

remove HWRM_SEQ_ID_INVALID macro.

Fixes: 804e746c7b73 ("net/bnxt: add hardware resource manager init code")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h
index 23ca6ab515..c2bcb7dd63 100644
--- a/drivers/net/bnxt/bnxt_hwrm.h
+++ b/drivers/net/bnxt/bnxt_hwrm.h
@@ -14,7 +14,6 @@ struct bnxt_filter_info;
 struct bnxt_cp_ring_info;
 struct hwrm_func_qstats_output;
 
-#define HWRM_SEQ_ID_INVALID -1U
 /* Convert Bit field location to value */
 #define ASYNC_CMPL_EVENT_ID_LINK_STATUS_CHANGE	\
 	(1 << HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.964029500 +0800
+++ 0051-net-bnxt-remove-unused-macro.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From a7bc5e04be47f4d0850a83bec971fcec2785fee4 Mon Sep 17 00:00:00 2001
+From 262c0649f5290cc9acb813b739f69538604c6997 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit a7bc5e04be47f4d0850a83bec971fcec2785fee4 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index a9d9fcb294..449cb911e5 100644
+index 23ca6ab515..c2bcb7dd63 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix VNIC configuration' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (48 preceding siblings ...)
  2021-05-10 15:59 ` [dpdk-stable] patch 'net/bnxt: remove unused macro' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix queues per VNIC' " Xueming Li
                   ` (177 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/74451465f7baf3f25f8018dca59c07dea30b1f87

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 74451465f7baf3f25f8018dca59c07dea30b1f87 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Wed, 24 Feb 2021 21:25:44 +0530
Subject: [PATCH] net/bnxt: fix VNIC configuration
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit fc886d04bcf49ce2c623cfbbf3d4991aef5fb8ce ]

PMD should not set any flags to receive RoCE traffic while
configuring the vnic. Since the PMD does not support RoCE
some of the flags and code is unused. Clean it up.

Fixes: b7778e8a1c00 ("net/bnxt: refactor to properly allocate resources for PF/VF")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 10 ----------
 drivers/net/bnxt/bnxt_vnic.h |  2 --
 2 files changed, 12 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 344895843b..3dce024744 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1999,12 +1999,6 @@ config_mru:
 	if (vnic->bd_stall)
 		req.flags |=
 		    rte_cpu_to_le_32(HWRM_VNIC_CFG_INPUT_FLAGS_BD_STALL_MODE);
-	if (vnic->roce_dual)
-		req.flags |= rte_cpu_to_le_32(
-			HWRM_VNIC_QCFG_OUTPUT_FLAGS_ROCE_DUAL_VNIC_MODE);
-	if (vnic->roce_only)
-		req.flags |= rte_cpu_to_le_32(
-			HWRM_VNIC_QCFG_OUTPUT_FLAGS_ROCE_ONLY_VNIC_MODE);
 	if (vnic->rss_dflt_cr)
 		req.flags |= rte_cpu_to_le_32(
 			HWRM_VNIC_QCFG_OUTPUT_FLAGS_RSS_DFLT_CR_MODE);
@@ -2052,10 +2046,6 @@ int bnxt_hwrm_vnic_qcfg(struct bnxt *bp, struct bnxt_vnic_info *vnic,
 			HWRM_VNIC_QCFG_OUTPUT_FLAGS_VLAN_STRIP_MODE;
 	vnic->bd_stall = rte_le_to_cpu_32(resp->flags) &
 			HWRM_VNIC_QCFG_OUTPUT_FLAGS_BD_STALL_MODE;
-	vnic->roce_dual = rte_le_to_cpu_32(resp->flags) &
-			HWRM_VNIC_QCFG_OUTPUT_FLAGS_ROCE_DUAL_VNIC_MODE;
-	vnic->roce_only = rte_le_to_cpu_32(resp->flags) &
-			HWRM_VNIC_QCFG_OUTPUT_FLAGS_ROCE_ONLY_VNIC_MODE;
 	vnic->rss_dflt_cr = rte_le_to_cpu_32(resp->flags) &
 			HWRM_VNIC_QCFG_OUTPUT_FLAGS_RSS_DFLT_CR_MODE;
 
diff --git a/drivers/net/bnxt/bnxt_vnic.h b/drivers/net/bnxt/bnxt_vnic.h
index 2a6f05d9e4..f173a02f97 100644
--- a/drivers/net/bnxt/bnxt_vnic.h
+++ b/drivers/net/bnxt/bnxt_vnic.h
@@ -52,8 +52,6 @@ struct bnxt_vnic_info {
 	bool		vlan_strip;
 	bool		func_default;
 	bool		bd_stall;
-	bool		roce_dual;
-	bool		roce_only;
 	bool		rss_dflt_cr;
 
 	STAILQ_HEAD(, bnxt_filter_info)	filter;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:27.987246300 +0800
+++ 0052-net-bnxt-fix-VNIC-configuration.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From fc886d04bcf49ce2c623cfbbf3d4991aef5fb8ce Mon Sep 17 00:00:00 2001
+From 74451465f7baf3f25f8018dca59c07dea30b1f87 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit fc886d04bcf49ce2c623cfbbf3d4991aef5fb8ce ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index cb8baa8776..5366fe72ca 100644
+index 344895843b..3dce024744 100644
@@ -24 +26 @@
-@@ -2013,12 +2013,6 @@ config_mru:
+@@ -1999,12 +1999,6 @@ config_mru:
@@ -37 +39 @@
-@@ -2066,10 +2060,6 @@ int bnxt_hwrm_vnic_qcfg(struct bnxt *bp, struct bnxt_vnic_info *vnic,
+@@ -2052,10 +2046,6 @@ int bnxt_hwrm_vnic_qcfg(struct bnxt *bp, struct bnxt_vnic_info *vnic,
@@ -49 +51 @@
-index 917b909284..00a664c8b8 100644
+index 2a6f05d9e4..f173a02f97 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix queues per VNIC' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (49 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix VNIC configuration' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix firmware fatal error handling' " Xueming Li
                   ` (176 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Venkat Duvvuru
  Cc: Luca Boccassi, Somnath Kotur, Kalesh AP, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/86e9785dbda478aab5649df93e59cc3ad9e388f6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 86e9785dbda478aab5649df93e59cc3ad9e388f6 Mon Sep 17 00:00:00 2001
From: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Date: Wed, 24 Feb 2021 21:25:46 +0530
Subject: [PATCH] net/bnxt: fix queues per VNIC
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c23190303efd6884eaeeda7afe23c2a158f4c1ee ]

Update queues per VNIC in single queue mode.
bp->rx_num_qs_per_vnic is not initialized in the single queue mode.
As a result of this when an interface is reconfigured to single
queue mode from an existing multiqueue mode, bp->rx_num_qs_per_vnic
is not updated to the value of 1. Hence, the driver will try to
access more than one queue resulting in a crash.

This patch fixes it by initializing bp->rx_num_qs_per_vnic in the
single queue mode as well.

Fixes: 36024b2e7fe5 ("net/bnxt: allow dynamic creation of VNIC")

Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxq.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index 8637559370..95a3fc91db 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -106,7 +106,6 @@ int bnxt_mq_rx_configure(struct bnxt *bp)
 
 	pools = RTE_MIN(pools, bp->rx_cp_nr_rings);
 	nb_q_per_grp = bp->rx_cp_nr_rings / pools;
-	bp->rx_num_qs_per_vnic = nb_q_per_grp;
 	PMD_DRV_LOG(DEBUG, "pools = %u nb_q_per_grp = %u\n",
 		    pools, nb_q_per_grp);
 	start_grp_id = 0;
@@ -165,6 +164,8 @@ skip_filter_allocation:
 	}
 
 out:
+	bp->rx_num_qs_per_vnic = nb_q_per_grp;
+
 	if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) {
 		struct rte_eth_rss_conf *rss = &dev_conf->rx_adv_conf.rss_conf;
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.012200600 +0800
+++ 0053-net-bnxt-fix-queues-per-VNIC.patch	2021-05-10 23:59:26.390000000 +0800
@@ -1 +1 @@
-From c23190303efd6884eaeeda7afe23c2a158f4c1ee Mon Sep 17 00:00:00 2001
+From 86e9785dbda478aab5649df93e59cc3ad9e388f6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c23190303efd6884eaeeda7afe23c2a158f4c1ee ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index f46b10c1c5..53a9b52a46 100644
+index 8637559370..95a3fc91db 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix firmware fatal error handling' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (50 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix queues per VNIC' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix FW readiness check during recovery' " Xueming Li
                   ` (175 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Somnath Kotur, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/3fd1f9e8ec81d6469633e7298d119542b129e60d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 3fd1f9e8ec81d6469633e7298d119542b129e60d Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Wed, 24 Feb 2021 21:25:51 +0530
Subject: [PATCH] net/bnxt: fix firmware fatal error handling
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 94131e4ab74728da994d5179052bb30c3c76910c ]

During some fatal firmware error conditions, the PCI config space
register 0x2e which normally contains the subsystem ID will become
0xffff. This register will revert back to the normal value after
the chip has completed core reset. If we detect this condition,
we can poll this config register immediately for the value to revert.
Because we use config read cycles to poll this register, there is no
possibility of Master Abort if we happen to read it during core reset.
This speeds up recovery significantly as we don't have to wait for the
conservative min_time before polling to see if the firmware has come
out of reset. As soon as this register changes value we can proceed
to re-initialize the device.

Fixes: df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 56 ++++++++++++++++++++++++++++++++--
 drivers/net/bnxt/bnxt_util.h   |  2 ++
 2 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 3aa346d45c..f0de861798 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3682,6 +3682,32 @@ static void bnxt_dev_cleanup(struct bnxt *bp)
 	bnxt_uninit_resources(bp, true);
 }
 
+static int
+bnxt_check_fw_reset_done(struct bnxt *bp)
+{
+	int timeout = bp->fw_reset_max_msecs;
+	uint16_t val = 0;
+	int rc;
+
+	do {
+		rc = rte_pci_read_config(bp->pdev, &val, sizeof(val), PCI_SUBSYSTEM_ID_OFFSET);
+		if (rc < 0) {
+			PMD_DRV_LOG(ERR, "Failed to read PCI offset 0x%x", PCI_SUBSYSTEM_ID_OFFSET);
+			return rc;
+		}
+		if (val != 0xffff)
+			break;
+		rte_delay_ms(1);
+	} while (timeout--);
+
+	if (val == 0xffff) {
+		PMD_DRV_LOG(ERR, "Firmware reset aborted, PCI config space invalid\n");
+		return -1;
+	}
+
+	return 0;
+}
+
 static int bnxt_restore_vlan_filters(struct bnxt *bp)
 {
 	struct rte_eth_dev *dev = bp->eth_dev;
@@ -3778,6 +3804,13 @@ static void bnxt_dev_recover(void *arg)
 	int timeout = bp->fw_reset_max_msecs;
 	int rc = 0;
 
+
+	if (!bp->fw_reset_min_msecs) {
+		rc = bnxt_check_fw_reset_done(bp);
+		if (rc)
+			goto err;
+	}
+
 	/* Clear Error flag so that device re-init should happen */
 	bp->flags &= ~BNXT_FLAG_FATAL_ERROR;
 
@@ -3826,14 +3859,33 @@ err:
 void bnxt_dev_reset_and_resume(void *arg)
 {
 	struct bnxt *bp = arg;
+	uint32_t us = US_PER_MS * bp->fw_reset_min_msecs;
+	uint16_t val = 0;
 	int rc;
 
 	bnxt_dev_cleanup(bp);
 
 	bnxt_wait_for_device_shutdown(bp);
 
-	rc = rte_eal_alarm_set(US_PER_MS * bp->fw_reset_min_msecs,
-			       bnxt_dev_recover, (void *)bp);
+	/* During some fatal firmware error conditions, the PCI config space
+	 * register 0x2e which normally contains the subsystem ID will become
+	 * 0xffff. This register will revert back to the normal value after
+	 * the chip has completed core reset. If we detect this condition,
+	 * we can poll this config register immediately for the value to revert.
+	 */
+	if (bp->flags & BNXT_FLAG_FATAL_ERROR) {
+		rc = rte_pci_read_config(bp->pdev, &val, sizeof(val), PCI_SUBSYSTEM_ID_OFFSET);
+		if (rc < 0) {
+			PMD_DRV_LOG(ERR, "Failed to read PCI offset 0x%x", PCI_SUBSYSTEM_ID_OFFSET);
+			return;
+		}
+		if (val == 0xffff) {
+			bp->fw_reset_min_msecs = 0;
+			us = 1;
+		}
+	}
+
+	rc = rte_eal_alarm_set(us, bnxt_dev_recover, (void *)bp);
 	if (rc)
 		PMD_DRV_LOG(ERR, "Error setting recovery alarm");
 }
diff --git a/drivers/net/bnxt/bnxt_util.h b/drivers/net/bnxt/bnxt_util.h
index a15b3a1a95..68665196c3 100644
--- a/drivers/net/bnxt/bnxt_util.h
+++ b/drivers/net/bnxt/bnxt_util.h
@@ -10,6 +10,8 @@
 #define BIT(n)	(1UL << (n))
 #endif /* BIT */
 
+#define PCI_SUBSYSTEM_ID_OFFSET	0x2e
+
 int bnxt_check_zero_bytes(const uint8_t *bytes, int len);
 void bnxt_eth_hw_addr_random(uint8_t *mac_addr);
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.035049600 +0800
+++ 0054-net-bnxt-fix-firmware-fatal-error-handling.patch	2021-05-10 23:59:26.400000000 +0800
@@ -1 +1 @@
-From 94131e4ab74728da994d5179052bb30c3c76910c Mon Sep 17 00:00:00 2001
+From 3fd1f9e8ec81d6469633e7298d119542b129e60d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 94131e4ab74728da994d5179052bb30c3c76910c ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
@@ -30 +32 @@
-index 9e0ec46403..67ff800da5 100644
+index 3aa346d45c..f0de861798 100644
@@ -33 +35 @@
-@@ -3743,6 +3743,32 @@ static void bnxt_dev_cleanup(struct bnxt *bp)
+@@ -3682,6 +3682,32 @@ static void bnxt_dev_cleanup(struct bnxt *bp)
@@ -66 +68,2 @@
-@@ -3840,6 +3866,13 @@ static void bnxt_dev_recover(void *arg)
+@@ -3778,6 +3804,13 @@ static void bnxt_dev_recover(void *arg)
+ 	int timeout = bp->fw_reset_max_msecs;
@@ -69 +71,0 @@
- 	pthread_mutex_lock(&bp->err_recovery_lock);
@@ -80 +82 @@
-@@ -3891,14 +3924,33 @@ err:
+@@ -3826,14 +3859,33 @@ err:
@@ -117 +119 @@
-index 8de55e1038..64e97eed15 100644
+index a15b3a1a95..68665196c3 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix FW readiness check during recovery' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (51 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix firmware fatal error handling' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix device readiness check' " Xueming Li
                   ` (174 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Ajit Khaparde, Somnath Kotur, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/2d5c16160536ea53e820a758a71b6e3150d97f45

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2d5c16160536ea53e820a758a71b6e3150d97f45 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Wed, 24 Feb 2021 21:25:52 +0530
Subject: [PATCH] net/bnxt: fix FW readiness check during recovery
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 6a4f7139cbce7345e45d9e75d4e28ad1b1218486 ]

Moved fw readiness check to a new routine bnxt_check_fw_ready().

During error recovery, driver needs to wait for fw readiness.
For that, it uses bnxt_hwrm_ver_get() function now and that
function does parsing of the VER_GET response as well.

Added a new lightweight function bnxt_hwrm_poll_ver_get() for polling
the firmware readiness which issues VER_GET and checks for success
without processing the command response.

Fixes: df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 33 +++++++++++++++++++++------------
 drivers/net/bnxt/bnxt_hwrm.c   | 23 +++++++++++++++++++++++
 drivers/net/bnxt/bnxt_hwrm.h   |  1 +
 3 files changed, 45 insertions(+), 12 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index f0de861798..f247603edb 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3798,10 +3798,28 @@ static int bnxt_restore_filters(struct bnxt *bp)
 	return ret;
 }
 
+static int bnxt_check_fw_ready(struct bnxt *bp)
+{
+	int timeout = bp->fw_reset_max_msecs;
+	int rc = 0;
+
+	do {
+		rc = bnxt_hwrm_poll_ver_get(bp);
+		if (rc == 0)
+			break;
+		rte_delay_ms(BNXT_FW_READY_WAIT_INTERVAL);
+		timeout -= BNXT_FW_READY_WAIT_INTERVAL;
+	} while (rc && timeout > 0);
+
+	if (rc)
+		PMD_DRV_LOG(ERR, "FW is not Ready after reset\n");
+
+	return rc;
+}
+
 static void bnxt_dev_recover(void *arg)
 {
 	struct bnxt *bp = arg;
-	int timeout = bp->fw_reset_max_msecs;
 	int rc = 0;
 
 
@@ -3814,18 +3832,9 @@ static void bnxt_dev_recover(void *arg)
 	/* Clear Error flag so that device re-init should happen */
 	bp->flags &= ~BNXT_FLAG_FATAL_ERROR;
 
-	do {
-		rc = bnxt_hwrm_ver_get(bp, SHORT_HWRM_CMD_TIMEOUT);
-		if (rc == 0)
-			break;
-		rte_delay_ms(BNXT_FW_READY_WAIT_INTERVAL);
-		timeout -= BNXT_FW_READY_WAIT_INTERVAL;
-	} while (rc && timeout);
-
-	if (rc) {
-		PMD_DRV_LOG(ERR, "FW is not Ready after reset\n");
+	rc = bnxt_check_fw_ready(bp);
+	if (rc)
 		goto err;
-	}
 
 	rc = bnxt_init_resources(bp, true);
 	if (rc) {
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 3dce024744..2477237b39 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -5811,3 +5811,26 @@ int bnxt_hwrm_cfa_pair_free(struct bnxt *bp, struct bnxt_representor *rep_bp)
 		    rep_bp->vf_id);
 	return rc;
 }
+
+
+int bnxt_hwrm_poll_ver_get(struct bnxt *bp)
+{
+	struct hwrm_ver_get_input req = {.req_type = 0 };
+	struct hwrm_ver_get_output *resp = bp->hwrm_cmd_resp_addr;
+	int rc = 0;
+
+	bp->max_req_len = HWRM_MAX_REQ_LEN;
+	bp->hwrm_cmd_timeout = SHORT_HWRM_CMD_TIMEOUT;
+
+	HWRM_PREP(&req, HWRM_VER_GET, BNXT_USE_CHIMP_MB);
+	req.hwrm_intf_maj = HWRM_VERSION_MAJOR;
+	req.hwrm_intf_min = HWRM_VERSION_MINOR;
+	req.hwrm_intf_upd = HWRM_VERSION_UPDATE;
+
+	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
+
+	HWRM_CHECK_RESULT_SILENT();
+	HWRM_UNLOCK();
+
+	return rc;
+}
\ No newline at end of file
diff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h
index c2bcb7dd63..11b3b1cea1 100644
--- a/drivers/net/bnxt/bnxt_hwrm.h
+++ b/drivers/net/bnxt/bnxt_hwrm.h
@@ -301,4 +301,5 @@ int bnxt_hwrm_first_vf_id_query(struct bnxt *bp, uint16_t fid,
 				uint16_t *first_vf_id);
 int bnxt_hwrm_cfa_pair_alloc(struct bnxt *bp, struct bnxt_representor *rep);
 int bnxt_hwrm_cfa_pair_free(struct bnxt *bp, struct bnxt_representor *rep);
+int bnxt_hwrm_poll_ver_get(struct bnxt *bp);
 #endif
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.060118000 +0800
+++ 0055-net-bnxt-fix-FW-readiness-check-during-recovery.patch	2021-05-10 23:59:26.400000000 +0800
@@ -1 +1 @@
-From 6a4f7139cbce7345e45d9e75d4e28ad1b1218486 Mon Sep 17 00:00:00 2001
+From 2d5c16160536ea53e820a758a71b6e3150d97f45 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 6a4f7139cbce7345e45d9e75d4e28ad1b1218486 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
- drivers/net/bnxt/bnxt_hwrm.c   | 22 ++++++++++++++++++++++
+ drivers/net/bnxt/bnxt_hwrm.c   | 23 +++++++++++++++++++++++
@@ -26 +28 @@
- 3 files changed, 44 insertions(+), 12 deletions(-)
+ 3 files changed, 45 insertions(+), 12 deletions(-)
@@ -29 +31 @@
-index 67ff800da5..af146451a5 100644
+index f0de861798..f247603edb 100644
@@ -32 +34 @@
-@@ -3859,10 +3859,28 @@ static int bnxt_restore_filters(struct bnxt *bp)
+@@ -3798,10 +3798,28 @@ static int bnxt_restore_filters(struct bnxt *bp)
@@ -61,2 +63,2 @@
- 	pthread_mutex_lock(&bp->err_recovery_lock);
-@@ -3876,18 +3894,9 @@ static void bnxt_dev_recover(void *arg)
+ 
+@@ -3814,18 +3832,9 @@ static void bnxt_dev_recover(void *arg)
@@ -84 +86 @@
-index 9142119954..0b5318e238 100644
+index 3dce024744..2477237b39 100644
@@ -87,2 +89,2 @@
-@@ -5913,3 +5913,25 @@ int bnxt_hwrm_fw_echo_reply(struct bnxt *bp, uint32_t echo_req_data1,
- 
+@@ -5811,3 +5811,26 @@ int bnxt_hwrm_cfa_pair_free(struct bnxt *bp, struct bnxt_representor *rep_bp)
+ 		    rep_bp->vf_id);
@@ -91,0 +94 @@
++
@@ -112,0 +116 @@
+\ No newline at end of file
@@ -114 +118 @@
-index c47c2498e9..785e321bfd 100644
+index c2bcb7dd63..11b3b1cea1 100644
@@ -117,4 +121,4 @@
-@@ -304,4 +304,5 @@ int bnxt_hwrm_cfa_pair_free(struct bnxt *bp, struct bnxt_representor *rep);
- int bnxt_hwrm_cfa_adv_flow_mgmt_qcaps(struct bnxt *bp);
- int bnxt_hwrm_fw_echo_reply(struct bnxt *bp, uint32_t echo_req_data1,
- 			    uint32_t echo_req_data2);
+@@ -301,4 +301,5 @@ int bnxt_hwrm_first_vf_id_query(struct bnxt *bp, uint16_t fid,
+ 				uint16_t *first_vf_id);
+ int bnxt_hwrm_cfa_pair_alloc(struct bnxt *bp, struct bnxt_representor *rep);
+ int bnxt_hwrm_cfa_pair_free(struct bnxt *bp, struct bnxt_representor *rep);

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix device readiness check' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (52 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix FW readiness check during recovery' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix VF info allocation' " Xueming Li
                   ` (173 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP
  Cc: Luca Boccassi, Somnath Kotur, Randy Schacher, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/3d051e75a45ae60f8e49fb8d2de70e1a92c53bc3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 3d051e75a45ae60f8e49fb8d2de70e1a92c53bc3 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Thu, 4 Mar 2021 14:37:27 +0530
Subject: [PATCH] net/bnxt: fix device readiness check
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 3972281f47b2cc0cf844698885f0e6b4228c0975 ]

Fix HWRM_VER_GET command to handle DEV_NOT_RDY state.

Driver should fail probe if the device is not ready.
Conversely, the HWRM_VER_GET poll after reset can safely
retry until the existing timeout is exceeded.

Fixes: 804e746c7b73 ("net/bnxt: add hardware resource manager init code")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 2477237b39..a27ecfac7e 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1096,6 +1096,11 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
 	else
 		HWRM_CHECK_RESULT();
 
+	if (resp->flags & HWRM_VER_GET_OUTPUT_FLAGS_DEV_NOT_RDY) {
+		rc = -EAGAIN;
+		goto error;
+	}
+
 	PMD_DRV_LOG(INFO, "%d.%d.%d:%d.%d.%d.%d\n",
 		resp->hwrm_intf_maj_8b, resp->hwrm_intf_min_8b,
 		resp->hwrm_intf_upd_8b, resp->hwrm_fw_maj_8b,
@@ -5830,6 +5835,10 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp)
 	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
 
 	HWRM_CHECK_RESULT_SILENT();
+
+	if (resp->flags & HWRM_VER_GET_OUTPUT_FLAGS_DEV_NOT_RDY)
+		rc = -EAGAIN;
+
 	HWRM_UNLOCK();
 
 	return rc;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.089413000 +0800
+++ 0056-net-bnxt-fix-device-readiness-check.patch	2021-05-10 23:59:26.400000000 +0800
@@ -1 +1 @@
-From 3972281f47b2cc0cf844698885f0e6b4228c0975 Mon Sep 17 00:00:00 2001
+From 3d051e75a45ae60f8e49fb8d2de70e1a92c53bc3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 3972281f47b2cc0cf844698885f0e6b4228c0975 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 02b0a214ca..5ef0845e8c 100644
+index 2477237b39..a27ecfac7e 100644
@@ -27 +29 @@
-@@ -1217,6 +1217,11 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
+@@ -1096,6 +1096,11 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
@@ -39 +41 @@
-@@ -6045,6 +6050,10 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp)
+@@ -5830,6 +5835,10 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix VF info allocation' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (53 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix device readiness check' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix HWRM and FW incompatibility handling' " Xueming Li
                   ` (172 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/274ff8673a91b76981f5e6dbcd88211c8c3f3bf4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 274ff8673a91b76981f5e6dbcd88211c8c3f3bf4 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Thu, 4 Mar 2021 14:37:28 +0530
Subject: [PATCH] net/bnxt: fix VF info allocation
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 01406837bf49950fa3a3fdd9d62eb7e0819383e4 ]

1. Renamed bnxt_hwrm_alloc_vf_info()/bnxt_hwrm_free_vf_info to
   bnxt_alloc_vf_info()/bnxt_free_vf_info as it does not
   issue any HWRM command to fw.
2. Fix missing unlock when memory allocation fails.

Fixes: b7778e8a1c00 ("net/bnxt: refactor to properly allocate resources for PF/VF")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c |  2 +-
 drivers/net/bnxt/bnxt_hwrm.c   | 94 ++++++++++++++++++++--------------
 drivers/net/bnxt/bnxt_hwrm.h   |  2 +-
 3 files changed, 57 insertions(+), 41 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index f247603edb..1c7a4d76ed 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -1460,7 +1460,7 @@ static void bnxt_drv_uninit(struct bnxt *bp)
 	rte_memzone_free((const struct rte_memzone *)bp->rx_mem_zone);
 	bp->rx_mem_zone = NULL;
 
-	bnxt_hwrm_free_vf_info(bp);
+	bnxt_free_vf_info(bp);
 
 	rte_free(bp->grp_info);
 	bp->grp_info = NULL;
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index a27ecfac7e..b520846e07 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -673,10 +673,13 @@ static int bnxt_hwrm_ptp_qcfg(struct bnxt *bp)
 	return 0;
 }
 
-void bnxt_hwrm_free_vf_info(struct bnxt *bp)
+void bnxt_free_vf_info(struct bnxt *bp)
 {
 	int i;
 
+	if (bp->pf->vf_info == NULL)
+		return;
+
 	for (i = 0; i < bp->pf->max_vfs; i++) {
 		rte_free(bp->pf->vf_info[i].vlan_table);
 		bp->pf->vf_info[i].vlan_table = NULL;
@@ -687,6 +690,50 @@ void bnxt_hwrm_free_vf_info(struct bnxt *bp)
 	bp->pf->vf_info = NULL;
 }
 
+static int bnxt_alloc_vf_info(struct bnxt *bp, uint16_t max_vfs)
+{
+	struct bnxt_child_vf_info *vf_info = bp->pf->vf_info;
+	int i;
+
+	if (vf_info)
+		bnxt_free_vf_info(bp);
+
+	vf_info = rte_zmalloc("bnxt_vf_info", sizeof(*vf_info) * max_vfs, 0);
+	if (vf_info == NULL) {
+		PMD_DRV_LOG(ERR, "Failed to alloc vf info\n");
+		return -ENOMEM;
+	}
+
+	bp->pf->max_vfs = max_vfs;
+	for (i = 0; i < max_vfs; i++) {
+		vf_info[i].fid = bp->pf->first_vf_id + i;
+		vf_info[i].vlan_table = rte_zmalloc("VF VLAN table",
+						    getpagesize(), getpagesize());
+		if (vf_info[i].vlan_table == NULL) {
+			PMD_DRV_LOG(ERR, "Failed to alloc VLAN table for VF %d\n", i);
+			goto err;
+		}
+		rte_mem_lock_page(vf_info[i].vlan_table);
+
+		vf_info[i].vlan_as_table = rte_zmalloc("VF VLAN AS table",
+						       getpagesize(), getpagesize());
+		if (vf_info[i].vlan_as_table == NULL) {
+			PMD_DRV_LOG(ERR, "Failed to alloc VLAN AS table for VF %d\n", i);
+			goto err;
+		}
+		rte_mem_lock_page(vf_info[i].vlan_as_table);
+
+		STAILQ_INIT(&vf_info[i].filter);
+	}
+
+	bp->pf->vf_info = vf_info;
+
+	return 0;
+err:
+	bnxt_free_vf_info(bp);
+	return -ENOMEM;
+}
+
 static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
 {
 	int rc = 0;
@@ -694,7 +741,6 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
 	struct hwrm_func_qcaps_output *resp = bp->hwrm_cmd_resp_addr;
 	uint16_t new_max_vfs;
 	uint32_t flags;
-	int i;
 
 	HWRM_PREP(&req, HWRM_FUNC_QCAPS, BNXT_USE_CHIMP_MB);
 
@@ -712,43 +758,9 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
 		bp->pf->total_vfs = rte_le_to_cpu_16(resp->max_vfs);
 		new_max_vfs = bp->pdev->max_vfs;
 		if (new_max_vfs != bp->pf->max_vfs) {
-			if (bp->pf->vf_info)
-				bnxt_hwrm_free_vf_info(bp);
-			bp->pf->vf_info = rte_zmalloc("bnxt_vf_info",
-			    sizeof(bp->pf->vf_info[0]) * new_max_vfs, 0);
-			if (bp->pf->vf_info == NULL) {
-				PMD_DRV_LOG(ERR, "Alloc vf info fail\n");
-				HWRM_UNLOCK();
-				return -ENOMEM;
-			}
-			bp->pf->max_vfs = new_max_vfs;
-			for (i = 0; i < new_max_vfs; i++) {
-				bp->pf->vf_info[i].fid =
-					bp->pf->first_vf_id + i;
-				bp->pf->vf_info[i].vlan_table =
-					rte_zmalloc("VF VLAN table",
-						    getpagesize(),
-						    getpagesize());
-				if (bp->pf->vf_info[i].vlan_table == NULL)
-					PMD_DRV_LOG(ERR,
-					"Fail to alloc VLAN table for VF %d\n",
-					i);
-				else
-					rte_mem_lock_page(
-						bp->pf->vf_info[i].vlan_table);
-				bp->pf->vf_info[i].vlan_as_table =
-					rte_zmalloc("VF VLAN AS table",
-						    getpagesize(),
-						    getpagesize());
-				if (bp->pf->vf_info[i].vlan_as_table == NULL)
-					PMD_DRV_LOG(ERR,
-					"Alloc VLAN AS table for VF %d fail\n",
-					i);
-				else
-					rte_mem_lock_page(
-					      bp->pf->vf_info[i].vlan_as_table);
-				STAILQ_INIT(&bp->pf->vf_info[i].filter);
-			}
+			rc = bnxt_alloc_vf_info(bp, new_max_vfs);
+			if (rc)
+				goto unlock;
 		}
 	}
 
@@ -807,6 +819,7 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
 	if (flags & HWRM_FUNC_QCAPS_OUTPUT_FLAGS_LINK_ADMIN_STATUS_SUPPORTED)
 		bp->fw_cap |= BNXT_FW_CAP_LINK_ADMIN;
 
+unlock:
 	HWRM_UNLOCK();
 
 	return rc;
@@ -817,6 +830,9 @@ int bnxt_hwrm_func_qcaps(struct bnxt *bp)
 	int rc;
 
 	rc = __bnxt_hwrm_func_qcaps(bp);
+	if (rc == -ENOMEM)
+		return rc;
+
 	if (!rc && bp->hwrm_spec_code >= HWRM_SPEC_CODE_1_8_3) {
 		rc = bnxt_alloc_ctx_mem(bp);
 		if (rc)
diff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h
index 11b3b1cea1..473e1f5395 100644
--- a/drivers/net/bnxt/bnxt_hwrm.h
+++ b/drivers/net/bnxt/bnxt_hwrm.h
@@ -296,7 +296,7 @@ int bnxt_hwrm_port_phy_qcaps(struct bnxt *bp);
 int bnxt_hwrm_oem_cmd(struct bnxt *bp, uint32_t entry_num);
 int bnxt_clear_one_vnic_filter(struct bnxt *bp,
 			       struct bnxt_filter_info *filter);
-void bnxt_hwrm_free_vf_info(struct bnxt *bp);
+void bnxt_free_vf_info(struct bnxt *bp);
 int bnxt_hwrm_first_vf_id_query(struct bnxt *bp, uint16_t fid,
 				uint16_t *first_vf_id);
 int bnxt_hwrm_cfa_pair_alloc(struct bnxt *bp, struct bnxt_representor *rep);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.114374700 +0800
+++ 0057-net-bnxt-fix-VF-info-allocation.patch	2021-05-10 23:59:26.410000000 +0800
@@ -1 +1 @@
-From 01406837bf49950fa3a3fdd9d62eb7e0819383e4 Mon Sep 17 00:00:00 2001
+From 274ff8673a91b76981f5e6dbcd88211c8c3f3bf4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 01406837bf49950fa3a3fdd9d62eb7e0819383e4 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index fae23a5c85..b561ff5520 100644
+index f247603edb..1c7a4d76ed 100644
@@ -26 +28 @@
-@@ -1557,7 +1557,7 @@ static void bnxt_drv_uninit(struct bnxt *bp)
+@@ -1460,7 +1460,7 @@ static void bnxt_drv_uninit(struct bnxt *bp)
@@ -36 +38 @@
-index 5ef0845e8c..c16edc8956 100644
+index a27ecfac7e..b520846e07 100644
@@ -39 +41 @@
-@@ -788,10 +788,13 @@ static int bnxt_hwrm_ptp_qcfg(struct bnxt *bp)
+@@ -673,10 +673,13 @@ static int bnxt_hwrm_ptp_qcfg(struct bnxt *bp)
@@ -54 +56 @@
-@@ -802,6 +805,50 @@ void bnxt_hwrm_free_vf_info(struct bnxt *bp)
+@@ -687,6 +690,50 @@ void bnxt_hwrm_free_vf_info(struct bnxt *bp)
@@ -105 +107 @@
-@@ -809,7 +856,6 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
+@@ -694,7 +741,6 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
@@ -113 +115 @@
-@@ -827,43 +873,9 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
+@@ -712,43 +758,9 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
@@ -160 +162 @@
-@@ -922,6 +934,7 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
+@@ -807,6 +819,7 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
@@ -168 +170 @@
-@@ -932,6 +945,9 @@ int bnxt_hwrm_func_qcaps(struct bnxt *bp)
+@@ -817,6 +830,9 @@ int bnxt_hwrm_func_qcaps(struct bnxt *bp)
@@ -179 +181 @@
-index 3d05acfe48..0c2e32ccbf 100644
+index 11b3b1cea1..473e1f5395 100644
@@ -182 +184 @@
-@@ -297,7 +297,7 @@ int bnxt_hwrm_port_phy_qcaps(struct bnxt *bp);
+@@ -296,7 +296,7 @@ int bnxt_hwrm_port_phy_qcaps(struct bnxt *bp);

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix HWRM and FW incompatibility handling' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (54 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix VF info allocation' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: mute some failure logs' " Xueming Li
                   ` (171 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Ajit Khaparde, Somnath Kotur, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/15d81d5f9e333b737ef499608aa0ef6fe794db36

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 15d81d5f9e333b737ef499608aa0ef6fe794db36 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Wed, 10 Mar 2021 13:20:53 +0530
Subject: [PATCH] net/bnxt: fix HWRM and FW incompatibility handling
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit b0764e7c207b0932ecd73655d8f7aa015e6733f4 ]

Fix to return an error when the HWRM version that the driver
is compiled against is incompatible with the FW that is actually
running on the card. This is determined based on the req length
indicated by FW against the value supported in the HWRM.

Fixes: 804e746c7b73 ("net/bnxt: add hardware resource manager init code")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index b520846e07..abfb4b289d 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1150,6 +1150,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
 	if (bp->max_req_len > resp->max_req_win_len) {
 		PMD_DRV_LOG(ERR, "Unsupported request length\n");
 		rc = -EINVAL;
+		goto error;
 	}
 	bp->max_req_len = rte_le_to_cpu_16(resp->max_req_win_len);
 	bp->hwrm_max_ext_req_len = rte_le_to_cpu_16(resp->max_ext_req_len);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.142548700 +0800
+++ 0058-net-bnxt-fix-HWRM-and-FW-incompatibility-handling.patch	2021-05-10 23:59:26.410000000 +0800
@@ -1 +1 @@
-From b0764e7c207b0932ecd73655d8f7aa015e6733f4 Mon Sep 17 00:00:00 2001
+From 15d81d5f9e333b737ef499608aa0ef6fe794db36 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit b0764e7c207b0932ecd73655d8f7aa015e6733f4 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index c16edc8956..3de5c7e3a1 100644
+index b520846e07..abfb4b289d 100644
@@ -25 +27 @@
-@@ -1271,6 +1271,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
+@@ -1150,6 +1150,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
@@ -31,2 +33,2 @@
- 
- 	bp->chip_num = rte_le_to_cpu_16(resp->chip_num);
+ 	bp->max_req_len = rte_le_to_cpu_16(resp->max_req_win_len);
+ 	bp->hwrm_max_ext_req_len = rte_le_to_cpu_16(resp->max_ext_req_len);

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: mute some failure logs' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (55 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix HWRM and FW incompatibility handling' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix xstats get' " Xueming Li
                   ` (170 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/f061789e7cce480726087a2315053be6e30795b7

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f061789e7cce480726087a2315053be6e30795b7 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Wed, 10 Mar 2021 13:20:54 +0530
Subject: [PATCH] net/bnxt: mute some failure logs
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 3740259eae2dcf0903d7e8a08909a22486be3744 ]

In the init path, driver ignores few of the HWRM command failures.
There is no need to log the error message in those cases.

Fixes: 3fb93bc7c349 ("net/bnxt: initialize parent PF information")
Fixes: 4e3f887bec4b ("net/bnxt: support HWRM port PHY qcaps")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index abfb4b289d..284699b2dc 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1417,7 +1417,7 @@ int bnxt_hwrm_port_phy_qcaps(struct bnxt *bp)
 
 	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
 
-	HWRM_CHECK_RESULT();
+	HWRM_CHECK_RESULT_SILENT();
 
 	bp->port_cnt = resp->port_cnt;
 	if (resp->supported_speeds_auto_mode)
@@ -3245,7 +3245,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
 
 	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
 
-	HWRM_CHECK_RESULT();
+	HWRM_CHECK_RESULT_SILENT();
 
 	memcpy(bp->parent->mac_addr, resp->mac_address, RTE_ETHER_ADDR_LEN);
 	bp->parent->vnic = rte_le_to_cpu_16(resp->dflt_vnic_id);
@@ -3254,7 +3254,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
 
 	/* FIXME: Temporary workaround - remove when firmware issue is fixed. */
 	if (bp->parent->vnic == 0) {
-		PMD_DRV_LOG(ERR, "Error: parent VNIC unavailable.\n");
+		PMD_DRV_LOG(DEBUG, "parent VNIC unavailable.\n");
 		/* Use hard-coded values appropriate for current Wh+ fw. */
 		if (bp->parent->fid == 2)
 			bp->parent->vnic = 0x100;
@@ -4258,7 +4258,7 @@ int bnxt_hwrm_port_led_qcaps(struct bnxt *bp)
 	req.port_id = bp->pf->port_id;
 	rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
 
-	HWRM_CHECK_RESULT();
+	HWRM_CHECK_RESULT_SILENT();
 
 	if (resp->num_leds > 0 && resp->num_leds < BNXT_MAX_LED) {
 		unsigned int i;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.166586900 +0800
+++ 0059-net-bnxt-mute-some-failure-logs.patch	2021-05-10 23:59:26.410000000 +0800
@@ -1 +1 @@
-From 3740259eae2dcf0903d7e8a08909a22486be3744 Mon Sep 17 00:00:00 2001
+From f061789e7cce480726087a2315053be6e30795b7 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 3740259eae2dcf0903d7e8a08909a22486be3744 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 3de5c7e3a1..e3a07314f8 100644
+index abfb4b289d..284699b2dc 100644
@@ -23 +25 @@
-@@ -1542,7 +1542,7 @@ int bnxt_hwrm_port_phy_qcaps(struct bnxt *bp)
+@@ -1417,7 +1417,7 @@ int bnxt_hwrm_port_phy_qcaps(struct bnxt *bp)
@@ -32 +34 @@
-@@ -3385,7 +3385,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
+@@ -3245,7 +3245,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
@@ -41 +43 @@
-@@ -3394,7 +3394,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
+@@ -3254,7 +3254,7 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp)
@@ -50 +52 @@
-@@ -4398,7 +4398,7 @@ int bnxt_hwrm_port_led_qcaps(struct bnxt *bp)
+@@ -4258,7 +4258,7 @@ int bnxt_hwrm_port_led_qcaps(struct bnxt *bp)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix xstats get' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (56 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: mute some failure logs' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix Rx and Tx timestamps' " Xueming Li
                   ` (169 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Somnath Kotur
  Cc: Luca Boccassi, Kalesh AP, Lance Richardson, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7c69b27093769ef70926f1735fb00c007925b837

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7c69b27093769ef70926f1735fb00c007925b837 Mon Sep 17 00:00:00 2001
From: Somnath Kotur <somnath.kotur@broadcom.com>
Date: Fri, 12 Mar 2021 10:51:08 +0530
Subject: [PATCH] net/bnxt: fix xstats get
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit eac4fc71cdaa6b68dbd0e4129e5751c712501693 ]

Fix to return count in xstats get op in all cases.
Driver was returning 0 if the 'xstats' parameter being passed to
xstats_get_op was NULL. This won't work on some applications that
rely on a valid count being passed even in this case so that it can
allocate memory accordingly followed by a reissue of the xstats_get_op
to get the actual stats populated by the driver.

Fixes: 063e59ddd28e ("net/bnxt: fix crash in xstats get")

Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_stats.c | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c
index 3c9715f5fa..0cf3ee77e3 100644
--- a/drivers/net/bnxt/bnxt_stats.c
+++ b/drivers/net/bnxt/bnxt_stats.c
@@ -594,10 +594,15 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
 	if (rc)
 		return rc;
 
-	if (xstats == NULL)
-		return 0;
+	stat_count = RTE_DIM(bnxt_rx_stats_strings) +
+		RTE_DIM(bnxt_tx_stats_strings) +
+		RTE_DIM(bnxt_func_stats_strings) +
+		RTE_DIM(bnxt_rx_ext_stats_strings) +
+		RTE_DIM(bnxt_tx_ext_stats_strings) +
+		bnxt_flow_stats_cnt(bp);
 
-	memset(xstats, 0, sizeof(*xstats));
+	if (n < stat_count || xstats == NULL)
+		return stat_count;
 
 	bnxt_hwrm_func_qstats(bp, 0xffff, NULL, &func_qstats);
 	bnxt_hwrm_port_qstats(bp);
@@ -609,17 +614,7 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
 					(bp->fw_tx_port_stats_ext_size /
 					 stat_size));
 
-	count = RTE_DIM(bnxt_rx_stats_strings) +
-		RTE_DIM(bnxt_tx_stats_strings) +
-		RTE_DIM(bnxt_func_stats_strings) +
-		RTE_DIM(bnxt_rx_ext_stats_strings) +
-		RTE_DIM(bnxt_tx_ext_stats_strings) +
-		bnxt_flow_stats_cnt(bp);
-
-	stat_count = count;
-
-	if (n < count)
-		return count;
+	memset(xstats, 0, sizeof(*xstats));
 
 	count = 0;
 	for (i = 0; i < RTE_DIM(bnxt_rx_stats_strings); i++) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.190193600 +0800
+++ 0060-net-bnxt-fix-xstats-get.patch	2021-05-10 23:59:26.410000000 +0800
@@ -1 +1 @@
-From eac4fc71cdaa6b68dbd0e4129e5751c712501693 Mon Sep 17 00:00:00 2001
+From 7c69b27093769ef70926f1735fb00c007925b837 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit eac4fc71cdaa6b68dbd0e4129e5751c712501693 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 01d90dee8d..bb4b2eee19 100644
+index 3c9715f5fa..0cf3ee77e3 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix Rx and Tx timestamps' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (57 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix xstats get' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'app/testpmd: check MAC address query' " Xueming Li
                   ` (168 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Somnath Kotur; +Cc: Luca Boccassi, Lance Richardson, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/211541b614705b5ff5c259af204b315a7664eb0f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 211541b614705b5ff5c259af204b315a7664eb0f Mon Sep 17 00:00:00 2001
From: Somnath Kotur <somnath.kotur@broadcom.com>
Date: Fri, 12 Mar 2021 10:51:09 +0530
Subject: [PATCH] net/bnxt: fix Rx and Tx timestamps
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 71f5872dd131983932cbfeb5f71345c53473fa81 ]

timesync adjust and write_time APIs needed to account for the Rx and Tx
timestamp counters as well. Fix it since it was not done earlier.

Fixes: b11cceb83a34 ("net/bnxt: support timesync")

Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 1c7a4d76ed..9252352416 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3227,6 +3227,8 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
 	ns = rte_timespec_to_ns(ts);
 	/* Set the timecounters to a new value. */
 	ptp->tc.nsec = ns;
+	ptp->tx_tstamp_tc.nsec = ns;
+	ptp->rx_tstamp_tc.nsec = ns;
 
 	return 0;
 }
@@ -3373,6 +3375,8 @@ bnxt_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)
 		return 0;
 
 	ptp->tc.nsec += delta;
+	ptp->tx_tstamp_tc.nsec += delta;
+	ptp->rx_tstamp_tc.nsec += delta;
 
 	return 0;
 }
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.214746100 +0800
+++ 0061-net-bnxt-fix-Rx-and-Tx-timestamps.patch	2021-05-10 23:59:26.410000000 +0800
@@ -1 +1 @@
-From 71f5872dd131983932cbfeb5f71345c53473fa81 Mon Sep 17 00:00:00 2001
+From 211541b614705b5ff5c259af204b315a7664eb0f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 71f5872dd131983932cbfeb5f71345c53473fa81 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 7124f48013..6cc6af0a66 100644
+index 1c7a4d76ed..9252352416 100644
@@ -23 +25 @@
-@@ -3428,6 +3428,8 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
+@@ -3227,6 +3227,8 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
@@ -32 +34 @@
-@@ -3578,6 +3580,8 @@ bnxt_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)
+@@ -3373,6 +3375,8 @@ bnxt_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'app/testpmd: check MAC address query' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (58 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix Rx and Tx timestamps' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ice: check some functions return' " Xueming Li
                   ` (167 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Xiaoyun Li, Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/9a7fd13201b9e6a874713ff5fa05db26f49f0ba6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 9a7fd13201b9e6a874713ff5fa05db26f49f0ba6 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Tue, 16 Mar 2021 12:21:36 +0530
Subject: [PATCH] app/testpmd: check MAC address query
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 2382a607599ec1e44594bd74175fc8ffcc260a47 ]

This patch checks return value for rte_eth_dev_info_get() in show_macs().

Coverity issue: 353629
Fixes: e1d44d0ad623 ("app/testpmd: show MAC addresses added to a port")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 app/test-pmd/config.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index dab8afe5dd..336d3e59b1 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -5219,7 +5219,8 @@ show_macs(portid_t port_id)
 
 	dev = &rte_eth_devices[port_id];
 
-	rte_eth_dev_info_get(port_id, &dev_info);
+	if (eth_dev_info_get_print_err(port_id, &dev_info))
+		return;
 
 	for (i = 0; i < dev_info.max_mac_addrs; i++) {
 		addr = &dev->data->mac_addrs[i];
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.240979900 +0800
+++ 0062-app-testpmd-check-MAC-address-query.patch	2021-05-10 23:59:26.410000000 +0800
@@ -1 +1 @@
-From 2382a607599ec1e44594bd74175fc8ffcc260a47 Mon Sep 17 00:00:00 2001
+From 9a7fd13201b9e6a874713ff5fa05db26f49f0ba6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 2382a607599ec1e44594bd74175fc8ffcc260a47 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 576d5acab5..4ce75a8e73 100644
+index dab8afe5dd..336d3e59b1 100644
@@ -23 +25 @@
-@@ -4930,7 +4930,8 @@ show_macs(portid_t port_id)
+@@ -5219,7 +5219,8 @@ show_macs(portid_t port_id)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ice: check some functions return' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (59 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'app/testpmd: check MAC address query' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'common/mlx5: add timestamp format support to DevX' " Xueming Li
                   ` (166 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Wenjun Wu; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/604068df872c511a76b059e7d006a1e200b4a810

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 604068df872c511a76b059e7d006a1e200b4a810 Mon Sep 17 00:00:00 2001
From: Wenjun Wu <wenjun1.wu@intel.com>
Date: Fri, 26 Feb 2021 15:22:00 +0800
Subject: [PATCH] net/ice: check some functions return
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 32667f5b48a371cd65c35d26c61ea293745e1b44 ]

Fix unchecked return values reported by coverity.

Coverity issue: 349907
Fixes: 03a05924dad0 ("net/ice: support device-specific DDP package loading")

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index d789650652..626ebfac5b 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -1768,8 +1768,14 @@ ice_pkg_file_search_path(struct rte_pci_device *pci_dev, char *pkg_file)
 	pos = rte_pci_find_ext_capability(pci_dev, RTE_PCI_EXT_CAP_ID_DSN);
 
 	if (pos) {
-		rte_pci_read_config(pci_dev, &dsn_low, 4, pos + 4);
-		rte_pci_read_config(pci_dev, &dsn_high, 4, pos + 8);
+		if (rte_pci_read_config(pci_dev, &dsn_low, 4, pos + 4) < 0) {
+			PMD_INIT_LOG(ERR, "Failed to read pci config space\n");
+			return -1;
+		}
+		if (rte_pci_read_config(pci_dev, &dsn_high, 4, pos + 8) < 0) {
+			PMD_INIT_LOG(ERR, "Failed to read pci config space\n");
+			return -1;
+		}
 		snprintf(opt_ddp_filename, ICE_MAX_PKG_FILENAME_SIZE,
 			 "ice-%08x%08x.pkg", dsn_high, dsn_low);
 	} else {
@@ -1831,7 +1837,11 @@ static int ice_load_pkg(struct rte_eth_dev *dev)
 	struct ice_adapter *ad =
 		ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
 
-	ice_pkg_file_search_path(pci_dev, pkg_file);
+	err = ice_pkg_file_search_path(pci_dev, pkg_file);
+	if (err) {
+		PMD_INIT_LOG(ERR, "failed to search file path\n");
+		return err;
+	}
 
 	file = fopen(pkg_file, "rb");
 	if (!file)  {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.264165500 +0800
+++ 0063-net-ice-check-some-functions-return.patch	2021-05-10 23:59:26.420000000 +0800
@@ -1 +1 @@
-From 32667f5b48a371cd65c35d26c61ea293745e1b44 Mon Sep 17 00:00:00 2001
+From 604068df872c511a76b059e7d006a1e200b4a810 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 32667f5b48a371cd65c35d26c61ea293745e1b44 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 8999d441ac..9c9b84a938 100644
+index d789650652..626ebfac5b 100644
@@ -21 +23 @@
-@@ -1663,8 +1663,14 @@ ice_pkg_file_search_path(struct rte_pci_device *pci_dev, char *pkg_file)
+@@ -1768,8 +1768,14 @@ ice_pkg_file_search_path(struct rte_pci_device *pci_dev, char *pkg_file)
@@ -38 +40 @@
-@@ -1727,7 +1733,11 @@ static int ice_load_pkg(struct rte_eth_dev *dev)
+@@ -1831,7 +1837,11 @@ static int ice_load_pkg(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'common/mlx5: add timestamp format support to DevX' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (60 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ice: check some functions return' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'vdpa/mlx5: support timestamp format' " Xueming Li
                   ` (165 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Luca Boccassi, Matan Azrad, Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7ddf9eaed91f90263a427efd69a4373db73469fa

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7ddf9eaed91f90263a427efd69a4373db73469fa Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Sun, 14 Mar 2021 12:12:58 +0000
Subject: [PATCH] common/mlx5: add timestamp format support to DevX
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 569ffbc9815bce27b4dbc68f05f02714fb8e1688 ]

This patch handles the NIC-supported timestamp formats via DevX.
Two different timestamp formats can be provided potentially.
The free-running format provides opaque values captured from
the internal clock counter fed by some independent oscillator.
The free-running frequency is not pre-defined and should be
queried from the NIC. The real-time timestamps are expressed
in nanoseconds, captured from the dedicated UTC counter, that
can be adjusted on the fly and synchronized with some external
reference clock.

Depending on the version and configuration the hardware might
support either FR (free-running) or RT (real-time) timestamps,
per queue basis.

The commit provides the querying information about the supported
timestamp formats and provides the means to configure ones
at queue creation time.

Fixes: e2b4925ef7c1 ("net/mlx5: support Direct Rules E-Switch")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 drivers/common/mlx5/mlx5_devx_cmds.c | 35 ++++++++++++++++--
 drivers/common/mlx5/mlx5_devx_cmds.h |  7 ++++
 drivers/common/mlx5/mlx5_prm.h       | 55 ++++++++++++++++++++++++++--
 3 files changed, 90 insertions(+), 7 deletions(-)

diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index e3196f86f9..ee1a3ddbaf 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -714,6 +714,9 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
 				      device_frequency_khz);
 	attr->scatter_fcs_w_decap_disable =
 		MLX5_GET(cmd_hca_cap, hcattr, scatter_fcs_w_decap_disable);
+	attr->roce = MLX5_GET(cmd_hca_cap, hcattr, roce);
+	attr->rq_ts_format = MLX5_GET(cmd_hca_cap, hcattr, rq_ts_format);
+	attr->sq_ts_format = MLX5_GET(cmd_hca_cap, hcattr, sq_ts_format);
 	attr->regex = MLX5_GET(cmd_hca_cap, hcattr, regexp);
 	attr->regexp_num_of_engines = MLX5_GET(cmd_hca_cap, hcattr,
 					       regexp_num_of_engines);
@@ -839,9 +842,32 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
 	attr->tunnel_stateless_gtp = MLX5_GET
 					(per_protocol_networking_offload_caps,
 					 hcattr, tunnel_stateless_gtp);
-	if (attr->wqe_inline_mode != MLX5_CAP_INLINE_MODE_VPORT_CONTEXT)
-		return 0;
-	if (attr->eth_virt) {
+	/* Query HCA attribute for ROCE. */
+	if (attr->roce) {
+		memset(in, 0, sizeof(in));
+		memset(out, 0, sizeof(out));
+		MLX5_SET(query_hca_cap_in, in, opcode,
+			 MLX5_CMD_OP_QUERY_HCA_CAP);
+		MLX5_SET(query_hca_cap_in, in, op_mod,
+			 MLX5_GET_HCA_CAP_OP_MOD_ROCE |
+			 MLX5_HCA_CAP_OPMOD_GET_CUR);
+		rc = mlx5_glue->devx_general_cmd(ctx, in, sizeof(in),
+						 out, sizeof(out));
+		if (rc)
+			goto error;
+		status = MLX5_GET(query_hca_cap_out, out, status);
+		syndrome = MLX5_GET(query_hca_cap_out, out, syndrome);
+		if (status) {
+			DRV_LOG(DEBUG,
+				"Failed to query devx HCA ROCE capabilities, "
+				"status %x, syndrome = %x", status, syndrome);
+			return -1;
+		}
+		hcattr = MLX5_ADDR_OF(query_hca_cap_out, out, capability);
+		attr->qp_ts_format = MLX5_GET(roce_caps, hcattr, qp_ts_format);
+	}
+	if (attr->eth_virt &&
+	    attr->wqe_inline_mode == MLX5_CAP_INLINE_MODE_VPORT_CONTEXT) {
 		rc = mlx5_devx_cmd_query_nic_vport_context(ctx, 0, attr);
 		if (rc) {
 			attr->eth_virt = 0;
@@ -982,6 +1008,7 @@ mlx5_devx_cmd_create_rq(void *ctx,
 	MLX5_SET(rqc, rq_ctx, cqn, rq_attr->cqn);
 	MLX5_SET(rqc, rq_ctx, counter_set_id, rq_attr->counter_set_id);
 	MLX5_SET(rqc, rq_ctx, rmpn, rq_attr->rmpn);
+	MLX5_SET(sqc, rq_ctx, ts_format, rq_attr->ts_format);
 	wq_ctx = MLX5_ADDR_OF(rqc, rq_ctx, wq);
 	wq_attr = &rq_attr->wq_attr;
 	devx_cmd_fill_wq_data(wq_ctx, wq_attr);
@@ -1354,6 +1381,7 @@ mlx5_devx_cmd_create_sq(void *ctx,
 		 sq_attr->packet_pacing_rate_limit_index);
 	MLX5_SET(sqc, sq_ctx, tis_lst_sz, sq_attr->tis_lst_sz);
 	MLX5_SET(sqc, sq_ctx, tis_num_0, sq_attr->tis_num);
+	MLX5_SET(sqc, sq_ctx, ts_format, sq_attr->ts_format);
 	wq_ctx = MLX5_ADDR_OF(sqc, sq_ctx, wq);
 	wq_attr = &sq_attr->wq_attr;
 	devx_cmd_fill_wq_data(wq_ctx, wq_attr);
@@ -1800,6 +1828,7 @@ mlx5_devx_cmd_create_qp(void *ctx,
 	MLX5_SET(create_qp_in, in, opcode, MLX5_CMD_OP_CREATE_QP);
 	MLX5_SET(qpc, qpc, st, MLX5_QP_ST_RC);
 	MLX5_SET(qpc, qpc, pd, attr->pd);
+	MLX5_SET(qpc, qpc, ts_format, attr->ts_format);
 	if (attr->uar_index) {
 		MLX5_SET(qpc, qpc, pm_state, MLX5_QP_PM_MIGRATED);
 		MLX5_SET(qpc, qpc, uar_page, attr->uar_index);
diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h
index a9aa8a3ebf..541f526194 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.h
+++ b/drivers/common/mlx5/mlx5_devx_cmds.h
@@ -112,6 +112,10 @@ struct mlx5_hca_attr {
 	uint32_t dev_freq_khz; /* Timestamp counter frequency, kHz. */
 	uint32_t scatter_fcs_w_decap_disable:1;
 	uint32_t flow_hit_aso:1; /* General obj type FLOW_HIT_ASO supported. */
+	uint32_t roce:1;
+	uint32_t rq_ts_format:2;
+	uint32_t sq_ts_format:2;
+	uint32_t qp_ts_format:2;
 	uint32_t regex:1;
 	uint32_t regexp_num_of_engines;
 	uint32_t log_max_ft_sampler_num:8;
@@ -161,6 +165,7 @@ struct mlx5_devx_create_rq_attr {
 	uint32_t state:4;
 	uint32_t flush_in_error_en:1;
 	uint32_t hairpin:1;
+	uint32_t ts_format:2;
 	uint32_t user_index:24;
 	uint32_t cqn:24;
 	uint32_t counter_set_id:8;
@@ -244,6 +249,7 @@ struct mlx5_devx_create_sq_attr {
 	uint32_t hairpin:1;
 	uint32_t non_wire:1;
 	uint32_t static_sq_wq:1;
+	uint32_t ts_format:2;
 	uint32_t user_index:24;
 	uint32_t cqn:24;
 	uint32_t packet_pacing_rate_limit_index:16;
@@ -324,6 +330,7 @@ struct mlx5_devx_qp_attr {
 	uint32_t rq_size:17; /* Must be power of 2. */
 	uint32_t log_rq_stride:3;
 	uint32_t sq_size:17; /* Must be power of 2. */
+	uint32_t ts_format:2;
 	uint32_t dbr_umem_valid:1;
 	uint32_t dbr_umem_id;
 	uint64_t dbr_address;
diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h
index cce55c8ddd..4792835200 100644
--- a/drivers/common/mlx5/mlx5_prm.h
+++ b/drivers/common/mlx5/mlx5_prm.h
@@ -1056,6 +1056,7 @@ enum {
 	MLX5_GET_HCA_CAP_OP_MOD_GENERAL_DEVICE = 0x0 << 1,
 	MLX5_GET_HCA_CAP_OP_MOD_ETHERNET_OFFLOAD_CAPS = 0x1 << 1,
 	MLX5_GET_HCA_CAP_OP_MOD_QOS_CAP = 0xc << 1,
+	MLX5_GET_HCA_CAP_OP_MOD_ROCE = 0x4 << 1,
 	MLX5_GET_HCA_CAP_OP_MOD_NIC_FLOW_TABLE = 0x7 << 1,
 	MLX5_GET_HCA_CAP_OP_MOD_VDPA_EMULATION = 0x13 << 1,
 };
@@ -1091,6 +1092,20 @@ enum {
 	MLX5_INLINE_MODE_INNER_TCP_UDP,
 };
 
+/* The supported timestamp formats reported in HCA attributes. */
+enum {
+	MLX5_HCA_CAP_TIMESTAMP_FORMAT_FR = 0x0,
+	MLX5_HCA_CAP_TIMESTAMP_FORMAT_RT = 0x1,
+	MLX5_HCA_CAP_TIMESTAMP_FORMAT_FR_RT = 0x2,
+};
+
+/* The timestamp format attributes to configure queues (RQ/SQ/QP). */
+enum {
+	MLX5_QPC_TIMESTAMP_FORMAT_FREE_RUNNING = 0x0,
+	MLX5_QPC_TIMESTAMP_FORMAT_DEFAULT      = 0x1,
+	MLX5_QPC_TIMESTAMP_FORMAT_REAL_TIME    = 0x2,
+};
+
 /* HCA bit masks indicating which Flex parser protocols are already enabled. */
 #define MLX5_HCA_FLEX_IPV4_OVER_VXLAN_ENABLED (1UL << 0)
 #define MLX5_HCA_FLEX_IPV6_OVER_VXLAN_ENABLED (1UL << 1)
@@ -1353,7 +1368,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
 	u8 reserved_at_3f8[0x3];
 	u8 log_max_current_uc_list[0x5];
 	u8 general_obj_types[0x40];
-	u8 reserved_at_440[0x20];
+	u8 sq_ts_format[0x2];
+	u8 rq_ts_format[0x2];
+	u8 reserved_at_444[0x1C];
 	u8 reserved_at_460[0x10];
 	u8 max_num_eqs[0x10];
 	u8 reserved_at_480[0x3];
@@ -1543,6 +1560,12 @@ struct mlx5_ifc_flow_table_prop_layout_bits {
 	u8 reserved_at_c0[0x140];
 };
 
+struct mlx5_ifc_roce_caps_bits {
+	u8 reserved_0[0x1e];
+	u8 qp_ts_format[0x2];
+	u8 reserved_at_20[0x7e0];
+};
+
 struct mlx5_ifc_flow_table_nic_cap_bits {
 	u8	   reserved_at_0[0x200];
 	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties;
@@ -1555,6 +1578,7 @@ union mlx5_ifc_hca_cap_union_bits {
 	struct mlx5_ifc_qos_cap_bits qos_cap;
 	struct mlx5_ifc_virtio_emulation_cap_bits vdpa_caps;
 	struct mlx5_ifc_flow_table_nic_cap_bits flow_table_nic_cap;
+	struct mlx5_ifc_roce_caps_bits roce_caps;
 	u8 reserved_at_0[0x8000];
 };
 
@@ -1771,7 +1795,9 @@ struct mlx5_ifc_rqc_bits {
 	u8 reserved_at_c[0x1];
 	u8 flush_in_error_en[0x1];
 	u8 hairpin[0x1];
-	u8 reserved_at_f[0x11];
+	u8 reserved_at_f[0xB];
+	u8 ts_format[0x02];
+	u8 reserved_at_1c[0x4];
 	u8 reserved_at_20[0x8];
 	u8 user_index[0x18];
 	u8 reserved_at_40[0x8];
@@ -2077,7 +2103,9 @@ struct mlx5_ifc_sqc_bits {
 	u8 hairpin[0x1];
 	u8 non_wire[0x1];
 	u8 static_sq_wq[0x1];
-	u8 reserved_at_11[0xf];
+	u8 reserved_at_11[0x9];
+	u8 ts_format[0x02];
+	u8 reserved_at_1c[0x4];
 	u8 reserved_at_20[0x8];
 	u8 user_index[0x18];
 	u8 reserved_at_40[0x8];
@@ -2539,7 +2567,9 @@ struct mlx5_ifc_qpc_bits {
 	u8 log_rq_stride[0x3];
 	u8 no_sq[0x1];
 	u8 log_sq_size[0x4];
-	u8 reserved_at_55[0x6];
+	u8 reserved_at_55[0x3];
+	u8 ts_format[0x2];
+	u8 reserved_at_5a[0x1];
 	u8 rlky[0x1];
 	u8 ulp_stateless_offload_mode[0x4];
 	u8 counter_set_id[0x8];
@@ -3261,4 +3291,21 @@ mlx5_flow_mark_get(uint32_t val)
 #endif
 }
 
+/**
+ * Convert a timestamp format to configure settings in the queue context.
+ *
+ * @param val
+ *   timestamp format supported by the queue.
+ *
+ * @return
+ *   Converted timstamp format settings.
+ */
+static inline uint32_t
+mlx5_ts_format_conv(uint32_t ts_format)
+{
+	return ts_format == MLX5_HCA_CAP_TIMESTAMP_FORMAT_FR ?
+			MLX5_QPC_TIMESTAMP_FORMAT_FREE_RUNNING :
+			MLX5_QPC_TIMESTAMP_FORMAT_DEFAULT;
+}
+
 #endif /* RTE_PMD_MLX5_PRM_H_ */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.290389000 +0800
+++ 0064-common-mlx5-add-timestamp-format-support-to-DevX.patch	2021-05-10 23:59:26.420000000 +0800
@@ -1 +1 @@
-From 569ffbc9815bce27b4dbc68f05f02714fb8e1688 Mon Sep 17 00:00:00 2001
+From 7ddf9eaed91f90263a427efd69a4373db73469fa Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 569ffbc9815bce27b4dbc68f05f02714fb8e1688 ]
@@ -25 +27,0 @@
-Cc: stable@dpdk.org
@@ -37 +39 @@
-index 8df14f5b7d..c90e020643 100644
+index e3196f86f9..ee1a3ddbaf 100644
@@ -40 +42 @@
-@@ -715,6 +715,9 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
+@@ -714,6 +714,9 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
@@ -50,2 +52,2 @@
-@@ -859,9 +862,32 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
- 	attr->rss_ind_tbl_cap = MLX5_GET
+@@ -839,9 +842,32 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
+ 	attr->tunnel_stateless_gtp = MLX5_GET
@@ -53 +55 @@
- 					 hcattr, rss_ind_tbl_cap);
+ 					 hcattr, tunnel_stateless_gtp);
@@ -86 +88 @@
-@@ -1004,6 +1030,7 @@ mlx5_devx_cmd_create_rq(void *ctx,
+@@ -982,6 +1008,7 @@ mlx5_devx_cmd_create_rq(void *ctx,
@@ -94 +96 @@
-@@ -1376,6 +1403,7 @@ mlx5_devx_cmd_create_sq(void *ctx,
+@@ -1354,6 +1381,7 @@ mlx5_devx_cmd_create_sq(void *ctx,
@@ -102 +104 @@
-@@ -1825,6 +1853,7 @@ mlx5_devx_cmd_create_qp(void *ctx,
+@@ -1800,6 +1828,7 @@ mlx5_devx_cmd_create_qp(void *ctx,
@@ -111 +113 @@
-index bc66d28e83..2826c0b2c6 100644
+index a9aa8a3ebf..541f526194 100644
@@ -114 +116 @@
-@@ -121,6 +121,10 @@ struct mlx5_hca_attr {
+@@ -112,6 +112,10 @@ struct mlx5_hca_attr {
@@ -123 +124,0 @@
- 	uint32_t reg_c_preserve:1;
@@ -125 +126,2 @@
-@@ -188,6 +192,7 @@ struct mlx5_devx_create_rq_attr {
+ 	uint32_t log_max_ft_sampler_num:8;
+@@ -161,6 +165,7 @@ struct mlx5_devx_create_rq_attr {
@@ -133 +135 @@
-@@ -271,6 +276,7 @@ struct mlx5_devx_create_sq_attr {
+@@ -244,6 +249,7 @@ struct mlx5_devx_create_sq_attr {
@@ -141 +143 @@
-@@ -354,6 +360,7 @@ struct mlx5_devx_qp_attr {
+@@ -324,6 +330,7 @@ struct mlx5_devx_qp_attr {
@@ -150 +152 @@
-index 01a039f1f7..0ef0574f92 100644
+index cce55c8ddd..4792835200 100644
@@ -153 +155 @@
-@@ -1116,6 +1116,7 @@ enum {
+@@ -1056,6 +1056,7 @@ enum {
@@ -161 +163 @@
-@@ -1153,6 +1154,20 @@ enum {
+@@ -1091,6 +1092,20 @@ enum {
@@ -182 +184 @@
-@@ -1431,7 +1446,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
+@@ -1353,7 +1368,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
@@ -193 +195 @@
-@@ -1623,6 +1640,12 @@ struct mlx5_ifc_flow_table_prop_layout_bits {
+@@ -1543,6 +1560,12 @@ struct mlx5_ifc_flow_table_prop_layout_bits {
@@ -206 +208 @@
-@@ -1635,6 +1658,7 @@ union mlx5_ifc_hca_cap_union_bits {
+@@ -1555,6 +1578,7 @@ union mlx5_ifc_hca_cap_union_bits {
@@ -214 +216 @@
-@@ -1851,7 +1875,9 @@ struct mlx5_ifc_rqc_bits {
+@@ -1771,7 +1795,9 @@ struct mlx5_ifc_rqc_bits {
@@ -225 +227 @@
-@@ -2157,7 +2183,9 @@ struct mlx5_ifc_sqc_bits {
+@@ -2077,7 +2103,9 @@ struct mlx5_ifc_sqc_bits {
@@ -236 +238 @@
-@@ -2684,7 +2712,9 @@ struct mlx5_ifc_qpc_bits {
+@@ -2539,7 +2567,9 @@ struct mlx5_ifc_qpc_bits {
@@ -247 +249 @@
-@@ -3440,4 +3470,21 @@ mlx5_flow_mark_get(uint32_t val)
+@@ -3261,4 +3291,21 @@ mlx5_flow_mark_get(uint32_t val)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'vdpa/mlx5: support timestamp format' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (61 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'common/mlx5: add timestamp format support to DevX' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/mlx5: fix Rx metadata leftovers' " Xueming Li
                   ` (164 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Luca Boccassi, Matan Azrad, Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/cd5184145e57822667e7b1bb534ebe28e9b90413

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From cd5184145e57822667e7b1bb534ebe28e9b90413 Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Sun, 14 Mar 2021 12:13:00 +0000
Subject: [PATCH] vdpa/mlx5: support timestamp format
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 044423c4db97ca1911d0dcd06bc21f3fe84ed8c7 ]

This patch adds support for the timestamp format settings for
the receive and send queues. If the firmware version x.30.1000
or above is installed and the NIC timestamps are configured
with the real-time format, the default zero values for newly
added fields cause the queue creation to fail.

The patch queries the timestamp formats supported by the hardware
and sets the configuration values in queue context accordingly.

Fixes: 95276abaaf0a ("vdpa/mlx5: introduce Mellanox vDPA driver")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 drivers/vdpa/mlx5/mlx5_vdpa.c       | 1 +
 drivers/vdpa/mlx5/mlx5_vdpa.h       | 1 +
 drivers/vdpa/mlx5/mlx5_vdpa_event.c | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c
index 0b2f1ab68e..228f5f59d2 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa.c
@@ -735,6 +735,7 @@ mlx5_vdpa_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 	priv->caps = attr.vdpa;
 	priv->log_max_rqt_size = attr.log_max_rqt_size;
 	priv->num_lag_ports = attr.num_lag_ports;
+	priv->qp_ts_format = attr.qp_ts_format;
 	if (attr.num_lag_ports == 0)
 		priv->num_lag_ports = 1;
 	priv->ctx = ctx;
diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.h b/drivers/vdpa/mlx5/mlx5_vdpa.h
index d039ada65b..fefc7cfdad 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa.h
+++ b/drivers/vdpa/mlx5/mlx5_vdpa.h
@@ -154,6 +154,7 @@ struct mlx5_vdpa_priv {
 	struct mlx5_devx_obj *tiss[16]; /* TIS list for each LAG port. */
 	uint16_t nr_virtqs;
 	uint8_t num_lag_ports;
+	uint8_t qp_ts_format;
 	uint64_t features; /* Negotiated features. */
 	uint16_t log_max_rqt_size;
 	struct mlx5_vdpa_steer steer;
diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_event.c b/drivers/vdpa/mlx5/mlx5_vdpa_event.c
index 3aeaeb893f..266cd8e57c 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa_event.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa_event.c
@@ -659,6 +659,7 @@ mlx5_vdpa_event_qp_create(struct mlx5_vdpa_priv *priv, uint16_t desc_n,
 	if (mlx5_vdpa_cq_create(priv, log_desc_n, callfd, &eqp->cq))
 		return -1;
 	attr.pd = priv->pdn;
+	attr.ts_format = mlx5_ts_format_conv(priv->qp_ts_format);
 	eqp->fw_qp = mlx5_devx_cmd_create_qp(priv->ctx, &attr);
 	if (!eqp->fw_qp) {
 		DRV_LOG(ERR, "Failed to create FW QP(%u).", rte_errno);
@@ -689,6 +690,7 @@ mlx5_vdpa_event_qp_create(struct mlx5_vdpa_priv *priv, uint16_t desc_n,
 	attr.wq_umem_offset = 0;
 	attr.dbr_umem_id = eqp->umem_obj->umem_id;
 	attr.dbr_address = (1 << log_desc_n) * MLX5_WSEG_SIZE;
+	attr.ts_format = mlx5_ts_format_conv(priv->qp_ts_format);
 	eqp->sw_qp = mlx5_devx_cmd_create_qp(priv->ctx, &attr);
 	if (!eqp->sw_qp) {
 		DRV_LOG(ERR, "Failed to create SW QP(%u).", rte_errno);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.316498500 +0800
+++ 0065-vdpa-mlx5-support-timestamp-format.patch	2021-05-10 23:59:26.420000000 +0800
@@ -1 +1 @@
-From 044423c4db97ca1911d0dcd06bc21f3fe84ed8c7 Mon Sep 17 00:00:00 2001
+From cd5184145e57822667e7b1bb534ebe28e9b90413 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 044423c4db97ca1911d0dcd06bc21f3fe84ed8c7 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index 5755a68ec4..898e50f807 100644
+index 0b2f1ab68e..228f5f59d2 100644
@@ -31 +33 @@
-@@ -745,6 +745,7 @@ mlx5_vdpa_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -735,6 +735,7 @@ mlx5_vdpa_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
@@ -40 +42 @@
-index 98c71aad4c..d93b430c97 100644
+index d039ada65b..fefc7cfdad 100644
@@ -43 +45 @@
-@@ -152,6 +152,7 @@ struct mlx5_vdpa_priv {
+@@ -154,6 +154,7 @@ struct mlx5_vdpa_priv {
@@ -52 +54 @@
-index 86adc864f5..7cf2c76e70 100644
+index 3aeaeb893f..266cd8e57c 100644
@@ -55 +57 @@
-@@ -662,6 +662,7 @@ mlx5_vdpa_event_qp_create(struct mlx5_vdpa_priv *priv, uint16_t desc_n,
+@@ -659,6 +659,7 @@ mlx5_vdpa_event_qp_create(struct mlx5_vdpa_priv *priv, uint16_t desc_n,
@@ -63 +65 @@
-@@ -692,6 +693,7 @@ mlx5_vdpa_event_qp_create(struct mlx5_vdpa_priv *priv, uint16_t desc_n,
+@@ -689,6 +690,7 @@ mlx5_vdpa_event_qp_create(struct mlx5_vdpa_priv *priv, uint16_t desc_n,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix Rx metadata leftovers' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (62 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'vdpa/mlx5: support timestamp format' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'eal: fix comment of OS-specific header files' " Xueming Li
                   ` (163 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Luca Boccassi, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/cf10220946182bfd96e5670a2a1ba0f20c58a977

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From cf10220946182bfd96e5670a2a1ba0f20c58a977 Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Sun, 7 Mar 2021 11:45:47 +0000
Subject: [PATCH] net/mlx5: fix Rx metadata leftovers
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 4eefb20faacab6eae03c860c5d622603f7499ff4 ]

The Rx metadata might use the metadata register C0 to keep the
values. The same register C0 might be used by kernel for source
vport value handling, kernel uses upper half of the register,
leaving the lower half for application usage.

In the extended metadata mode 1 (dv_xmeta_en devarg is
assigned with value 1) the metadata width is 16 bits only,
the Rx datapath code fetched the entire 32-bit value of the
metadata register and presented one to application. The patch
provides data masking depending on the chosen metadata mode.

Fixes: 6c55b622a956 ("net/mlx5: set dynamic flow metadata in Rx queues")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c             |  4 ++++
 drivers/net/mlx5/mlx5_rxtx.c             | 13 +++++++++----
 drivers/net/mlx5/mlx5_rxtx.h             |  1 +
 drivers/net/mlx5/mlx5_rxtx_vec_altivec.h | 11 ++++++-----
 drivers/net/mlx5/mlx5_rxtx_vec_neon.h    | 13 +++++++++----
 drivers/net/mlx5/mlx5_rxtx_vec_sse.h     |  9 +++++----
 6 files changed, 34 insertions(+), 17 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 34dd33ba38..39be15bcd4 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -1220,10 +1220,14 @@ mlx5_flow_rxq_dynf_metadata_set(struct rte_eth_dev *dev)
 			data->dynf_meta = 0;
 			data->flow_meta_mask = 0;
 			data->flow_meta_offset = -1;
+			data->flow_meta_port_mask = 0;
 		} else {
 			data->dynf_meta = 1;
 			data->flow_meta_mask = rte_flow_dynf_metadata_mask;
 			data->flow_meta_offset = rte_flow_dynf_metadata_offs;
+			data->flow_meta_port_mask = (uint32_t)~0;
+			if (priv->config.dv_xmeta_en == MLX5_XMETA_MODE_META16)
+				data->flow_meta_port_mask >>= 16;
 		}
 	}
 }
diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index fac823ba64..c765314068 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -1338,10 +1338,15 @@ rxq_cq_to_mbuf(struct mlx5_rxq_data *rxq, struct rte_mbuf *pkt,
 			}
 		}
 	}
-	if (rxq->dynf_meta && cqe->flow_table_metadata) {
-		pkt->ol_flags |= rxq->flow_meta_mask;
-		*RTE_MBUF_DYNFIELD(pkt, rxq->flow_meta_offset, uint32_t *) =
-			cqe->flow_table_metadata;
+	if (rxq->dynf_meta) {
+		uint32_t meta = cqe->flow_table_metadata &
+				rxq->flow_meta_port_mask;
+
+		if (meta) {
+			pkt->ol_flags |= rxq->flow_meta_mask;
+			*RTE_MBUF_DYNFIELD(pkt, rxq->flow_meta_offset,
+						uint32_t *) = meta;
+		}
 	}
 	if (rxq->csum)
 		pkt->ol_flags |= rxq_cq_to_ol_flags(cqe);
diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h
index c57ccc32ed..7c3c4c0099 100644
--- a/drivers/net/mlx5/mlx5_rxtx.h
+++ b/drivers/net/mlx5/mlx5_rxtx.h
@@ -168,6 +168,7 @@ struct mlx5_rxq_data {
 	uint64_t timestamp_rx_flag; /* Dynamic mbuf flag for timestamp. */
 	uint64_t flow_meta_mask;
 	int32_t flow_meta_offset;
+	uint32_t flow_meta_port_mask;
 	uint32_t rxseg_n; /* Number of split segment descriptions. */
 	struct mlx5_eth_rxseg rxseg[MLX5_MAX_RXQ_NSEG];
 	/* Buffer split segment descriptions - sizes, offsets, pools. */
diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h b/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h
index 48b677e40d..2d1154b624 100644
--- a/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h
+++ b/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h
@@ -1221,22 +1221,23 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cq,
 		if (rxq->dynf_meta) {
 			uint64_t flag = rxq->flow_meta_mask;
 			int32_t offs = rxq->flow_meta_offset;
-			uint32_t metadata;
+			uint32_t metadata, mask;
 
+			mask = rxq->flow_meta_port_mask;
 			/* This code is subject for futher optimization. */
-			metadata = cq[pos].flow_table_metadata;
+			metadata = cq[pos].flow_table_metadata & mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos], offs, uint32_t *) =
 								metadata;
 			pkts[pos]->ol_flags |= metadata ? flag : 0ULL;
-			metadata = cq[pos + 1].flow_table_metadata;
+			metadata = cq[pos + 1].flow_table_metadata & mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 1], offs, uint32_t *) =
 								metadata;
 			pkts[pos + 1]->ol_flags |= metadata ? flag : 0ULL;
-			metadata = cq[pos + 2].flow_table_metadata;
+			metadata = cq[pos + 2].flow_table_metadata & mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 2], offs, uint32_t *) =
 								metadata;
 			pkts[pos + 2]->ol_flags |= metadata ? flag : 0ULL;
-			metadata = cq[pos + 3].flow_table_metadata;
+			metadata = cq[pos + 3].flow_table_metadata & mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 3], offs, uint32_t *) =
 								metadata;
 			pkts[pos + 3]->ol_flags |= metadata ? flag : 0ULL;
diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
index 4c067d8801..2234fbe6b2 100644
--- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
+++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
@@ -832,19 +832,24 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cq,
 		if (rxq->dynf_meta) {
 			/* This code is subject for futher optimization. */
 			int32_t offs = rxq->flow_meta_offset;
+			uint32_t mask = rxq->flow_meta_port_mask;
 
 			*RTE_MBUF_DYNFIELD(pkts[pos], offs, uint32_t *) =
 				container_of(p0, struct mlx5_cqe,
-					     pkt_info)->flow_table_metadata;
+					     pkt_info)->flow_table_metadata &
+					     mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 1], offs, uint32_t *) =
 				container_of(p1, struct mlx5_cqe,
-					     pkt_info)->flow_table_metadata;
+					     pkt_info)->flow_table_metadata &
+					     mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 2], offs, uint32_t *) =
 				container_of(p2, struct mlx5_cqe,
-					     pkt_info)->flow_table_metadata;
+					     pkt_info)->flow_table_metadata &
+					     mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 3], offs, uint32_t *) =
 				container_of(p3, struct mlx5_cqe,
-					     pkt_info)->flow_table_metadata;
+					     pkt_info)->flow_table_metadata &
+					     mask;
 			if (*RTE_MBUF_DYNFIELD(pkts[pos], offs, uint32_t *))
 				elts[pos]->ol_flags |= rxq->flow_meta_mask;
 			if (*RTE_MBUF_DYNFIELD(pkts[pos + 1], offs, uint32_t *))
diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h
index 0b3f240e10..c508a7a4f2 100644
--- a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h
+++ b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h
@@ -768,15 +768,16 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cq,
 		if (rxq->dynf_meta) {
 			/* This code is subject for futher optimization. */
 			int32_t offs = rxq->flow_meta_offset;
+			uint32_t mask = rxq->flow_meta_port_mask;
 
 			*RTE_MBUF_DYNFIELD(pkts[pos], offs, uint32_t *) =
-				cq[pos].flow_table_metadata;
+				cq[pos].flow_table_metadata & mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 1], offs, uint32_t *) =
-				cq[pos + p1].flow_table_metadata;
+				cq[pos + p1].flow_table_metadata  & mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 2], offs, uint32_t *) =
-				cq[pos + p2].flow_table_metadata;
+				cq[pos + p2].flow_table_metadata & mask;
 			*RTE_MBUF_DYNFIELD(pkts[pos + 3], offs, uint32_t *) =
-				cq[pos + p3].flow_table_metadata;
+				cq[pos + p3].flow_table_metadata & mask;
 			if (*RTE_MBUF_DYNFIELD(pkts[pos], offs, uint32_t *))
 				pkts[pos]->ol_flags |= rxq->flow_meta_mask;
 			if (*RTE_MBUF_DYNFIELD(pkts[pos + 1], offs, uint32_t *))
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.342106500 +0800
+++ 0066-net-mlx5-fix-Rx-metadata-leftovers.patch	2021-05-10 23:59:26.420000000 +0800
@@ -1 +1 @@
-From 4eefb20faacab6eae03c860c5d622603f7499ff4 Mon Sep 17 00:00:00 2001
+From cf10220946182bfd96e5670a2a1ba0f20c58a977 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 4eefb20faacab6eae03c860c5d622603f7499ff4 ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -32 +34 @@
-index 773f3e63f4..d46fc333d1 100644
+index 34dd33ba38..39be15bcd4 100644
@@ -35 +37 @@
-@@ -1267,10 +1267,14 @@ mlx5_flow_rxq_dynf_metadata_set(struct rte_eth_dev *dev)
+@@ -1220,10 +1220,14 @@ mlx5_flow_rxq_dynf_metadata_set(struct rte_eth_dev *dev)
@@ -51 +53 @@
-index e3ce9fd224..c76b9951bc 100644
+index fac823ba64..c765314068 100644
@@ -54 +56 @@
-@@ -1388,10 +1388,15 @@ rxq_cq_to_mbuf(struct mlx5_rxq_data *rxq, struct rte_mbuf *pkt,
+@@ -1338,10 +1338,15 @@ rxq_cq_to_mbuf(struct mlx5_rxq_data *rxq, struct rte_mbuf *pkt,
@@ -75 +77 @@
-index 0fd98af9d1..4f0fda0dec 100644
+index c57ccc32ed..7c3c4c0099 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'eal: fix comment of OS-specific header files' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (63 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/mlx5: fix Rx metadata leftovers' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'buildtools: fix build with busybox' " Xueming Li
                   ` (162 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Andrew Rybchenko, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/838da3686658edfbb33d842ff48e3cac17474aa9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 838da3686658edfbb33d842ff48e3cac17474aa9 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Thu, 25 Feb 2021 00:16:22 +0100
Subject: [PATCH] eal: fix comment of OS-specific header files
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit bfb42c3777a82717bfc8da0169a932fe344f22b5 ]

The same comment is on top of each rte_os.h file.
It is reworded to remove the mention of "future releases".

Fixes: 428eb983f5f7 ("eal: add OS specific header file")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_eal/freebsd/include/rte_os.h | 5 ++---
 lib/librte_eal/linux/include/rte_os.h   | 5 ++---
 lib/librte_eal/windows/include/rte_os.h | 5 ++---
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/lib/librte_eal/freebsd/include/rte_os.h b/lib/librte_eal/freebsd/include/rte_os.h
index eeb750cd81..c16f2a30e9 100644
--- a/lib/librte_eal/freebsd/include/rte_os.h
+++ b/lib/librte_eal/freebsd/include/rte_os.h
@@ -6,9 +6,8 @@
 #define _RTE_OS_H_
 
 /**
- * This is header should contain any function/macro definition
- * which are not supported natively or named differently in the
- * freebsd OS. Functions will be added in future releases.
+ * This header should contain any definition
+ * which is not supported natively or named differently in FreeBSD.
  */
 
 #include <pthread_np.h>
diff --git a/lib/librte_eal/linux/include/rte_os.h b/lib/librte_eal/linux/include/rte_os.h
index 218d4fa86e..390b87b3a1 100644
--- a/lib/librte_eal/linux/include/rte_os.h
+++ b/lib/librte_eal/linux/include/rte_os.h
@@ -6,9 +6,8 @@
 #define _RTE_OS_H_
 
 /**
- * This is header should contain any function/macro definition
- * which are not supported natively or named differently in the
- * linux OS. Functions will be added in future releases.
+ * This header should contain any definition
+ * which is not supported natively or named differently in Linux.
  */
 
 #include <sched.h>
diff --git a/lib/librte_eal/windows/include/rte_os.h b/lib/librte_eal/windows/include/rte_os.h
index 7ef38ff06c..f0512f20a6 100644
--- a/lib/librte_eal/windows/include/rte_os.h
+++ b/lib/librte_eal/windows/include/rte_os.h
@@ -6,9 +6,8 @@
 #define _RTE_OS_H_
 
 /**
- * This is header should contain any function/macro definition
- * which are not supported natively or named differently in the
- * Windows OS. It must not include Windows-specific headers.
+ * This header should contain any definition
+ * which is not supported natively or named differently in Windows.
  */
 
 #include <stdarg.h>
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.373485800 +0800
+++ 0067-eal-fix-comment-of-OS-specific-header-files.patch	2021-05-10 23:59:26.420000000 +0800
@@ -1 +1 @@
-From bfb42c3777a82717bfc8da0169a932fe344f22b5 Mon Sep 17 00:00:00 2001
+From 838da3686658edfbb33d842ff48e3cac17474aa9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit bfb42c3777a82717bfc8da0169a932fe344f22b5 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'buildtools: fix build with busybox' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (64 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'eal: fix comment of OS-specific header files' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'build: detect execinfo library on Linux' " Xueming Li
                   ` (161 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Bruce Richardson, Andrew Rybchenko,
	David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/1555f48f85eebdd5ad37bc2c8b776396cd70c8a2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1555f48f85eebdd5ad37bc2c8b776396cd70c8a2 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Wed, 24 Feb 2021 23:47:56 +0100
Subject: [PATCH] buildtools: fix build with busybox
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e1ab26df4862143b81719957977988271505198a ]

If using busybox for mktemp and awk (as in Alpine),
some bugs prevent the script from running:

1/ It seems busybox mktemp requires the pattern to have at least
6 X and no other suffix.
The same has been fixed for other scripts in the past:
commit 3771edc35438 ("buildtools: fix build for some mktemp")

2/ It seems busybox awk does not accept the regex ^.*{
except if the opening curly brace is escaped.

Fixes: 4c82473412e8 ("build: add internal tag check")
Fixes: 68b1f1cda5b4 ("build: check AVX512 rather than binutils version")
Fixes: 3290ac14eb94 ("buildtools: detect discrepancies for experimental symbols")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 buildtools/binutils-avx512-check.sh | 2 +-
 buildtools/check-symbols.sh         | 2 +-
 buildtools/map-list-symbol.sh       | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/buildtools/binutils-avx512-check.sh b/buildtools/binutils-avx512-check.sh
index a7e068140f..2a833b64b7 100755
--- a/buildtools/binutils-avx512-check.sh
+++ b/buildtools/binutils-avx512-check.sh
@@ -3,7 +3,7 @@
 # Copyright(c) 2020 Intel Corporation
 
 AS=${AS:-as}
-OBJFILE=$(mktemp -t dpdk.binutils-check.XXXXXX.o)
+OBJFILE=$(mktemp -t dpdk.binutils-check.XXXXXX)
 trap 'rm -f "$OBJFILE"' EXIT
 # from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90028
 GATHER_PARAMS='0x8(,%ymm1,1),%ymm0{%k2}'
diff --git a/buildtools/check-symbols.sh b/buildtools/check-symbols.sh
index e407553a34..83b3a0182f 100755
--- a/buildtools/check-symbols.sh
+++ b/buildtools/check-symbols.sh
@@ -18,7 +18,7 @@ then
 	exit 0
 fi
 
-DUMPFILE=$(mktemp -t dpdk.${0##*/}.XXX.objdump)
+DUMPFILE=$(mktemp -t dpdk.${0##*/}.objdump.XXXXXX)
 trap 'rm -f "$DUMPFILE"' EXIT
 objdump -t $OBJFILE >$DUMPFILE
 
diff --git a/buildtools/map-list-symbol.sh b/buildtools/map-list-symbol.sh
index 5509b4a7fa..3bf9bd66f8 100755
--- a/buildtools/map-list-symbol.sh
+++ b/buildtools/map-list-symbol.sh
@@ -44,7 +44,7 @@ for file in $@; do
 			ret = 1;
 		}
 	}
-	/^.*{/ {
+	/^.*\{/ {
 		if ("'$section'" == "all" || $1 == "'$section'") {
 			current_section = $1;
 		}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.398459600 +0800
+++ 0068-buildtools-fix-build-with-busybox.patch	2021-05-10 23:59:26.420000000 +0800
@@ -1 +1 @@
-From e1ab26df4862143b81719957977988271505198a Mon Sep 17 00:00:00 2001
+From 1555f48f85eebdd5ad37bc2c8b776396cd70c8a2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e1ab26df4862143b81719957977988271505198a ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'build: detect execinfo library on Linux' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (65 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'buildtools: fix build with busybox' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'build: remove redundant _GNU_SOURCE definitions' " Xueming Li
                   ` (160 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Bruce Richardson, Andrew Rybchenko,
	David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/14702af2e52c0f1046fdb1e0006f09f1fb584b75

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 14702af2e52c0f1046fdb1e0006f09f1fb584b75 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Thu, 25 Feb 2021 02:49:19 +0100
Subject: [PATCH] build: detect execinfo library on Linux
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 1cd512b2f5325c971c5bfdd7715debded986df27 ]

The library execinfo and its header file can be installed on Alpine Linux
where the backtrace feature is not part of musl libc:
	apk add libexecinfo-dev

As a consequence, this library should not be restricted to BSD only.

At the same time, the library and header are detected once and added
globally to be linked with any application, internal or external.

Fixes: 9065b1fac65f ("build: fix dependency on execinfo for BSD meson builds")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 app/meson.build      | 4 ----
 app/test/meson.build | 1 -
 config/meson.build   | 9 ++++++---
 examples/meson.build | 4 +---
 4 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/app/meson.build b/app/meson.build
index 87fc195dbf..50a53dbde8 100644
--- a/app/meson.build
+++ b/app/meson.build
@@ -21,9 +21,6 @@ apps = [
 	'test-regex',
 	'test-sad']
 
-# for BSD only
-lib_execinfo = cc.find_library('execinfo', required: false)
-
 default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
 default_ldflags = []
 if get_option('default_library') == 'static' and not is_windows
@@ -53,7 +50,6 @@ foreach app:apps
 			dep_objs += get_variable(get_option('default_library')
 				 + '_rte_' + d)
 		endforeach
-		dep_objs += lib_execinfo
 
 		link_libs = []
 		if get_option('default_library') == 'static'
diff --git a/app/test/meson.build b/app/test/meson.build
index bdbc619476..3fdd22de7e 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -424,7 +424,6 @@ foreach d:test_deps
 	def_lib = get_option('default_library')
 	test_dep_objs += get_variable(def_lib + '_rte_' + d)
 endforeach
-test_dep_objs += cc.find_library('execinfo', required: false)
 
 link_libs = []
 if get_option('default_library') == 'static'
diff --git a/config/meson.build b/config/meson.build
index 2f150de3b8..5b7439aefb 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -125,11 +125,8 @@ if cc.find_library('m', required : false).found()
 	dpdk_extra_ldflags += '-lm'
 endif
 
-# for linux link against dl, for bsd execinfo
 if is_linux
 	link_lib = 'dl'
-elif is_freebsd
-	link_lib = 'execinfo'
 else
 	link_lib = ''
 endif
@@ -159,6 +156,12 @@ if fdt_dep.found() and cc.has_header('fdt.h')
 	dpdk_extra_ldflags += '-lfdt'
 endif
 
+libexecinfo = cc.find_library('libexecinfo', required: false)
+if libexecinfo.found() and cc.has_header('execinfo.h')
+	add_project_link_arguments('-lexecinfo', language: 'c')
+	dpdk_extra_ldflags += '-lexecinfo'
+endif
+
 # check for libbsd
 libbsd = dependency('libbsd', required: false, method: 'pkg-config')
 if libbsd.found()
diff --git a/examples/meson.build b/examples/meson.build
index 3fe08d4ca5..d065a6a08b 100644
--- a/examples/meson.build
+++ b/examples/meson.build
@@ -6,8 +6,6 @@ if get_option('default_library') == 'static'
 	link_whole_libs = dpdk_static_libraries + dpdk_drivers
 endif
 
-execinfo = cc.find_library('execinfo', required: false)
-
 # list of all example apps. Keep 1-3 per line, in alphabetical order.
 all_examples = [
 	'bbdev_app', 'bond',
@@ -82,7 +80,7 @@ foreach example: examples
 	cflags = default_cflags
 	ldflags = default_ldflags
 
-	ext_deps = [execinfo]
+	ext_deps = []
 	includes = [include_directories(example)]
 	deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
 	subdir(example)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.419493400 +0800
+++ 0069-build-detect-execinfo-library-on-Linux.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From 1cd512b2f5325c971c5bfdd7715debded986df27 Mon Sep 17 00:00:00 2001
+From 14702af2e52c0f1046fdb1e0006f09f1fb584b75 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 1cd512b2f5325c971c5bfdd7715debded986df27 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -52 +54 @@
-index 561e493a29..099895fc87 100644
+index bdbc619476..3fdd22de7e 100644
@@ -55 +57 @@
-@@ -426,7 +426,6 @@ foreach d:test_deps
+@@ -424,7 +424,6 @@ foreach d:test_deps
@@ -64 +66 @@
-index 3cf560b8a3..66a2edcc47 100644
+index 2f150de3b8..5b7439aefb 100644
@@ -79 +81 @@
-@@ -166,6 +163,12 @@ if fdt_dep.found() and cc.has_header('fdt.h')
+@@ -159,6 +156,12 @@ if fdt_dep.found() and cc.has_header('fdt.h')

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'build: remove redundant _GNU_SOURCE definitions' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (66 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'build: detect execinfo library on Linux' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'eal: fix build with musl' " Xueming Li
                   ` (159 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Andrew Rybchenko, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/9c3bb2603c1c964ce8fa3740e9d39ac0cf3ff4ce

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 9c3bb2603c1c964ce8fa3740e9d39ac0cf3ff4ce Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Thu, 25 Feb 2021 09:45:06 +0100
Subject: [PATCH] build: remove redundant _GNU_SOURCE definitions
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e0ae50c6876e899540f6116f8b4f5e5e3dec445f ]

The feature macro _GNU_SOURCE is defined globally,
but there was some remaining useless settings.

The internal definition in config/meson.build is kept,
all other internal definitions of _GNU_SOURCE are removed,
except in examples, which can be built as external applications.
Note: external applications do not inherit of _GNU_SOURCE.

Fixes: 5d7b673d5fd6 ("mk: build with _GNU_SOURCE defined by default")
Fixes: 28188cee2aa0 ("build: enable BSD features visibility for FreeBSD")
Fixes: e6cdc54cc0ef ("net/mlx5: add socket server for external tools")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 app/test/meson.build                     | 2 --
 drivers/bus/fslmc/qbman/include/compat.h | 3 ---
 drivers/common/dpaax/compat.h            | 4 ----
 drivers/common/dpaax/meson.build         | 1 -
 drivers/net/memif/rte_eth_memif.h        | 4 ----
 drivers/net/mlx5/linux/mlx5_socket.c     | 4 ----
 6 files changed, 18 deletions(-)

diff --git a/app/test/meson.build b/app/test/meson.build
index 3fdd22de7e..49fbb5e18e 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -396,8 +396,6 @@ if cc.has_argument('-Wno-format-truncation')
     cflags += '-Wno-format-truncation'
 endif
 
-# specify -D_GNU_SOURCE unconditionally
-cflags += '-D_GNU_SOURCE'
 # Strict-aliasing rules are violated by uint8_t[] to context size casts.
 cflags += '-fno-strict-aliasing'
 
diff --git a/drivers/bus/fslmc/qbman/include/compat.h b/drivers/bus/fslmc/qbman/include/compat.h
index 1ddd69e127..a4471a80af 100644
--- a/drivers/bus/fslmc/qbman/include/compat.h
+++ b/drivers/bus/fslmc/qbman/include/compat.h
@@ -8,9 +8,6 @@
 #ifndef HEADER_COMPAT_H
 #define HEADER_COMPAT_H
 
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
 #include <stdio.h>
 #include <stdint.h>
 #include <stdlib.h>
diff --git a/drivers/common/dpaax/compat.h b/drivers/common/dpaax/compat.h
index 1a5f36e99e..c69e76ab96 100644
--- a/drivers/common/dpaax/compat.h
+++ b/drivers/common/dpaax/compat.h
@@ -10,10 +10,6 @@
 #define __COMPAT_H
 
 #include <sched.h>
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
 #include <stdint.h>
 #include <stdlib.h>
 #include <stddef.h>
diff --git a/drivers/common/dpaax/meson.build b/drivers/common/dpaax/meson.build
index 4535482701..b7f177a62e 100644
--- a/drivers/common/dpaax/meson.build
+++ b/drivers/common/dpaax/meson.build
@@ -10,7 +10,6 @@ sources = files('dpaax_iova_table.c', 'dpaa_of.c', 'caamflib.c')
 
 includes += include_directories('caamflib')
 
-cflags += ['-D_GNU_SOURCE']
 if cc.has_argument('-Wno-cast-qual')
 	cflags += '-Wno-cast-qual'
 endif
diff --git a/drivers/net/memif/rte_eth_memif.h b/drivers/net/memif/rte_eth_memif.h
index 765a7e5998..7e5c15341e 100644
--- a/drivers/net/memif/rte_eth_memif.h
+++ b/drivers/net/memif/rte_eth_memif.h
@@ -5,10 +5,6 @@
 #ifndef _RTE_ETH_MEMIF_H_
 #define _RTE_ETH_MEMIF_H_
 
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif				/* GNU_SOURCE */
-
 #include <sys/queue.h>
 
 #include <rte_ethdev_driver.h>
diff --git a/drivers/net/mlx5/linux/mlx5_socket.c b/drivers/net/mlx5/linux/mlx5_socket.c
index 1938453980..b1f41bc102 100644
--- a/drivers/net/mlx5/linux/mlx5_socket.c
+++ b/drivers/net/mlx5/linux/mlx5_socket.c
@@ -2,10 +2,6 @@
  * Copyright 2019 Mellanox Technologies, Ltd
  */
 
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/un.h>
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.443423200 +0800
+++ 0070-build-remove-redundant-_GNU_SOURCE-definitions.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From e0ae50c6876e899540f6116f8b4f5e5e3dec445f Mon Sep 17 00:00:00 2001
+From 9c3bb2603c1c964ce8fa3740e9d39ac0cf3ff4ce Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e0ae50c6876e899540f6116f8b4f5e5e3dec445f ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -32 +34 @@
-index 099895fc87..76eaaea457 100644
+index 3fdd22de7e..49fbb5e18e 100644
@@ -35 +37 @@
-@@ -398,8 +398,6 @@ if cc.has_argument('-Wno-format-truncation')
+@@ -396,8 +396,6 @@ if cc.has_argument('-Wno-format-truncation')
@@ -86 +88 @@
-index 24321d3a39..2038bda742 100644
+index 765a7e5998..7e5c15341e 100644
@@ -99 +101 @@
- #include <ethdev_driver.h>
+ #include <rte_ethdev_driver.h>

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'eal: fix build with musl' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (67 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'build: remove redundant _GNU_SOURCE definitions' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'common/dpaax/caamflib: " Xueming Li
                   ` (158 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Natanael Copa, Andrew Rybchenko, David Marchand,
	dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/efa745cbb2c3ceed88aec922fb75e386d4e6554b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From efa745cbb2c3ceed88aec922fb75e386d4e6554b Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Thu, 25 Feb 2021 00:21:58 +0100
Subject: [PATCH] eal: fix build with musl
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e0473c6d5b18560dd11fd4d7ebc81dea6774f33e ]

In musl libc, cpu_set_t is defined only if _GNU_SOURCE is defined.
In case _GNU_SOURCE is undefined, as in eal_common_errno.c,
it was not possible to include rte_os.h which uses cpu_set_t.

This limitation is removed: if CPU_SETSIZE is not defined,
cpu_set_t related definitions and functions are skipped.
Note: such definitions are unneeded in eal_common_errno.c.

Applications which do not define _GNU_SOURCE may miss cpu_set_t related
features on musl. Such case is detected by RTE_HAS_CPUSET being
undefined,
so functions which depend on rte_cpuset_t will be unavailable.

A missing include of fcntl.h is also added.

Bugzilla ID: 35
Fixes: 11b57c698005 ("eal: fix error string function")
Fixes: 176bb37ca6f3 ("eal: introduce internal wrappers for file
operations")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 doc/api/doxy-api.conf.in                | 3 ++-
 lib/librte_eal/freebsd/include/rte_os.h | 1 +
 lib/librte_eal/include/rte_lcore.h      | 8 ++++++++
 lib/librte_eal/linux/include/rte_os.h   | 3 +++
 lib/librte_eal/unix/eal_file.c          | 1 +
 lib/librte_eal/windows/include/sched.h  | 1 +
 lib/librte_telemetry/rte_telemetry.h    | 4 ++++
 7 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in
index 5c883b613b..a536bcb493 100644
--- a/doc/api/doxy-api.conf.in
+++ b/doc/api/doxy-api.conf.in
@@ -80,7 +80,8 @@ INPUT                   += @API_EXAMPLES@
 FILE_PATTERNS           = rte_*.h \
                           cmdline.h
 PREDEFINED              = __DOXYGEN__ \
-			   VFIO_PRESENT \
+                          RTE_HAS_CPUSET \
+                          VFIO_PRESENT \
                           __attribute__(x)=
 
 OPTIMIZE_OUTPUT_FOR_C   = YES
diff --git a/lib/librte_eal/freebsd/include/rte_os.h b/lib/librte_eal/freebsd/include/rte_os.h
index c16f2a30e9..627f0483ab 100644
--- a/lib/librte_eal/freebsd/include/rte_os.h
+++ b/lib/librte_eal/freebsd/include/rte_os.h
@@ -13,6 +13,7 @@
 #include <pthread_np.h>
 
 typedef cpuset_t rte_cpuset_t;
+#define RTE_HAS_CPUSET
 #define RTE_CPU_AND(dst, src1, src2) do \
 { \
 	cpuset_t tmp; \
diff --git a/lib/librte_eal/include/rte_lcore.h b/lib/librte_eal/include/rte_lcore.h
index 48b87e253a..a55fd7496d 100644
--- a/lib/librte_eal/include/rte_lcore.h
+++ b/lib/librte_eal/include/rte_lcore.h
@@ -185,6 +185,8 @@ __rte_experimental
 int
 rte_lcore_to_cpu_id(int lcore_id);
 
+#ifdef RTE_HAS_CPUSET
+
 /**
  * @warning
  * @b EXPERIMENTAL: this API may change without prior notice.
@@ -199,6 +201,8 @@ __rte_experimental
 rte_cpuset_t
 rte_lcore_cpuset(unsigned int lcore_id);
 
+#endif /* RTE_HAS_CPUSET */
+
 /**
  * Test if an lcore is enabled.
  *
@@ -357,6 +361,8 @@ __rte_experimental
 void
 rte_lcore_dump(FILE *f);
 
+#ifdef RTE_HAS_CPUSET
+
 /**
  * Set core affinity of the current thread.
  * Support both EAL and non-EAL thread and update TLS.
@@ -378,6 +384,8 @@ int rte_thread_set_affinity(rte_cpuset_t *cpusetp);
  */
 void rte_thread_get_affinity(rte_cpuset_t *cpusetp);
 
+#endif /* RTE_HAS_CPUSET */
+
 /**
  * Set thread names.
  *
diff --git a/lib/librte_eal/linux/include/rte_os.h b/lib/librte_eal/linux/include/rte_os.h
index 390b87b3a1..1618b4df22 100644
--- a/lib/librte_eal/linux/include/rte_os.h
+++ b/lib/librte_eal/linux/include/rte_os.h
@@ -12,7 +12,9 @@
 
 #include <sched.h>
 
+#ifdef CPU_SETSIZE /* may require _GNU_SOURCE */
 typedef cpu_set_t rte_cpuset_t;
+#define RTE_HAS_CPUSET
 #define RTE_CPU_AND(dst, src1, src2) CPU_AND(dst, src1, src2)
 #define RTE_CPU_OR(dst, src1, src2) CPU_OR(dst, src1, src2)
 #define RTE_CPU_FILL(set) do \
@@ -28,5 +30,6 @@ typedef cpu_set_t rte_cpuset_t;
 	RTE_CPU_FILL(&tmp); \
 	CPU_XOR(dst, &tmp, src); \
 } while (0)
+#endif
 
 #endif /* _RTE_OS_H_ */
diff --git a/lib/librte_eal/unix/eal_file.c b/lib/librte_eal/unix/eal_file.c
index 1b26475ba4..ec554e0096 100644
--- a/lib/librte_eal/unix/eal_file.c
+++ b/lib/librte_eal/unix/eal_file.c
@@ -4,6 +4,7 @@
 
 #include <sys/file.h>
 #include <sys/mman.h>
+#include <fcntl.h>
 #include <unistd.h>
 
 #include <rte_errno.h>
diff --git a/lib/librte_eal/windows/include/sched.h b/lib/librte_eal/windows/include/sched.h
index fbe07f742c..ff572b5dcb 100644
--- a/lib/librte_eal/windows/include/sched.h
+++ b/lib/librte_eal/windows/include/sched.h
@@ -28,6 +28,7 @@ extern "C" {
 typedef struct _rte_cpuset_s {
 	long long _bits[_NUM_SETS(CPU_SETSIZE)];
 } rte_cpuset_t;
+#define RTE_HAS_CPUSET
 
 #define CPU_SET(b, s) ((s)->_bits[_WHICH_SET(b)] |= (1LL << _WHICH_BIT(b)))
 
diff --git a/lib/librte_telemetry/rte_telemetry.h b/lib/librte_telemetry/rte_telemetry.h
index 76172222c9..9cd6d0cd4c 100644
--- a/lib/librte_telemetry/rte_telemetry.h
+++ b/lib/librte_telemetry/rte_telemetry.h
@@ -292,6 +292,8 @@ __rte_experimental
 int
 rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn, const char *help);
 
+#ifdef RTE_HAS_CPUSET
+
 /**
  * @internal
  * Initialize Telemetry.
@@ -314,6 +316,8 @@ int
 rte_telemetry_init(const char *runtime_dir, rte_cpuset_t *cpuset,
 		const char **err_str);
 
+#endif /* RTE_HAS_CPUSET */
+
 /**
  * Get a pointer to a container with memory allocated. The container is to be
  * used embedded within an existing telemetry dict/array.
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.467229800 +0800
+++ 0071-eal-fix-build-with-musl.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From e0473c6d5b18560dd11fd4d7ebc81dea6774f33e Mon Sep 17 00:00:00 2001
+From efa745cbb2c3ceed88aec922fb75e386d4e6554b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e0473c6d5b18560dd11fd4d7ebc81dea6774f33e ]
@@ -15 +18,2 @@
-features on musl. Such case is detected by RTE_HAS_CPUSET being undefined,
+features on musl. Such case is detected by RTE_HAS_CPUSET being
+undefined,
@@ -22,2 +26,2 @@
-Fixes: 176bb37ca6f3 ("eal: introduce internal wrappers for file operations")
-Cc: stable@dpdk.org
+Fixes: 176bb37ca6f3 ("eal: introduce internal wrappers for file
+operations")
@@ -32,2 +36 @@
- lib/librte_eal/include/rte_lcore.h      | 4 ++++
- lib/librte_eal/include/rte_thread.h     | 4 ++++
+ lib/librte_eal/include/rte_lcore.h      | 8 ++++++++
@@ -38 +41 @@
- 8 files changed, 20 insertions(+), 1 deletion(-)
+ 7 files changed, 20 insertions(+), 1 deletion(-)
@@ -41 +44 @@
-index 5eb31508fd..b3c5cdfeca 100644
+index 5c883b613b..a536bcb493 100644
@@ -44 +47 @@
-@@ -81,7 +81,8 @@ INPUT                   += @API_EXAMPLES@
+@@ -80,7 +80,8 @@ INPUT                   += @API_EXAMPLES@
@@ -67 +70 @@
-index 0fe0bd839c..1550b75da0 100644
+index 48b87e253a..a55fd7496d 100644
@@ -70 +73 @@
-@@ -186,6 +186,8 @@ __rte_experimental
+@@ -185,6 +185,8 @@ __rte_experimental
@@ -79 +82 @@
-@@ -200,6 +202,8 @@ __rte_experimental
+@@ -199,6 +201,8 @@ __rte_experimental
@@ -88,7 +91,3 @@
-diff --git a/lib/librte_eal/include/rte_thread.h b/lib/librte_eal/include/rte_thread.h
-index e640ea1857..ac5a89b1ad 100644
---- a/lib/librte_eal/include/rte_thread.h
-+++ b/lib/librte_eal/include/rte_thread.h
-@@ -25,6 +25,8 @@ extern "C" {
-  */
- typedef struct eal_tls_key *rte_tls_key;
+@@ -357,6 +361,8 @@ __rte_experimental
+ void
+ rte_lcore_dump(FILE *f);
@@ -101 +100 @@
-@@ -46,6 +48,8 @@ int rte_thread_set_affinity(rte_cpuset_t *cpusetp);
+@@ -378,6 +384,8 @@ int rte_thread_set_affinity(rte_cpuset_t *cpusetp);
@@ -108,2 +107,2 @@
-  * Create a TLS data key visible to all threads in the process.
-  * the created key is later used to get/set a value.
+  * Set thread names.
+  *
@@ -156 +155 @@
-index f7c8534b82..027b048d78 100644
+index 76172222c9..9cd6d0cd4c 100644
@@ -169 +168 @@
- rte_telemetry_init(const char *runtime_dir, const char *rte_version, rte_cpuset_t *cpuset,
+ rte_telemetry_init(const char *runtime_dir, rte_cpuset_t *cpuset,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'common/dpaax/caamflib: fix build with musl' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (68 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'eal: fix build with musl' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'bus/dpaa: fix 64-bit arch detection' " Xueming Li
                   ` (157 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Natanael Copa
  Cc: Luca Boccassi, Hemant Agrawal, Thomas Monjalon, Andrew Rybchenko,
	David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/a4553bb9d242788592ce492eab69711b5d2926b6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a4553bb9d242788592ce492eab69711b5d2926b6 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 5 Nov 2020 22:17:14 +0100
Subject: [PATCH] common/dpaax/caamflib: fix build with musl
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 8bf3ff3c37ec1786470dfa7b8056e3304bbba14f ]

The swab16/swab32/swab64 are Linux specific and not GNU libc specific.
Keep the check for __GLIBC__ just in case other GNU systems depends on
this (Hurd or GNU/kFreeBSD).

This fixes a build error with musl libc.

Fixes: 04711d41a872 ("crypto/dpaa2_sec: add run-time assembler for descriptor")

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/common/dpaax/caamflib/compat.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/common/dpaax/caamflib/compat.h b/drivers/common/dpaax/caamflib/compat.h
index 36ee4b5335..c1a693498d 100644
--- a/drivers/common/dpaax/caamflib/compat.h
+++ b/drivers/common/dpaax/caamflib/compat.h
@@ -11,7 +11,7 @@
 #include <stdint.h>
 #include <errno.h>
 
-#ifdef __GLIBC__
+#ifdef RTE_EXEC_ENV_LINUX
 #include <string.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -24,7 +24,7 @@
 #error "Undefined endianness"
 #endif
 
-#else
+#else /* !RTE_EXEC_ENV_LINUX */
 #error Environment not supported!
 #endif
 
@@ -40,7 +40,7 @@
 #define __maybe_unused __rte_unused
 #endif
 
-#if defined(__GLIBC__) && !defined(pr_debug)
+#if !defined(pr_debug)
 #if !defined(SUPPRESS_PRINTS) && defined(RTA_DEBUG)
 #define pr_debug(fmt, ...) \
 	RTE_LOG(DEBUG, PMD, "%s(): " fmt "\n", __func__, ##__VA_ARGS__)
@@ -49,7 +49,7 @@
 #endif
 #endif /* pr_debug */
 
-#if defined(__GLIBC__) && !defined(pr_err)
+#if !defined(pr_err)
 #if !defined(SUPPRESS_PRINTS)
 #define pr_err(fmt, ...) \
 	RTE_LOG(ERR, PMD, "%s(): " fmt "\n", __func__, ##__VA_ARGS__)
@@ -58,7 +58,7 @@
 #endif
 #endif /* pr_err */
 
-#if defined(__GLIBC__) && !defined(pr_warn)
+#if !defined(pr_warn)
 #if !defined(SUPPRESS_PRINTS)
 #define pr_warn(fmt, ...) \
 	RTE_LOG(WARNING, PMD, "%s(): " fmt "\n", __func__, ##__VA_ARGS__)
@@ -101,7 +101,7 @@
 #endif
 
 /* Use Linux naming convention */
-#ifdef __GLIBC__
+#if defined(RTE_EXEC_ENV_LINUX) || defined(__GLIBC__)
 	#define swab16(x) rte_bswap16(x)
 	#define swab32(x) rte_bswap32(x)
 	#define swab64(x) rte_bswap64(x)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.491346400 +0800
+++ 0072-common-dpaax-caamflib-fix-build-with-musl.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From 8bf3ff3c37ec1786470dfa7b8056e3304bbba14f Mon Sep 17 00:00:00 2001
+From a4553bb9d242788592ce492eab69711b5d2926b6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 8bf3ff3c37ec1786470dfa7b8056e3304bbba14f ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'bus/dpaa: fix 64-bit arch detection' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (69 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'common/dpaax/caamflib: " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'bus/dpaa: fix build with musl' " Xueming Li
                   ` (156 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Natanael Copa
  Cc: Luca Boccassi, Hemant Agrawal, Andrew Rybchenko, David Marchand,
	dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/a01c94a0c3b1ecbd48a3cfd1e04e760d8fa9707a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a01c94a0c3b1ecbd48a3cfd1e04e760d8fa9707a Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 5 Nov 2020 22:17:13 +0100
Subject: [PATCH] bus/dpaa: fix 64-bit arch detection
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit a4ab65e75beecbebafdca91aa6aac1f091b4460c ]

There is no standard saying that __WORDSIZE should be defined or in
what include it should be defined. Use RTE_ARCH_64 instead.

This solves a warning when building with musl libc:

 warning: "__WORDSIZE" is not defined, evaluates to 0 [-Wundef]

Fixes: 847ee3bd0d1f ("bus/dpaa: support FMAN frame queue lookup")

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/dpaa/include/fsl_qman.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 10212f0fd5..7ef2f3b2e3 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -16,7 +16,7 @@ extern "C" {
 #include <rte_eventdev.h>
 
 /* FQ lookups (turn this on for 64bit user-space) */
-#if (__WORDSIZE == 64)
+#ifdef RTE_ARCH_64
 #define CONFIG_FSL_QMAN_FQ_LOOKUP
 /* if FQ lookups are supported, this controls the number of initialised,
  * s/w-consumed FQs that can be supported at any one time.
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.514480000 +0800
+++ 0073-bus-dpaa-fix-64-bit-arch-detection.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From a4ab65e75beecbebafdca91aa6aac1f091b4460c Mon Sep 17 00:00:00 2001
+From a01c94a0c3b1ecbd48a3cfd1e04e760d8fa9707a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit a4ab65e75beecbebafdca91aa6aac1f091b4460c ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'bus/dpaa: fix build with musl' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (70 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'bus/dpaa: fix 64-bit arch detection' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/cxgbe: remove use of uint type' " Xueming Li
                   ` (155 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Natanael Copa
  Cc: Luca Boccassi, Thomas Monjalon, Andrew Rybchenko, David Marchand,
	dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/fc4664ada56f15a73045f6222247522c17d3a53f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From fc4664ada56f15a73045f6222247522c17d3a53f Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 5 Nov 2020 22:17:12 +0100
Subject: [PATCH] bus/dpaa: fix build with musl
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e9fd4b87f08d4da01ea9bde075f02e702b65a784 ]

The header files argp.h and error.h do not exist in musl libc.

Fix build with musl libc by using err(3) instead of
the GNU-specific error(3).

We could have used the identical errx("...: %s", strerror(ret))` but
strerror(3) is not thread-safe and the strerror_r variant has two
incompatible versions, one GNU specific and one XSI-compliant.
Avoid the mess by letting "err" use the thread-local errno.

This also fixes error message for kzmalloc failures which previously
would always have given "Unknown error -1", since that is what
strerror(-1) returns. Let "err" use the proper error message from errno
which is set by kzalloc.

Fixes: 9d32ef0f5d61 ("bus/dpaa: support creating dynamic HW portal")
Fixes: f09ede6c8fd1 ("bus/dpaa: add BMAN driver core")
Fixes: 5b22cf744689 ("bus/dpaa: introducing FMan configurations")
Fixes: 39f373cf015a ("bus/dpaa: add compatibility and helper macros")

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/dpaa/base/fman/netcfg_layer.c |  4 ++--
 drivers/bus/dpaa/base/qbman/bman_driver.c | 13 +++++++++----
 drivers/bus/dpaa/base/qbman/qman_driver.c | 17 ++++++++++++-----
 drivers/bus/dpaa/include/netcfg.h         |  1 -
 drivers/common/dpaax/compat.h             |  1 -
 5 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/drivers/bus/dpaa/base/fman/netcfg_layer.c b/drivers/bus/dpaa/base/fman/netcfg_layer.c
index b7009f2299..120deb0bb6 100644
--- a/drivers/bus/dpaa/base/fman/netcfg_layer.c
+++ b/drivers/bus/dpaa/base/fman/netcfg_layer.c
@@ -8,7 +8,7 @@
 #include <dpaa_of.h>
 #include <net/if.h>
 #include <sys/ioctl.h>
-#include <error.h>
+#include <err.h>
 #include <net/if_arp.h>
 #include <assert.h>
 #include <unistd.h>
@@ -90,7 +90,7 @@ netcfg_acquire(void)
 	 */
 	skfd = socket(AF_PACKET, SOCK_RAW, 0);
 	if (unlikely(skfd < 0)) {
-		error(0, errno, "%s(): open(SOCK_RAW)", __func__);
+		err(0, "%s(): open(SOCK_RAW)", __func__);
 		return NULL;
 	}
 
diff --git a/drivers/bus/dpaa/base/qbman/bman_driver.c b/drivers/bus/dpaa/base/qbman/bman_driver.c
index 750b756b93..ee35e03da1 100644
--- a/drivers/bus/dpaa/base/qbman/bman_driver.c
+++ b/drivers/bus/dpaa/base/qbman/bman_driver.c
@@ -11,6 +11,7 @@
 #include <process.h>
 #include "bman_priv.h"
 #include <sys/ioctl.h>
+#include <err.h>
 
 /*
  * Global variables of the max portal/pool number this bman version supported
@@ -40,7 +41,8 @@ static int fsl_bman_portal_init(uint32_t idx, int is_shared)
 	ret = pthread_getaffinity_np(pthread_self(), sizeof(cpu_set_t),
 				     &cpuset);
 	if (ret) {
-		error(0, ret, "pthread_getaffinity_np()");
+		errno = ret;
+		err(0, "pthread_getaffinity_np()");
 		return ret;
 	}
 	pcfg.cpu = -1;
@@ -60,7 +62,8 @@ static int fsl_bman_portal_init(uint32_t idx, int is_shared)
 	map.index = idx;
 	ret = process_portal_map(&map);
 	if (ret) {
-		error(0, ret, "process_portal_map()");
+		errno = ret;
+		err(0, "process_portal_map()");
 		return ret;
 	}
 	/* Make the portal's cache-[enabled|inhibited] regions */
@@ -104,8 +107,10 @@ static int fsl_bman_portal_finish(void)
 	cfg = bman_destroy_affine_portal();
 	DPAA_BUG_ON(cfg != &pcfg);
 	ret = process_portal_unmap(&map.addr);
-	if (ret)
-		error(0, ret, "process_portal_unmap()");
+	if (ret) {
+		errno = ret;
+		err(0, "process_portal_unmap()");
+	}
 	return ret;
 }
 
diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c
index 6d9aaff164..dfbafe581a 100644
--- a/drivers/bus/dpaa/base/qbman/qman_driver.c
+++ b/drivers/bus/dpaa/base/qbman/qman_driver.c
@@ -9,6 +9,8 @@
 #include <process.h>
 #include "qman_priv.h"
 #include <sys/ioctl.h>
+#include <err.h>
+
 #include <rte_branch_prediction.h>
 
 /* Global variable containing revision id (even on non-control plane systems
@@ -50,7 +52,8 @@ static int fsl_qman_portal_init(uint32_t index, int is_shared)
 	map.index = index;
 	ret = process_portal_map(&map);
 	if (ret) {
-		error(0, ret, "process_portal_map()");
+		errno = ret;
+		err(0, "process_portal_map()");
 		return ret;
 	}
 	qpcfg.channel = map.channel;
@@ -96,8 +99,10 @@ static int fsl_qman_portal_finish(void)
 	cfg = qman_destroy_affine_portal(NULL);
 	DPAA_BUG_ON(cfg != &qpcfg);
 	ret = process_portal_unmap(&map.addr);
-	if (ret)
-		error(0, ret, "process_portal_unmap()");
+	if (ret) {
+		errno = ret;
+		err(0, "process_portal_unmap()");
+	}
 	return ret;
 }
 
@@ -146,7 +151,8 @@ struct qman_portal *fsl_qman_fq_portal_create(int *fd)
 
 	q_pcfg = kzalloc((sizeof(struct qm_portal_config)), 0);
 	if (!q_pcfg) {
-		error(0, -1, "q_pcfg kzalloc failed");
+		/* kzalloc sets errno */
+		err(0, "q_pcfg kzalloc failed");
 		return NULL;
 	}
 
@@ -155,7 +161,8 @@ struct qman_portal *fsl_qman_fq_portal_create(int *fd)
 	q_map.index = QBMAN_ANY_PORTAL_IDX;
 	ret = process_portal_map(&q_map);
 	if (ret) {
-		error(0, ret, "process_portal_map()");
+		errno = ret;
+		err(0, "process_portal_map()");
 		kfree(q_pcfg);
 		return NULL;
 	}
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index d7d1befd24..bb18a34e3d 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -9,7 +9,6 @@
 #define __NETCFG_H
 
 #include <fman.h>
-#include <argp.h>
 
 /* Configuration information related to a specific ethernet port */
 struct fm_eth_port_cfg {
diff --git a/drivers/common/dpaax/compat.h b/drivers/common/dpaax/compat.h
index c69e76ab96..7166f8cceb 100644
--- a/drivers/common/dpaax/compat.h
+++ b/drivers/common/dpaax/compat.h
@@ -30,7 +30,6 @@
 #include <assert.h>
 #include <dirent.h>
 #include <inttypes.h>
-#include <error.h>
 #include <rte_byteorder.h>
 #include <rte_atomic.h>
 #include <rte_spinlock.h>
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.538785500 +0800
+++ 0074-bus-dpaa-fix-build-with-musl.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From e9fd4b87f08d4da01ea9bde075f02e702b65a784 Mon Sep 17 00:00:00 2001
+From fc4664ada56f15a73045f6222247522c17d3a53f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e9fd4b87f08d4da01ea9bde075f02e702b65a784 ]
@@ -25 +27,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/cxgbe: remove use of uint type' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (71 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'bus/dpaa: fix build with musl' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/igc: " Xueming Li
                   ` (154 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Natanael Copa
  Cc: Luca Boccassi, Morten Brørup, Andrew Rybchenko,
	David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/6bee873fbb8eeb24a43eb5992c42ec9643c62db1

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6bee873fbb8eeb24a43eb5992c42ec9643c62db1 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 5 Nov 2020 22:17:10 +0100
Subject: [PATCH] net/cxgbe: remove use of uint type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 3d100ccb2e16087f1ba0ba09274ee1b40b6f0e15 ]

Improve portability by replacing non-standard 'uint' with 'unsigned int'.

This solves the build error with musl libc:

In file included from ../drivers/net/cxgbe/cxgbe.h:9,
                 from ../drivers/net/cxgbe/cxgbe_ethdev.c:37:
../drivers/net/cxgbe/base/common.h:201:4: error: unknown type name 'uint'
  201 |    uint synmapen:1; /* SYN Map Enable */
      |    ^~~~

Fixes: bfcb257d3014 ("net/cxgbe: enable RSS for VF")

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/cxgbe/base/common.h | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/cxgbe/base/common.h b/drivers/net/cxgbe/base/common.h
index 8fe8e2a36b..60ba14d044 100644
--- a/drivers/net/cxgbe/base/common.h
+++ b/drivers/net/cxgbe/base/common.h
@@ -201,15 +201,15 @@ struct rss_params {
 	unsigned int mode;			/* RSS mode */
 	union {
 		struct {
-			uint synmapen:1;	/* SYN Map Enable */
-			uint syn4tupenipv6:1;	/* en 4-tuple IPv6 SYNs hash */
-			uint syn2tupenipv6:1;	/* en 2-tuple IPv6 SYNs hash */
-			uint syn4tupenipv4:1;	/* en 4-tuple IPv4 SYNs hash */
-			uint syn2tupenipv4:1;	/* en 2-tuple IPv4 SYNs hash */
-			uint ofdmapen:1;	/* Offload Map Enable */
-			uint tnlmapen:1;	/* Tunnel Map Enable */
-			uint tnlalllookup:1;	/* Tunnel All Lookup */
-			uint hashtoeplitz:1;	/* use Toeplitz hash */
+			unsigned int synmapen:1;      /* SYN Map Enable */
+			unsigned int syn4tupenipv6:1; /* en 4-tuple IPv6 SYNs hash */
+			unsigned int syn2tupenipv6:1; /* en 2-tuple IPv6 SYNs hash */
+			unsigned int syn4tupenipv4:1; /* en 4-tuple IPv4 SYNs hash */
+			unsigned int syn2tupenipv4:1; /* en 2-tuple IPv4 SYNs hash */
+			unsigned int ofdmapen:1;      /* Offload Map Enable */
+			unsigned int tnlmapen:1;      /* Tunnel Map Enable */
+			unsigned int tnlalllookup:1;  /* Tunnel All Lookup */
+			unsigned int hashtoeplitz:1;  /* use Toeplitz hash */
 		} basicvirtual;
 	} u;
 };
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.560741600 +0800
+++ 0075-net-cxgbe-remove-use-of-uint-type.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From 3d100ccb2e16087f1ba0ba09274ee1b40b6f0e15 Mon Sep 17 00:00:00 2001
+From 6bee873fbb8eeb24a43eb5992c42ec9643c62db1 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 3d100ccb2e16087f1ba0ba09274ee1b40b6f0e15 ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -31 +33 @@
-index 202a2f4baf..ab100d784c 100644
+index 8fe8e2a36b..60ba14d044 100644
@@ -34 +36 @@
-@@ -189,15 +189,15 @@ struct rss_params {
+@@ -201,15 +201,15 @@ struct rss_params {

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/igc: remove use of uint type' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (72 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/cxgbe: remove use of uint type' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'event/dlb: fix header includes for musl' " Xueming Li
                   ` (153 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, David Marchand, Haiyue Wang, Andrew Rybchenko,
	dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/c8f64e248df92516f13441425381354d5c218d89

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c8f64e248df92516f13441425381354d5c218d89 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Thu, 25 Feb 2021 10:45:09 +0100
Subject: [PATCH] net/igc: remove use of uint type
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit f17c5d7abd91a4c70a8ca82f885e2f930980d22d ]

Improve portability (especially with musl libc)
by replacing the non-standard type 'uint' with 'size_t'.

Fixes: 746664d546fb ("net/igc: support flow API")

Suggested-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/igc/igc_flow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/igc/igc_flow.c b/drivers/net/igc/igc_flow.c
index 1bb64d323c..66053060af 100644
--- a/drivers/net/igc/igc_flow.c
+++ b/drivers/net/igc/igc_flow.c
@@ -656,7 +656,7 @@ igc_parse_action_rss(struct rte_eth_dev *dev,
  * Return the pointer of the flow, or NULL for failed
  **/
 static inline struct rte_flow *
-igc_alloc_flow(const void *filter, enum igc_filter_type type, uint inbytes)
+igc_alloc_flow(const void *filter, enum igc_filter_type type, size_t inbytes)
 {
 	/* allocate memory, 8 bytes boundary aligned */
 	struct rte_flow *flow = rte_malloc("igc flow filter",
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.583312500 +0800
+++ 0076-net-igc-remove-use-of-uint-type.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From f17c5d7abd91a4c70a8ca82f885e2f930980d22d Mon Sep 17 00:00:00 2001
+From c8f64e248df92516f13441425381354d5c218d89 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit f17c5d7abd91a4c70a8ca82f885e2f930980d22d ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'event/dlb: fix header includes for musl' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (73 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/igc: " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'app/testpmd: fix build with " Xueming Li
                   ` (152 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Andrew Rybchenko, David Marchand,
	Timothy McDaniel, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/0999e13c7ac17186daac17054441838a79acbb98

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0999e13c7ac17186daac17054441838a79acbb98 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 19 Mar 2021 10:20:42 +0100
Subject: [PATCH] event/dlb: fix header includes for musl
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 29420808d05b4e17a52f860bc4d507d689a95efc ]

The header file fcntl.h should not be included from sys/ directory
as done in dlb drivers, it is an error with musl libc.

Fixes: 19980083fd57 ("event/dlb: add eventdev probe")
Fixes: 5433956d5185 ("event/dlb2: add eventdev probe")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
Acked-by: Timothy McDaniel <timothy.mcdaniel@intel.com>
---
 drivers/event/dlb/dlb.c         | 2 +-
 drivers/event/dlb/pf/dlb_pf.c   | 3 ++-
 drivers/event/dlb2/dlb2.c       | 2 +-
 drivers/event/dlb2/pf/dlb2_pf.c | 3 ++-
 4 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/event/dlb/dlb.c b/drivers/event/dlb/dlb.c
index e2d5d43da7..35f4777750 100644
--- a/drivers/event/dlb/dlb.c
+++ b/drivers/event/dlb/dlb.c
@@ -10,7 +10,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
-#include <sys/fcntl.h>
+#include <fcntl.h>
 #include <sys/mman.h>
 #include <unistd.h>
 
diff --git a/drivers/event/dlb/pf/dlb_pf.c b/drivers/event/dlb/pf/dlb_pf.c
index 3aeef6f91d..876c68e51d 100644
--- a/drivers/event/dlb/pf/dlb_pf.c
+++ b/drivers/event/dlb/pf/dlb_pf.c
@@ -6,12 +6,13 @@
 #include <stdbool.h>
 #include <stdio.h>
 #include <sys/mman.h>
-#include <sys/fcntl.h>
+#include <fcntl.h>
 #include <sys/time.h>
 #include <errno.h>
 #include <assert.h>
 #include <unistd.h>
 #include <string.h>
+
 #include <rte_debug.h>
 #include <rte_log.h>
 #include <rte_dev.h>
diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c
index 86724863f2..b0ace0e6a1 100644
--- a/drivers/event/dlb2/dlb2.c
+++ b/drivers/event/dlb2/dlb2.c
@@ -11,7 +11,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <sys/mman.h>
-#include <sys/fcntl.h>
+#include <fcntl.h>
 
 #include <rte_common.h>
 #include <rte_config.h>
diff --git a/drivers/event/dlb2/pf/dlb2_pf.c b/drivers/event/dlb2/pf/dlb2_pf.c
index 632c4e099f..eed789a38d 100644
--- a/drivers/event/dlb2/pf/dlb2_pf.c
+++ b/drivers/event/dlb2/pf/dlb2_pf.c
@@ -6,12 +6,13 @@
 #include <stdbool.h>
 #include <stdio.h>
 #include <sys/mman.h>
-#include <sys/fcntl.h>
+#include <fcntl.h>
 #include <sys/time.h>
 #include <errno.h>
 #include <assert.h>
 #include <unistd.h>
 #include <string.h>
+
 #include <rte_debug.h>
 #include <rte_log.h>
 #include <rte_dev.h>
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.607629400 +0800
+++ 0077-event-dlb-fix-header-includes-for-musl.patch	2021-05-10 23:59:26.430000000 +0800
@@ -1 +1 @@
-From 29420808d05b4e17a52f860bc4d507d689a95efc Mon Sep 17 00:00:00 2001
+From 0999e13c7ac17186daac17054441838a79acbb98 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 29420808d05b4e17a52f860bc4d507d689a95efc ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 1174ab3d2b..60084ced3b 100644
+index e2d5d43da7..35f4777750 100644
@@ -38 +40 @@
-index 2f7e30abbd..5445c2d57d 100644
+index 3aeef6f91d..876c68e51d 100644
@@ -57 +59 @@
-index b28ec58bfb..fb5ff012a4 100644
+index 86724863f2..b0ace0e6a1 100644
@@ -70 +72 @@
-index 1142da5b25..cfb22efe8a 100644
+index 632c4e099f..eed789a38d 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'app/testpmd: fix build with musl' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (74 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'event/dlb: fix header includes for musl' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'examples/bbdev: fix header include for " Xueming Li
                   ` (151 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Natanael Copa
  Cc: Luca Boccassi, Morten Brørup, Thomas Monjalon,
	Andrew Rybchenko, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/ba7c3d6befb03931531112f69105c880370f497e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ba7c3d6befb03931531112f69105c880370f497e Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 5 Nov 2020 22:17:09 +0100
Subject: [PATCH] app/testpmd: fix build with musl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 3529e8f3a5e62919c6528457c68f0c5c26cfdada ]

1/ Improve portability by avoiding use of non-standard 'uint'.
Use uint8_t for hash_key_len as rss_key_len is a uint8_t type.
This solves following build error when building with musl libc:
    app/test-pmd/testpmd.h:813:29: error: unknown type name 'uint'

2/ In musl libc, stdout is of type (FILE * const).
Because of the const qualifier, a dark magic cast
must be achieved through uintptr_t.

Fixes: 8205e241b2b0 ("app/testpmd: add missing type to RSS hash commands")
Fixes: e977e4199a8d ("app/testpmd: add commands to load/unload BPF filters")

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/bpf_cmd.c | 2 +-
 app/test-pmd/config.c  | 2 +-
 app/test-pmd/testpmd.h | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/app/test-pmd/bpf_cmd.c b/app/test-pmd/bpf_cmd.c
index 066619e115..6980291f07 100644
--- a/app/test-pmd/bpf_cmd.c
+++ b/app/test-pmd/bpf_cmd.c
@@ -20,7 +20,7 @@ static const struct rte_bpf_xsym bpf_xsym[] = {
 		.name = RTE_STR(stdout),
 		.type = RTE_BPF_XTYPE_VAR,
 		.var = {
-			.val = &stdout,
+			.val = (void *)(uintptr_t)&stdout,
 			.desc = {
 				.type = RTE_BPF_ARG_PTR,
 				.size = sizeof(stdout),
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 336d3e59b1..5f147ec711 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -2963,7 +2963,7 @@ port_rss_hash_conf_show(portid_t port_id, int show_rss_key)
 
 void
 port_rss_hash_key_update(portid_t port_id, char rss_type[], uint8_t *hash_key,
-			 uint hash_key_len)
+			 uint8_t hash_key_len)
 {
 	struct rte_eth_rss_conf rss_conf;
 	int diag;
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 2f8f5a92e4..1c276f4644 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -934,7 +934,7 @@ int set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate,
 
 void port_rss_hash_conf_show(portid_t port_id, int show_rss_key);
 void port_rss_hash_key_update(portid_t port_id, char rss_type[],
-			      uint8_t *hash_key, uint hash_key_len);
+			      uint8_t *hash_key, uint8_t hash_key_len);
 int rx_queue_id_is_invalid(queueid_t rxq_id);
 int tx_queue_id_is_invalid(queueid_t txq_id);
 void setup_gro(const char *onoff, portid_t port_id);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.633442500 +0800
+++ 0078-app-testpmd-fix-build-with-musl.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From 3529e8f3a5e62919c6528457c68f0c5c26cfdada Mon Sep 17 00:00:00 2001
+From ba7c3d6befb03931531112f69105c880370f497e Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 3529e8f3a5e62919c6528457c68f0c5c26cfdada ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -47 +49 @@
-index 4ce75a8e73..ef0b9784d0 100644
+index 336d3e59b1..5f147ec711 100644
@@ -50 +52 @@
-@@ -2674,7 +2674,7 @@ port_rss_hash_conf_show(portid_t port_id, int show_rss_key)
+@@ -2963,7 +2963,7 @@ port_rss_hash_conf_show(portid_t port_id, int show_rss_key)
@@ -60 +62 @@
-index af40859170..a87ccb0f0f 100644
+index 2f8f5a92e4..1c276f4644 100644
@@ -63 +65 @@
-@@ -936,7 +936,7 @@ int set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate,
+@@ -934,7 +934,7 @@ int set_vf_rate_limit(portid_t port_id, uint16_t vf, uint16_t rate,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'examples/bbdev: fix header include for musl' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (75 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'app/testpmd: fix build with " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'table: fix actions with different data size' " Xueming Li
                   ` (150 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Andrew Rybchenko, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/19bb5235f09feb00737f40d07ce50ab137085dad

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 19bb5235f09feb00737f40d07ce50ab137085dad Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Thu, 25 Feb 2021 09:43:35 +0100
Subject: [PATCH] examples/bbdev: fix header include for musl
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 960f28b2a3b39c143191bd3a5424245fc7dc4cf8 ]

The header file unistd.h should not be included from sys/ directory,
it is an error with musl libc.

Fixes: 1ffee690eaa1 ("examples/bbdev: add sample app")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 examples/bbdev_app/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c
index 2e170caf84..20cfd327fb 100644
--- a/examples/bbdev_app/main.c
+++ b/examples/bbdev_app/main.c
@@ -8,7 +8,7 @@
 #include <stdint.h>
 #include <inttypes.h>
 #include <sys/types.h>
-#include <sys/unistd.h>
+#include <unistd.h>
 #include <sys/queue.h>
 #include <stdarg.h>
 #include <ctype.h>
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.659445300 +0800
+++ 0079-examples-bbdev-fix-header-include-for-musl.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From 960f28b2a3b39c143191bd3a5424245fc7dc4cf8 Mon Sep 17 00:00:00 2001
+From 19bb5235f09feb00737f40d07ce50ab137085dad Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 960f28b2a3b39c143191bd3a5424245fc7dc4cf8 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'table: fix actions with different data size' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (76 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'examples/bbdev: fix header include for " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'examples/packet_ordering: fix port configuration' " Xueming Li
                   ` (149 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Cristian Dumitrescu; +Cc: Luca Boccassi, Churchill Khangar, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/67becbfe57c061ec63b785afdbb9bc5f593dffb5

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 67becbfe57c061ec63b785afdbb9bc5f593dffb5 Mon Sep 17 00:00:00 2001
From: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Date: Wed, 17 Mar 2021 11:42:07 +0000
Subject: [PATCH] table: fix actions with different data size
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 75a09af1b4171f14b15ea3c4bdf5595cb4c4bba5 ]

The table layer provisions an action_id and action_data_size data
bytes for each table key. This action_data_size is a maximal amount,
as some actions (depending on action_id) can require zero or less data
bytes than the maximal action_data_size. This fix allows for actions
with different data sizes to co-exist within the same table.

Fixes: d0a00966618b ("table: add exact match SWX table")

Signed-off-by: Churchill Khangar <churchill.khangar@intel.com>
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 lib/librte_table/rte_swx_table_em.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/lib/librte_table/rte_swx_table_em.c b/lib/librte_table/rte_swx_table_em.c
index 5f67223060..788e25f6b9 100644
--- a/lib/librte_table/rte_swx_table_em.c
+++ b/lib/librte_table/rte_swx_table_em.c
@@ -337,7 +337,7 @@ bkt_key_install(struct table *t,
 	/* Key data. */
 	bkt_data = table_key_data(t, bkt_key_id);
 	bkt_data[0] = input->action_id;
-	if (t->params.action_data_size)
+	if (t->params.action_data_size && input->action_data)
 		memcpy(&bkt_data[1],
 		       input->action_data,
 		       t->params.action_data_size);
@@ -358,7 +358,7 @@ bkt_key_data_update(struct table *t,
 	/* Key data. */
 	bkt_data = table_key_data(t, bkt_key_id);
 	bkt_data[0] = input->action_id;
-	if (t->params.action_data_size)
+	if (t->params.action_data_size && input->action_data)
 		memcpy(&bkt_data[1],
 		       input->action_data,
 		       t->params.action_data_size);
@@ -485,8 +485,6 @@ table_add(void *table, struct rte_swx_table_entry *entry)
 	CHECK(t, EINVAL);
 	CHECK(entry, EINVAL);
 	CHECK(entry->key, EINVAL);
-	CHECK((!t->params.action_data_size && !entry->action_data) ||
-	      (t->params.action_data_size && entry->action_data), EINVAL);
 
 	input_sig = hash(entry->key, t->key_mask, t->key_size, 0);
 	bkt_id = input_sig & (t->n_buckets - 1);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.684211100 +0800
+++ 0080-table-fix-actions-with-different-data-size.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From 75a09af1b4171f14b15ea3c4bdf5595cb4c4bba5 Mon Sep 17 00:00:00 2001
+From 67becbfe57c061ec63b785afdbb9bc5f593dffb5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 75a09af1b4171f14b15ea3c4bdf5595cb4c4bba5 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'examples/packet_ordering: fix port configuration' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (77 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'table: fix actions with different data size' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'pipeline: fix instruction translation' " Xueming Li
                   ` (148 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Dapeng Yu; +Cc: Luca Boccassi, Reshma Pattan, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/a8c9a82b541be6ef71e74bf308a9534946cd68e8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a8c9a82b541be6ef71e74bf308a9534946cd68e8 Mon Sep 17 00:00:00 2001
From: Dapeng Yu <dapengx.yu@intel.com>
Date: Fri, 19 Mar 2021 15:11:18 +0800
Subject: [PATCH] examples/packet_ordering: fix port configuration
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c99f115bbd9d56630fc5a8d404443e0761684832 ]

A global ethernet port configuration is assigned to local variable
because in this way the local variable may be updated as required. But
this local variable is not used as input of rte_eth_dev_configure() in
original implementation, and cause that fast mbuf free feature cannot
be enabled on port.

This patch use this local variable as input of rte_eth_dev_configure().

Fixes: 6833f919f56b ("examples/packet_ordering: convert to new ethdev offloads API")

Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
---
 examples/packet_ordering/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c
index 4bea1982d5..963b11d6de 100644
--- a/examples/packet_ordering/main.c
+++ b/examples/packet_ordering/main.c
@@ -290,7 +290,7 @@ configure_eth_port(uint16_t port_id)
 	if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
 		port_conf.txmode.offloads |=
 			DEV_TX_OFFLOAD_MBUF_FAST_FREE;
-	ret = rte_eth_dev_configure(port_id, rxRings, txRings, &port_conf_default);
+	ret = rte_eth_dev_configure(port_id, rxRings, txRings, &port_conf);
 	if (ret != 0)
 		return ret;
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.706922800 +0800
+++ 0081-examples-packet_ordering-fix-port-configuration.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From c99f115bbd9d56630fc5a8d404443e0761684832 Mon Sep 17 00:00:00 2001
+From a8c9a82b541be6ef71e74bf308a9534946cd68e8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c99f115bbd9d56630fc5a8d404443e0761684832 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index ff670747fd..bcbda05f5e 100644
+index 4bea1982d5..963b11d6de 100644
@@ -27 +29 @@
-@@ -297,7 +297,7 @@ configure_eth_port(uint16_t port_id)
+@@ -290,7 +290,7 @@ configure_eth_port(uint16_t port_id)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'pipeline: fix instruction translation' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (78 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'examples/packet_ordering: fix port configuration' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'test: fix autotest handling of skipped tests' " Xueming Li
                   ` (147 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Cristian Dumitrescu; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7c0c4418262554b90f8b5a8ce0ea034703f19a39

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7c0c4418262554b90f8b5a8ce0ea034703f19a39 Mon Sep 17 00:00:00 2001
From: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Date: Wed, 24 Mar 2021 11:36:03 +0000
Subject: [PATCH] pipeline: fix instruction translation
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit d366a48f467a973c7453ef1729e97a9d46a380ef ]

The SWX pipeline instructions work with operands of different types:
header fields (h.header.field), packet meta-data (m.field), extern
object mailbox field (e.obj.field), extern function (f.field), action
data read from table entries (t.field), or immediate values; hence the
HMEFTI acronym.

For some pipeline instructions (add/sub, srl/shr, jmplt/jmpgt), only
the H, M and I cases were handled, while the E, F and T cases were
disregarded. This is what we fix here.

Fixes: baf7999303d0 ("pipeline: introduce SWX add instruction")
Fixes: c88c62943818 ("pipeline: introduce SWX subtract instruction")
Fixes: b09ba6d0a3c2 ("pipeline: introduce SWX SHL instruction")
Fixes: e0f51638b715 ("pipeline: introduce SWX SHR instruction")
Fixes: b3947e25bed4 ("pipeline: introduce SWX jump and return instructions")

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 lib/librte_pipeline/rte_swx_pipeline.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/lib/librte_pipeline/rte_swx_pipeline.c b/lib/librte_pipeline/rte_swx_pipeline.c
index eaaed7a0a9..bc619ca533 100644
--- a/lib/librte_pipeline/rte_swx_pipeline.c
+++ b/lib/librte_pipeline/rte_swx_pipeline.c
@@ -3475,9 +3475,9 @@ instr_alu_add_translate(struct rte_swx_pipeline *p,
 	fsrc = struct_field_parse(p, action, src, &src_struct_id);
 	if (fsrc) {
 		instr->type = INSTR_ALU_ADD;
-		if (dst[0] == 'h' && src[0] == 'm')
+		if (dst[0] == 'h' && src[0] != 'h')
 			instr->type = INSTR_ALU_ADD_HM;
-		if (dst[0] == 'm' && src[0] == 'h')
+		if (dst[0] != 'h' && src[0] == 'h')
 			instr->type = INSTR_ALU_ADD_MH;
 		if (dst[0] == 'h' && src[0] == 'h')
 			instr->type = INSTR_ALU_ADD_HH;
@@ -3528,9 +3528,9 @@ instr_alu_sub_translate(struct rte_swx_pipeline *p,
 	fsrc = struct_field_parse(p, action, src, &src_struct_id);
 	if (fsrc) {
 		instr->type = INSTR_ALU_SUB;
-		if (dst[0] == 'h' && src[0] == 'm')
+		if (dst[0] == 'h' && src[0] != 'h')
 			instr->type = INSTR_ALU_SUB_HM;
-		if (dst[0] == 'm' && src[0] == 'h')
+		if (dst[0] != 'h' && src[0] == 'h')
 			instr->type = INSTR_ALU_SUB_MH;
 		if (dst[0] == 'h' && src[0] == 'h')
 			instr->type = INSTR_ALU_SUB_HH;
@@ -3658,9 +3658,9 @@ instr_alu_shl_translate(struct rte_swx_pipeline *p,
 	fsrc = struct_field_parse(p, action, src, &src_struct_id);
 	if (fsrc) {
 		instr->type = INSTR_ALU_SHL;
-		if (dst[0] == 'h' && src[0] == 'm')
+		if (dst[0] == 'h' && src[0] != 'h')
 			instr->type = INSTR_ALU_SHL_HM;
-		if (dst[0] == 'm' && src[0] == 'h')
+		if (dst[0] != 'h' && src[0] == 'h')
 			instr->type = INSTR_ALU_SHL_MH;
 		if (dst[0] == 'h' && src[0] == 'h')
 			instr->type = INSTR_ALU_SHL_HH;
@@ -3711,9 +3711,9 @@ instr_alu_shr_translate(struct rte_swx_pipeline *p,
 	fsrc = struct_field_parse(p, action, src, &src_struct_id);
 	if (fsrc) {
 		instr->type = INSTR_ALU_SHR;
-		if (dst[0] == 'h' && src[0] == 'm')
+		if (dst[0] == 'h' && src[0] != 'h')
 			instr->type = INSTR_ALU_SHR_HM;
-		if (dst[0] == 'm' && src[0] == 'h')
+		if (dst[0] != 'h' && src[0] == 'h')
 			instr->type = INSTR_ALU_SHR_MH;
 		if (dst[0] == 'h' && src[0] == 'h')
 			instr->type = INSTR_ALU_SHR_HH;
@@ -4906,9 +4906,9 @@ instr_jmp_lt_translate(struct rte_swx_pipeline *p,
 	fb = struct_field_parse(p, action, b, &b_struct_id);
 	if (fb) {
 		instr->type = INSTR_JMP_LT;
-		if (a[0] == 'h' && b[0] == 'm')
+		if (a[0] == 'h' && b[0] != 'h')
 			instr->type = INSTR_JMP_LT_HM;
-		if (a[0] == 'm' && b[0] == 'h')
+		if (a[0] != 'h' && b[0] == 'h')
 			instr->type = INSTR_JMP_LT_MH;
 		if (a[0] == 'h' && b[0] == 'h')
 			instr->type = INSTR_JMP_LT_HH;
@@ -4963,9 +4963,9 @@ instr_jmp_gt_translate(struct rte_swx_pipeline *p,
 	fb = struct_field_parse(p, action, b, &b_struct_id);
 	if (fb) {
 		instr->type = INSTR_JMP_GT;
-		if (a[0] == 'h' && b[0] == 'm')
+		if (a[0] == 'h' && b[0] != 'h')
 			instr->type = INSTR_JMP_GT_HM;
-		if (a[0] == 'm' && b[0] == 'h')
+		if (a[0] != 'h' && b[0] == 'h')
 			instr->type = INSTR_JMP_GT_MH;
 		if (a[0] == 'h' && b[0] == 'h')
 			instr->type = INSTR_JMP_GT_HH;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.729110900 +0800
+++ 0082-pipeline-fix-instruction-translation.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From d366a48f467a973c7453ef1729e97a9d46a380ef Mon Sep 17 00:00:00 2001
+From 7c0c4418262554b90f8b5a8ce0ea034703f19a39 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit d366a48f467a973c7453ef1729e97a9d46a380ef ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'test: fix autotest handling of skipped tests' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (79 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'pipeline: fix instruction translation' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ark: update packet director initial state' " Xueming Li
                   ` (146 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Thinh Tran; +Cc: Luca Boccassi, David Christensen, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/d1b41662e0674d590f8170e4cd27d1820284a075

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d1b41662e0674d590f8170e4cd27d1820284a075 Mon Sep 17 00:00:00 2001
From: Thinh Tran <thinhtr@linux.vnet.ibm.com>
Date: Mon, 2 Mar 2020 15:41:32 -0500
Subject: [PATCH] test: fix autotest handling of skipped tests
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c8c3cfd699a117cf8c070059a606ea12ab030cbb ]

- When running the default configuration of autotest of the make test
  it'd take 900 seconds (15 minutes) for the script TIMEOUT and marks
  Failed for a specific device test that is not supported on the
  system under test.
- Adding the checking for those tests, print out as "Skipped [Not Run]"
  quickly return and continue for next test

Fixes: da0af48a67a5 ("test: add skipped return result")

Signed-off-by: Thinh Tran <thinhtr@linux.vnet.ibm.com>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
---
 app/test/autotest_test_funcs.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/app/test/autotest_test_funcs.py b/app/test/autotest_test_funcs.py
index 0811066cb0..6c717bddb4 100644
--- a/app/test/autotest_test_funcs.py
+++ b/app/test/autotest_test_funcs.py
@@ -13,13 +13,16 @@ import pexpect
 def default_autotest(child, test_name):
     child.sendline(test_name)
     result = child.expect(["Test OK", "Test Failed",
-                           "Command not found", pexpect.TIMEOUT], timeout=900)
+                           "Command not found", pexpect.TIMEOUT,
+                           "Test Skipped"], timeout=900)
     if result == 1:
         return -1, "Fail"
     elif result == 2:
         return -1, "Fail [Not found]"
     elif result == 3:
         return -1, "Fail [Timeout]"
+    elif result == 4:
+        return 0, "Skipped [Not Run]"
     return 0, "Success"
 
 # autotest used to run dump commands
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.755222300 +0800
+++ 0083-test-fix-autotest-handling-of-skipped-tests.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From c8c3cfd699a117cf8c070059a606ea12ab030cbb Mon Sep 17 00:00:00 2001
+From d1b41662e0674d590f8170e4cd27d1820284a075 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c8c3cfd699a117cf8c070059a606ea12ab030cbb ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ark: update packet director initial state' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (80 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'test: fix autotest handling of skipped tests' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ark: refactor Rx buffer recovery' " Xueming Li
                   ` (145 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Ed Czeck; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/f6beb20cd91f62f127c71ba5499dfaacc0ad0027

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f6beb20cd91f62f127c71ba5499dfaacc0ad0027 Mon Sep 17 00:00:00 2001
From: Ed Czeck <ed.czeck@atomicrules.com>
Date: Thu, 18 Mar 2021 13:36:55 -0400
Subject: [PATCH] net/ark: update packet director initial state
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 3b4f34f6b6071524a3de6a1db316eca65b4804ca ]

Fixes: b33ccdb17f55 ("net/ark: provide API for hardware modules MPU RQP and pktdir")

Signed-off-by: Ed Czeck <ed.czeck@atomicrules.com>
---
 drivers/net/ark/ark_ethdev.c | 1 +
 drivers/net/ark/ark_pktdir.c | 2 +-
 drivers/net/ark/ark_pktdir.h | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
index a658993512..0156eeb66e 100644
--- a/drivers/net/ark/ark_ethdev.c
+++ b/drivers/net/ark/ark_ethdev.c
@@ -321,6 +321,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
 	ark->rqpacing =
 		(struct ark_rqpace_t *)(ark->bar0 + ARK_RCPACING_BASE);
 	ark->started = 0;
+	ark->pkt_dir_v = ARK_PKT_DIR_INIT_VAL;
 
 	ARK_PMD_LOG(INFO, "Sys Ctrl Const = 0x%x  HW Commit_ID: %08x\n",
 		      ark->sysctrl.t32[4],
diff --git a/drivers/net/ark/ark_pktdir.c b/drivers/net/ark/ark_pktdir.c
index 25e1218310..dbfd2924bd 100644
--- a/drivers/net/ark/ark_pktdir.c
+++ b/drivers/net/ark/ark_pktdir.c
@@ -22,7 +22,7 @@ ark_pktdir_init(void *base)
 		return inst;
 	}
 	inst->regs = (struct ark_pkt_dir_regs *)base;
-	inst->regs->ctrl = 0x00110110;	/* POR state */
+	inst->regs->ctrl = ARK_PKT_DIR_INIT_VAL; /* POR state */
 	return inst;
 }
 
diff --git a/drivers/net/ark/ark_pktdir.h b/drivers/net/ark/ark_pktdir.h
index 4afd128f95..b5577cebb3 100644
--- a/drivers/net/ark/ark_pktdir.h
+++ b/drivers/net/ark/ark_pktdir.h
@@ -7,7 +7,7 @@
 
 #include <stdint.h>
 
-#define ARK_PKTDIR_BASE_ADR  0xa0000
+#define ARK_PKT_DIR_INIT_VAL 0x0110
 
 typedef void *ark_pkt_dir_t;
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.777676000 +0800
+++ 0084-net-ark-update-packet-director-initial-state.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From 3b4f34f6b6071524a3de6a1db316eca65b4804ca Mon Sep 17 00:00:00 2001
+From f6beb20cd91f62f127c71ba5499dfaacc0ad0027 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 3b4f34f6b6071524a3de6a1db316eca65b4804ca ]
@@ -7 +9,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
-index ef650a4658..477e1de02d 100644
+index a658993512..0156eeb66e 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ark: refactor Rx buffer recovery' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (81 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ark: update packet director initial state' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'common/sfc_efx: remove GENEVE from supported tunnels' " Xueming Li
                   ` (144 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Ed Czeck; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/b22415b70a6c93f459ec48c25f7384da71e380fd

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b22415b70a6c93f459ec48c25f7384da71e380fd Mon Sep 17 00:00:00 2001
From: Ed Czeck <ed.czeck@atomicrules.com>
Date: Thu, 18 Mar 2021 13:36:56 -0400
Subject: [PATCH] net/ark: refactor Rx buffer recovery
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 31d7dded033fc061950312253919237dde07ac63 ]

Allocate mbufs for Rx path in bulk of at least 64 buffers
to improve performance. Allow recovery even without
a Rx operation to support lack of buffers in pool.

Fixes: be410a861598 ("net/ark: add recovery for lack of mbufs")

Signed-off-by: Ed Czeck <ed.czeck@atomicrules.com>
---
 drivers/net/ark/ark_ethdev_rx.c | 49 ++++++++-------------------------
 1 file changed, 11 insertions(+), 38 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c
index d29d3db783..8e55b851a2 100644
--- a/drivers/net/ark/ark_ethdev_rx.c
+++ b/drivers/net/ark/ark_ethdev_rx.c
@@ -26,9 +26,6 @@ static uint32_t eth_ark_rx_jumbo(struct ark_rx_queue *queue,
 				 struct rte_mbuf *mbuf0,
 				 uint32_t cons_index);
 static inline int eth_ark_rx_seed_mbufs(struct ark_rx_queue *queue);
-static int eth_ark_rx_seed_recovery(struct ark_rx_queue *queue,
-				    uint32_t *pnb,
-				    struct rte_mbuf **mbufs);
 
 /* ************************************************************************* */
 struct ark_rx_queue {
@@ -54,7 +51,7 @@ struct ark_rx_queue {
 	/* The queue Index is used within the dpdk device structures */
 	uint16_t queue_index;
 
-	uint32_t last_cons;
+	uint32_t unused;
 
 	/* separate cache line */
 	/* second cache line - fields only used in slow path */
@@ -105,9 +102,8 @@ static inline void
 eth_ark_rx_update_cons_index(struct ark_rx_queue *queue, uint32_t cons_index)
 {
 	queue->cons_index = cons_index;
-	eth_ark_rx_seed_mbufs(queue);
-	if (((cons_index - queue->last_cons) >= 64U)) {
-		queue->last_cons = cons_index;
+	if ((cons_index + queue->queue_size - queue->seed_index) >= 64U) {
+		eth_ark_rx_seed_mbufs(queue);
 		ark_mpu_set_producer(queue->mpu, queue->seed_index);
 	}
 }
@@ -321,9 +317,7 @@ eth_ark_recv_pkts(void *rx_queue,
 			break;
 	}
 
-	if (unlikely(nb != 0))
-		/* report next free to FPGA */
-		eth_ark_rx_update_cons_index(queue, cons_index);
+	eth_ark_rx_update_cons_index(queue, cons_index);
 
 	return nb;
 }
@@ -458,11 +452,13 @@ eth_ark_rx_seed_mbufs(struct ark_rx_queue *queue)
 	int status = rte_pktmbuf_alloc_bulk(queue->mb_pool, mbufs, nb);
 
 	if (unlikely(status != 0)) {
-		/* Try to recover from lack of mbufs in pool */
-		status = eth_ark_rx_seed_recovery(queue, &nb, mbufs);
-		if (unlikely(status != 0)) {
-			return -1;
-		}
+		ARK_PMD_LOG(NOTICE,
+			    "Could not allocate %u mbufs from pool"
+			    " for RX queue %u;"
+			    " %u free buffers remaining in queue\n",
+			    nb, queue->queue_index,
+			    queue->seed_index - queue->cons_index);
+		return -1;
 	}
 
 	if (ARK_DEBUG_CORE) {		/* DEBUG */
@@ -511,29 +507,6 @@ eth_ark_rx_seed_mbufs(struct ark_rx_queue *queue)
 	return 0;
 }
 
-int
-eth_ark_rx_seed_recovery(struct ark_rx_queue *queue,
-			 uint32_t *pnb,
-			 struct rte_mbuf **mbufs)
-{
-	int status = -1;
-
-	/* Ignore small allocation failures */
-	if (*pnb <= 64)
-		return -1;
-
-	*pnb = 64U;
-	status = rte_pktmbuf_alloc_bulk(queue->mb_pool, mbufs, *pnb);
-	if (status != 0) {
-		ARK_PMD_LOG(NOTICE,
-			    "ARK: Could not allocate %u mbufs from pool for RX queue %u;"
-			    " %u free buffers remaining in queue\n",
-			    *pnb, queue->queue_index,
-			    queue->seed_index - queue->cons_index);
-	}
-	return status;
-}
-
 void
 eth_ark_rx_dump_queue(struct rte_eth_dev *dev, uint16_t queue_id,
 		      const char *msg)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.800876700 +0800
+++ 0085-net-ark-refactor-Rx-buffer-recovery.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From 31d7dded033fc061950312253919237dde07ac63 Mon Sep 17 00:00:00 2001
+From b22415b70a6c93f459ec48c25f7384da71e380fd Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 31d7dded033fc061950312253919237dde07ac63 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'common/sfc_efx: remove GENEVE from supported tunnels' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (82 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ark: refactor Rx buffer recovery' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'app/testpmd: fix NVGRE encap configuration' " Xueming Li
                   ` (143 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Andrew Rybchenko; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/516cebd9dd83ebc6ec2a70b97d8859cdd1683cc2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 516cebd9dd83ebc6ec2a70b97d8859cdd1683cc2 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Date: Thu, 11 Mar 2021 15:25:39 +0300
Subject: [PATCH] common/sfc_efx: remove GENEVE from supported tunnels
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit db4a78b53f1f4969c52b774915466f65bfa01139 ]

The first GA of the SN1022 does not support Geneve.

Fixes: d874d2a149ed ("common/sfc_efx/base: support UDP tunnel operations for EF100")

Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 drivers/common/sfc_efx/base/rhead_nic.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/common/sfc_efx/base/rhead_nic.c b/drivers/common/sfc_efx/base/rhead_nic.c
index 92bc6fdfae..27ce1d6674 100644
--- a/drivers/common/sfc_efx/base/rhead_nic.c
+++ b/drivers/common/sfc_efx/base/rhead_nic.c
@@ -28,7 +28,6 @@ rhead_board_cfg(
 	 */
 	encp->enc_tunnel_encapsulations_supported =
 	    (1u << EFX_TUNNEL_PROTOCOL_VXLAN) |
-	    (1u << EFX_TUNNEL_PROTOCOL_GENEVE) |
 	    (1u << EFX_TUNNEL_PROTOCOL_NVGRE);
 
 	/*
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.823911900 +0800
+++ 0086-common-sfc_efx-remove-GENEVE-from-supported-tunnels.patch	2021-05-10 23:59:26.440000000 +0800
@@ -1 +1 @@
-From db4a78b53f1f4969c52b774915466f65bfa01139 Mon Sep 17 00:00:00 2001
+From 516cebd9dd83ebc6ec2a70b97d8859cdd1683cc2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit db4a78b53f1f4969c52b774915466f65bfa01139 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
-index ce087debd7..f2c18c1dcc 100644
+index 92bc6fdfae..27ce1d6674 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'app/testpmd: fix NVGRE encap configuration' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (83 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'common/sfc_efx: remove GENEVE from supported tunnels' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix Tx timestamp init' " Xueming Li
                   ` (142 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Luca Boccassi, Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/763cb5c708a1ccbae67442ddb6b18e3768204947

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 763cb5c708a1ccbae67442ddb6b18e3768204947 Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Tue, 16 Mar 2021 06:18:27 +0200
Subject: [PATCH] app/testpmd: fix NVGRE encap configuration
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 9b0da816bdec98c0d6c5d17ccdd337bdbafc3f75 ]

For NVGRE protocol, the default value of 'c_k_s_rsvd0_ver'
must be 0x2000, and protocol type must be 0x6558 in the NVGRE
header.

This patch updates these two configurations while parsing the nvgre
encap.

Fixes: dcd962fc6b4e ("app/testpmd: add NVGRE encap/decap")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 app/test-pmd/cmdline_flow.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index de80924e7c..c67ac71505 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -5203,6 +5203,8 @@ parse_vc_action_nvgre_encap(struct context *ctx, const struct token *token,
 		       .src_addr = nvgre_encap_conf.ipv4_src,
 		       .dst_addr = nvgre_encap_conf.ipv4_dst,
 		},
+		.item_nvgre.c_k_s_rsvd0_ver = RTE_BE16(0x2000),
+		.item_nvgre.protocol = RTE_BE16(RTE_ETHER_TYPE_TEB),
 		.item_nvgre.flow_id = 0,
 	};
 	memcpy(action_nvgre_encap_data->item_eth.dst.addr_bytes,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.846247000 +0800
+++ 0087-app-testpmd-fix-NVGRE-encap-configuration.patch	2021-05-10 23:59:26.450000000 +0800
@@ -1 +1 @@
-From 9b0da816bdec98c0d6c5d17ccdd337bdbafc3f75 Mon Sep 17 00:00:00 2001
+From 763cb5c708a1ccbae67442ddb6b18e3768204947 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 9b0da816bdec98c0d6c5d17ccdd337bdbafc3f75 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 49d9f9c043..2c40c6996e 100644
+index de80924e7c..c67ac71505 100644
@@ -26 +28 @@
-@@ -5439,6 +5439,8 @@ parse_vc_action_nvgre_encap(struct context *ctx, const struct token *token,
+@@ -5203,6 +5203,8 @@ parse_vc_action_nvgre_encap(struct context *ctx, const struct token *token,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix Tx timestamp init' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (84 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'app/testpmd: fix NVGRE encap configuration' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix PCI write check' " Xueming Li
                   ` (141 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Somnath Kotur
  Cc: Luca Boccassi, Kalesh AP, Lance Richardson, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/2b68ea0468f2d983ebdd9563b2fb846ae343c5c0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2b68ea0468f2d983ebdd9563b2fb846ae343c5c0 Mon Sep 17 00:00:00 2001
From: Somnath Kotur <somnath.kotur@broadcom.com>
Date: Tue, 16 Mar 2021 11:10:48 +0530
Subject: [PATCH] net/bnxt: fix Tx timestamp init
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit aa764bae8d66856caad976c5e7d4b415c3158179 ]

Fix to read the sequence ID register to get Tx timestamp.
Reading the sequence ID register is necessary for the HW FIFO to
advance and thereby get the correct value of the timestamp on Tx side.
This patch fixes that.

Fixes: b11cceb83a34 ("net/bnxt: support timesync")

Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 9252352416..780bbe72da 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3176,6 +3176,7 @@ static int bnxt_get_tx_ts(struct bnxt *bp, uint64_t *ts)
 				ptp->tx_mapped_regs[BNXT_PTP_TX_TS_L]));
 	*ts |= (uint64_t)rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 +
 				ptp->tx_mapped_regs[BNXT_PTP_TX_TS_H])) << 32;
+	rte_read32((uint8_t *)bp->bar0 + ptp->tx_mapped_regs[BNXT_PTP_TX_SEQ]);
 
 	return 0;
 }
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.874008500 +0800
+++ 0088-net-bnxt-fix-Tx-timestamp-init.patch	2021-05-10 23:59:26.450000000 +0800
@@ -1 +1 @@
-From aa764bae8d66856caad976c5e7d4b415c3158179 Mon Sep 17 00:00:00 2001
+From 2b68ea0468f2d983ebdd9563b2fb846ae343c5c0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit aa764bae8d66856caad976c5e7d4b415c3158179 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index f1dd40591f..57a409c0b7 100644
+index 9252352416..780bbe72da 100644
@@ -26 +28 @@
-@@ -3377,6 +3377,7 @@ static int bnxt_get_tx_ts(struct bnxt *bp, uint64_t *ts)
+@@ -3176,6 +3176,7 @@ static int bnxt_get_tx_ts(struct bnxt *bp, uint64_t *ts)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix PCI write check' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (85 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix Tx timestamp init' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix RSS context cleanup' " Xueming Li
                   ` (140 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Somnath Kotur, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/832c6464ce64a23d13031893868b46a9e4424590

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 832c6464ce64a23d13031893868b46a9e4424590 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Tue, 16 Mar 2021 11:11:25 +0530
Subject: [PATCH] net/bnxt: fix PCI write check
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit fcf953791c5c72a22741969071265b74d647c08f ]

CID 363716 (#1 of 1): Unchecked return value (CHECKED_RETURN)
check_return: Calling rte_pci_write_config without checking
return value (as is done elsewhere 46 out of 49 times).

Coverity issue: 363716
Fixes: be14720def9c ("net/bnxt: support FW reset")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 780bbe72da..f0de380271 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3656,13 +3656,19 @@ static void bnxt_write_fw_reset_reg(struct bnxt *bp, uint32_t index)
 	uint32_t val = info->reset_reg_val[index];
 	uint32_t reg = info->reset_reg[index];
 	uint32_t type, offset;
+	int ret;
 
 	type = BNXT_FW_STATUS_REG_TYPE(reg);
 	offset = BNXT_FW_STATUS_REG_OFF(reg);
 
 	switch (type) {
 	case BNXT_FW_STATUS_REG_TYPE_CFG:
-		rte_pci_write_config(bp->pdev, &val, sizeof(val), offset);
+		ret = rte_pci_write_config(bp->pdev, &val, sizeof(val), offset);
+		if (ret < 0) {
+			PMD_DRV_LOG(ERR, "Failed to write %#x at PCI offset %#x",
+				    val, offset);
+			return;
+		}
 		break;
 	case BNXT_FW_STATUS_REG_TYPE_GRC:
 		offset = bnxt_map_reset_regs(bp, offset);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.900942400 +0800
+++ 0089-net-bnxt-fix-PCI-write-check.patch	2021-05-10 23:59:26.450000000 +0800
@@ -1 +1 @@
-From fcf953791c5c72a22741969071265b74d647c08f Mon Sep 17 00:00:00 2001
+From 832c6464ce64a23d13031893868b46a9e4424590 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit fcf953791c5c72a22741969071265b74d647c08f ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 57a409c0b7..1997783a7d 100644
+index 780bbe72da..f0de380271 100644
@@ -24 +26 @@
-@@ -3861,13 +3861,19 @@ static void bnxt_write_fw_reset_reg(struct bnxt *bp, uint32_t index)
+@@ -3656,13 +3656,19 @@ static void bnxt_write_fw_reset_reg(struct bnxt *bp, uint32_t index)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix RSS context cleanup' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (86 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix PCI write check' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix link state operations' " Xueming Li
                   ` (139 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Ajit Khaparde; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/88f2faa23cb3c3fd054f9b283eae65b6e2f98ee0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 88f2faa23cb3c3fd054f9b283eae65b6e2f98ee0 Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: Mon, 15 Mar 2021 22:42:40 -0700
Subject: [PATCH] net/bnxt: fix RSS context cleanup
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 670ab553841b2f2bbf59667465855b0869eea86b ]

The PMD is allocating an extra RSS context with each port start.
But it is freeing only one RSS context during port stop. So at some point
we run out of RSS contexts when we do multiple port stop/start sequences.
bnxt_hwrm_vnic_ctx_alloc() is called by bnxt_setup_one_vnic(), but
bnxt_hwrm_vnic_ctx_free() is not called in the corresponding
bnxt_free_one_vnic().

Fix this by calling bnxt_hwrm_vnic_ctx_free() in bnxt_free_one_vnic().

Fixes: 7fe5668d2ea3 ("net/bnxt: support VLAN filter and strip")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index f0de380271..86c36e46d9 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -2425,6 +2425,10 @@ static int bnxt_free_one_vnic(struct bnxt *bp, uint16_t vnic_id)
 	}
 	bnxt_del_dflt_mac_filter(bp, vnic);
 
+	rc = bnxt_hwrm_vnic_ctx_free(bp, vnic);
+	if (rc)
+		return rc;
+
 	rc = bnxt_hwrm_vnic_free(bp, vnic);
 	if (rc)
 		return rc;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.927055800 +0800
+++ 0090-net-bnxt-fix-RSS-context-cleanup.patch	2021-05-10 23:59:26.450000000 +0800
@@ -1 +1 @@
-From 670ab553841b2f2bbf59667465855b0869eea86b Mon Sep 17 00:00:00 2001
+From 88f2faa23cb3c3fd054f9b283eae65b6e2f98ee0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 670ab553841b2f2bbf59667465855b0869eea86b ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 1997783a7d..ff92f999db 100644
+index f0de380271..86c36e46d9 100644
@@ -27 +29 @@
-@@ -2531,6 +2531,10 @@ static int bnxt_free_one_vnic(struct bnxt *bp, uint16_t vnic_id)
+@@ -2425,6 +2425,10 @@ static int bnxt_free_one_vnic(struct bnxt *bp, uint16_t vnic_id)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix link state operations' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (87 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix RSS context cleanup' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix timesync when PTP is not supported' " Xueming Li
                   ` (138 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Somnath Kotur, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/23f07e5fdcd49a5c46124cc840de4eca6586a661

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 23f07e5fdcd49a5c46124cc840de4eca6586a661 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Thu, 18 Mar 2021 15:05:22 +0530
Subject: [PATCH] net/bnxt: fix link state operations
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 586d9da38aaa19bfe2e804c4038c3d0ec0a3ef99 ]

VFs does not have the privilege to change link configuration.
But the driver silently returns success to these ethdev callbacks
without actually issuing the HWRM command to bring the link up/down.

Fixes: 5c206086feaa ("net/bnxt: add link state operations")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 86c36e46d9..d70e37ca60 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -1261,6 +1261,9 @@ static int bnxt_dev_set_link_up_op(struct rte_eth_dev *eth_dev)
 	struct bnxt *bp = eth_dev->data->dev_private;
 	int rc = 0;
 
+	if (!BNXT_SINGLE_PF(bp))
+		return -ENOTSUP;
+
 	if (!bp->link_info->link_up)
 		rc = bnxt_set_hwrm_link_config(bp, true);
 	if (!rc)
@@ -1274,6 +1277,9 @@ static int bnxt_dev_set_link_down_op(struct rte_eth_dev *eth_dev)
 {
 	struct bnxt *bp = eth_dev->data->dev_private;
 
+	if (!BNXT_SINGLE_PF(bp))
+		return -ENOTSUP;
+
 	eth_dev->data->dev_link.link_status = 0;
 	bnxt_set_hwrm_link_config(bp, false);
 	bp->link_info->link_up = 0;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.952326300 +0800
+++ 0091-net-bnxt-fix-link-state-operations.patch	2021-05-10 23:59:26.450000000 +0800
@@ -1 +1 @@
-From 586d9da38aaa19bfe2e804c4038c3d0ec0a3ef99 Mon Sep 17 00:00:00 2001
+From 23f07e5fdcd49a5c46124cc840de4eca6586a661 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 586d9da38aaa19bfe2e804c4038c3d0ec0a3ef99 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index ff92f999db..4bdc8223d3 100644
+index 86c36e46d9..d70e37ca60 100644
@@ -24 +26 @@
-@@ -1268,6 +1268,9 @@ static int bnxt_dev_set_link_up_op(struct rte_eth_dev *eth_dev)
+@@ -1261,6 +1261,9 @@ static int bnxt_dev_set_link_up_op(struct rte_eth_dev *eth_dev)
@@ -34 +36 @@
-@@ -1281,6 +1284,9 @@ static int bnxt_dev_set_link_down_op(struct rte_eth_dev *eth_dev)
+@@ -1274,6 +1277,9 @@ static int bnxt_dev_set_link_down_op(struct rte_eth_dev *eth_dev)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix timesync when PTP is not supported' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (88 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix link state operations' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix Rx buffer posting' " Xueming Li
                   ` (137 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Luca Boccassi, Ajit Khaparde, Somnath Kotur, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/6260a81282190cf7e019ada470ea062a321f302c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6260a81282190cf7e019ada470ea062a321f302c Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Thu, 18 Mar 2021 15:05:23 +0530
Subject: [PATCH] net/bnxt: fix timesync when PTP is not supported
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit ab15dd5a1c4d563e80b10e42e39c4d2f010fa389 ]

Fixed to return error when PTP support is not supported on the port.
Also, removed an unnecessary check inside bnxt_get_rx_ts().

Fixes: b11cceb83a34 ("net/bnxt: support timesync")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index d70e37ca60..b719cd74c4 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3198,9 +3198,6 @@ static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t *ts)
 	uint16_t port_id;
 	uint32_t fifo;
 
-	if (!ptp)
-		return -ENODEV;
-
 	fifo = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 +
 				ptp->rx_mapped_regs[BNXT_PTP_RX_FIFO]));
 	if (!(fifo & BNXT_PTP_RX_FIFO_PENDING))
@@ -3233,7 +3230,7 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 
 	if (!ptp)
-		return 0;
+		return -ENOTSUP;
 
 	ns = rte_timespec_to_ns(ts);
 	/* Set the timecounters to a new value. */
@@ -3253,7 +3250,7 @@ bnxt_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
 	int rc = 0;
 
 	if (!ptp)
-		return 0;
+		return -ENOTSUP;
 
 	if (BNXT_CHIP_THOR(bp))
 		rc = bnxt_hwrm_port_ts_query(bp, BNXT_PTP_FLAGS_CURRENT_TIME,
@@ -3275,7 +3272,7 @@ bnxt_timesync_enable(struct rte_eth_dev *dev)
 	int rc;
 
 	if (!ptp)
-		return 0;
+		return -ENOTSUP;
 
 	ptp->rx_filter = 1;
 	ptp->tx_tstamp_en = 1;
@@ -3314,7 +3311,7 @@ bnxt_timesync_disable(struct rte_eth_dev *dev)
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 
 	if (!ptp)
-		return 0;
+		return -ENOTSUP;
 
 	ptp->rx_filter = 0;
 	ptp->tx_tstamp_en = 0;
@@ -3339,7 +3336,7 @@ bnxt_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
 	uint64_t ns;
 
 	if (!ptp)
-		return 0;
+		return -ENOTSUP;
 
 	if (BNXT_CHIP_THOR(bp))
 		rx_tstamp_cycles = ptp->rx_timestamp;
@@ -3362,7 +3359,7 @@ bnxt_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
 	int rc = 0;
 
 	if (!ptp)
-		return 0;
+		return -ENOTSUP;
 
 	if (BNXT_CHIP_THOR(bp))
 		rc = bnxt_hwrm_port_ts_query(bp, BNXT_PTP_FLAGS_PATH_TX,
@@ -3383,7 +3380,7 @@ bnxt_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
 
 	if (!ptp)
-		return 0;
+		return -ENOTSUP;
 
 	ptp->tc.nsec += delta;
 	ptp->tx_tstamp_tc.nsec += delta;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:28.978051400 +0800
+++ 0092-net-bnxt-fix-timesync-when-PTP-is-not-supported.patch	2021-05-10 23:59:26.460000000 +0800
@@ -1 +1 @@
-From ab15dd5a1c4d563e80b10e42e39c4d2f010fa389 Mon Sep 17 00:00:00 2001
+From 6260a81282190cf7e019ada470ea062a321f302c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit ab15dd5a1c4d563e80b10e42e39c4d2f010fa389 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 4bdc8223d3..646cc94bd8 100644
+index d70e37ca60..b719cd74c4 100644
@@ -23 +25 @@
-@@ -3399,9 +3399,6 @@ static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t *ts)
+@@ -3198,9 +3198,6 @@ static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t *ts)
@@ -33 +35 @@
-@@ -3434,7 +3431,7 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
+@@ -3233,7 +3230,7 @@ bnxt_timesync_write_time(struct rte_eth_dev *dev, const struct timespec *ts)
@@ -42 +44 @@
-@@ -3454,7 +3451,7 @@ bnxt_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
+@@ -3253,7 +3250,7 @@ bnxt_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts)
@@ -49 +51 @@
- 	if (BNXT_CHIP_P5(bp))
+ 	if (BNXT_CHIP_THOR(bp))
@@ -51 +53 @@
-@@ -3476,7 +3473,7 @@ bnxt_timesync_enable(struct rte_eth_dev *dev)
+@@ -3275,7 +3272,7 @@ bnxt_timesync_enable(struct rte_eth_dev *dev)
@@ -60 +62 @@
-@@ -3517,7 +3514,7 @@ bnxt_timesync_disable(struct rte_eth_dev *dev)
+@@ -3314,7 +3311,7 @@ bnxt_timesync_disable(struct rte_eth_dev *dev)
@@ -69 +71 @@
-@@ -3544,7 +3541,7 @@ bnxt_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
+@@ -3339,7 +3336,7 @@ bnxt_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
@@ -76 +78 @@
- 	if (BNXT_CHIP_P5(bp))
+ 	if (BNXT_CHIP_THOR(bp))
@@ -78 +80 @@
-@@ -3567,7 +3564,7 @@ bnxt_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
+@@ -3362,7 +3359,7 @@ bnxt_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
@@ -85 +87 @@
- 	if (BNXT_CHIP_P5(bp))
+ 	if (BNXT_CHIP_THOR(bp))
@@ -87 +89 @@
-@@ -3588,7 +3585,7 @@ bnxt_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)
+@@ -3383,7 +3380,7 @@ bnxt_timesync_adjust_time(struct rte_eth_dev *dev, int64_t delta)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix Rx buffer posting' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (89 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix timesync when PTP is not supported' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix Tx length hint threshold' " Xueming Li
                   ` (136 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Lance Richardson; +Cc: Luca Boccassi, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/b21daacf9276ae68625a2cf80ba02ba8ef831221

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b21daacf9276ae68625a2cf80ba02ba8ef831221 Mon Sep 17 00:00:00 2001
From: Lance Richardson <lance.richardson@broadcom.com>
Date: Thu, 18 Mar 2021 15:52:13 -0400
Subject: [PATCH] net/bnxt: fix Rx buffer posting
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit bb4f70d275045647db78df48aa1f2456c37cf5fd ]

Remove early buffer posting logic from burst receive loop to address
several issues:
   - Posting receive descriptors without first posting completion
     entries risks overflowing the completion queue.
   - Posting receive descriptors without updating rx_raw_prod
     creates the possibility that the receive descriptor doorbell
     can be written twice with the same value.
   - Having this logic in the inner descriptor processing loop
     can impact performance.

Fixes: 637e34befd9c ("net/bnxt: optimize Rx processing")
Fixes: 04067844a3e9 ("net/bnxt: reduce CQ queue size without aggregation ring")

Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxr.c | 3 ---
 drivers/net/bnxt/bnxt_rxr.h | 2 --
 2 files changed, 5 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
index b28b7fb561..34de09fdc8 100644
--- a/drivers/net/bnxt/bnxt_rxr.c
+++ b/drivers/net/bnxt/bnxt_rxr.c
@@ -938,9 +938,6 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 		raw_cons = NEXT_RAW_CMP(raw_cons);
 		if (nb_rx_pkts == nb_pkts || nb_rep_rx_pkts == nb_pkts || evt)
 			break;
-		/* Post some Rx buf early in case of larger burst processing */
-		if (nb_rx_pkts == BNXT_RX_POST_THRESH)
-			bnxt_db_write(&rxr->rx_db, rxr->rx_prod);
 	}
 
 	cpr->cp_raw_cons = raw_cons;
diff --git a/drivers/net/bnxt/bnxt_rxr.h b/drivers/net/bnxt/bnxt_rxr.h
index 46c34e6e16..be5afcc8d1 100644
--- a/drivers/net/bnxt/bnxt_rxr.h
+++ b/drivers/net/bnxt/bnxt_rxr.h
@@ -37,8 +37,6 @@ static inline uint16_t bnxt_tpa_start_agg_id(struct bnxt *bp,
 #define BNXT_TPA_END_AGG_ID_TH(cmp) \
 	rte_le_to_cpu_16((cmp)->agg_id)
 
-#define BNXT_RX_POST_THRESH	32
-
 /* Number of descriptors to process per inner loop in vector mode. */
 #define RTE_BNXT_DESCS_PER_LOOP		4U
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.005180600 +0800
+++ 0093-net-bnxt-fix-Rx-buffer-posting.patch	2021-05-10 23:59:26.460000000 +0800
@@ -1 +1 @@
-From bb4f70d275045647db78df48aa1f2456c37cf5fd Mon Sep 17 00:00:00 2001
+From b21daacf9276ae68625a2cf80ba02ba8ef831221 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit bb4f70d275045647db78df48aa1f2456c37cf5fd ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index c72545ada7..7179c6cb30 100644
+index b28b7fb561..34de09fdc8 100644
@@ -31 +33 @@
-@@ -1018,9 +1018,6 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+@@ -938,9 +938,6 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
@@ -37 +39 @@
--			bnxt_db_write(&rxr->rx_db, rxr->rx_raw_prod);
+-			bnxt_db_write(&rxr->rx_db, rxr->rx_prod);
@@ -42 +44 @@
-index a6fdd7767a..b43256e03e 100644
+index 46c34e6e16..be5afcc8d1 100644
@@ -45,3 +47,3 @@
-@@ -41,8 +41,6 @@ static inline uint16_t bnxt_tpa_start_agg_id(struct bnxt *bp,
- 	(((cmp)->agg_bufs_v1 & RX_PKT_CMPL_AGG_BUFS_MASK) >> \
- 		RX_PKT_CMPL_AGG_BUFS_SFT)
+@@ -37,8 +37,6 @@ static inline uint16_t bnxt_tpa_start_agg_id(struct bnxt *bp,
+ #define BNXT_TPA_END_AGG_ID_TH(cmp) \
+ 	rte_le_to_cpu_16((cmp)->agg_id)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix Tx length hint threshold' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (90 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix Rx buffer posting' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix handling of null flow mask' " Xueming Li
                   ` (135 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Lance Richardson; +Cc: Luca Boccassi, Ajit Khaparde, Somnath Kotur, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/28e5e8b72203a1176329734c8934eb93865e763b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 28e5e8b72203a1176329734c8934eb93865e763b Mon Sep 17 00:00:00 2001
From: Lance Richardson <lance.richardson@broadcom.com>
Date: Thu, 18 Mar 2021 15:52:29 -0400
Subject: [PATCH] net/bnxt: fix Tx length hint threshold
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 74f2172177a0556348f312b2d88d9ad5f5e298cc ]

Use correct threshold when selecting "greater than or equal to
2K" length hint.

Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code")

Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_txr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c
index fb358d6f14..0cf6ece786 100644
--- a/drivers/net/bnxt/bnxt_txr.c
+++ b/drivers/net/bnxt/bnxt_txr.c
@@ -178,7 +178,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
 	txbd->flags_type |= TX_BD_SHORT_FLAGS_COAL_NOW;
 	txbd->flags_type |= TX_BD_LONG_FLAGS_NO_CMPL;
 	txbd->len = tx_pkt->data_len;
-	if (tx_pkt->pkt_len >= 2014)
+	if (tx_pkt->pkt_len >= 2048)
 		txbd->flags_type |= TX_BD_LONG_FLAGS_LHINT_GTE2K;
 	else
 		txbd->flags_type |= lhint_arr[tx_pkt->pkt_len >> 9];
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.027796700 +0800
+++ 0094-net-bnxt-fix-Tx-length-hint-threshold.patch	2021-05-10 23:59:26.460000000 +0800
@@ -1 +1 @@
-From 74f2172177a0556348f312b2d88d9ad5f5e298cc Mon Sep 17 00:00:00 2001
+From 28e5e8b72203a1176329734c8934eb93865e763b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 74f2172177a0556348f312b2d88d9ad5f5e298cc ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 65355fb040..27459960de 100644
+index fb358d6f14..0cf6ece786 100644
@@ -23 +25 @@
-@@ -187,7 +187,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
+@@ -178,7 +178,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix handling of null flow mask' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (91 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix Tx length hint threshold' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: check kvargs parsing' " Xueming Li
                   ` (134 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Lance Richardson; +Cc: Luca Boccassi, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/b1f8911ea3a32a31b91aaa15a81c60c32e06c0ec

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b1f8911ea3a32a31b91aaa15a81c60c32e06c0ec Mon Sep 17 00:00:00 2001
From: Lance Richardson <lance.richardson@broadcom.com>
Date: Thu, 18 Mar 2021 15:52:51 -0400
Subject: [PATCH] net/bnxt: fix handling of null flow mask
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit dea1afc71ffce08fccef2d49f09f6ad874c433c5 ]

When the mask field of an rte_flow pattern item is NULL,
the default mask for that item type should be used.

Fixes: 5ef3b79fdfe6 ("net/bnxt: support flow filter ops")

Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_flow.c | 47 +++++++++++++++++++++++++++---------
 1 file changed, 36 insertions(+), 11 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c
index 127d51c45b..514a5ed433 100644
--- a/drivers/net/bnxt/bnxt_flow.c
+++ b/drivers/net/bnxt/bnxt_flow.c
@@ -188,11 +188,15 @@ bnxt_validate_and_parse_flow_type(struct bnxt *bp,
 				PMD_DRV_LOG(DEBUG, "Parse inner header\n");
 			break;
 		case RTE_FLOW_ITEM_TYPE_ETH:
-			if (!item->spec || !item->mask)
+			if (!item->spec)
 				break;
 
 			eth_spec = item->spec;
-			eth_mask = item->mask;
+
+			if (item->mask)
+				eth_mask = item->mask;
+			else
+				eth_mask = &rte_flow_item_eth_mask;
 
 			/* Source MAC address mask cannot be partially set.
 			 * Should be All 0's or all 1's.
@@ -281,7 +285,12 @@ bnxt_validate_and_parse_flow_type(struct bnxt *bp,
 			break;
 		case RTE_FLOW_ITEM_TYPE_VLAN:
 			vlan_spec = item->spec;
-			vlan_mask = item->mask;
+
+			if (item->mask)
+				vlan_mask = item->mask;
+			else
+				vlan_mask = &rte_flow_item_vlan_mask;
+
 			if (en & en_ethertype) {
 				rte_flow_error_set(error, EINVAL,
 						   RTE_FLOW_ERROR_TYPE_ITEM,
@@ -324,11 +333,15 @@ bnxt_validate_and_parse_flow_type(struct bnxt *bp,
 		case RTE_FLOW_ITEM_TYPE_IPV4:
 			/* If mask is not involved, we could use EM filters. */
 			ipv4_spec = item->spec;
-			ipv4_mask = item->mask;
 
-			if (!item->spec || !item->mask)
+			if (!item->spec)
 				break;
 
+			if (item->mask)
+				ipv4_mask = item->mask;
+			else
+				ipv4_mask = &rte_flow_item_ipv4_mask;
+
 			/* Only IP DST and SRC fields are maskable. */
 			if (ipv4_mask->hdr.version_ihl ||
 			    ipv4_mask->hdr.type_of_service ||
@@ -385,11 +398,15 @@ bnxt_validate_and_parse_flow_type(struct bnxt *bp,
 			break;
 		case RTE_FLOW_ITEM_TYPE_IPV6:
 			ipv6_spec = item->spec;
-			ipv6_mask = item->mask;
 
-			if (!item->spec || !item->mask)
+			if (!item->spec)
 				break;
 
+			if (item->mask)
+				ipv6_mask = item->mask;
+			else
+				ipv6_mask = &rte_flow_item_ipv6_mask;
+
 			/* Only IP DST and SRC fields are maskable. */
 			if (ipv6_mask->hdr.vtc_flow ||
 			    ipv6_mask->hdr.payload_len ||
@@ -437,11 +454,15 @@ bnxt_validate_and_parse_flow_type(struct bnxt *bp,
 			break;
 		case RTE_FLOW_ITEM_TYPE_TCP:
 			tcp_spec = item->spec;
-			tcp_mask = item->mask;
 
-			if (!item->spec || !item->mask)
+			if (!item->spec)
 				break;
 
+			if (item->mask)
+				tcp_mask = item->mask;
+			else
+				tcp_mask = &rte_flow_item_tcp_mask;
+
 			/* Check TCP mask. Only DST & SRC ports are maskable */
 			if (tcp_mask->hdr.sent_seq ||
 			    tcp_mask->hdr.recv_ack ||
@@ -482,11 +503,15 @@ bnxt_validate_and_parse_flow_type(struct bnxt *bp,
 			break;
 		case RTE_FLOW_ITEM_TYPE_UDP:
 			udp_spec = item->spec;
-			udp_mask = item->mask;
 
-			if (!item->spec || !item->mask)
+			if (!item->spec)
 				break;
 
+			if (item->mask)
+				udp_mask = item->mask;
+			else
+				udp_mask = &rte_flow_item_udp_mask;
+
 			if (udp_mask->hdr.dgram_len ||
 			    udp_mask->hdr.dgram_cksum) {
 				rte_flow_error_set(error,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.052612700 +0800
+++ 0095-net-bnxt-fix-handling-of-null-flow-mask.patch	2021-05-10 23:59:26.460000000 +0800
@@ -1 +1 @@
-From dea1afc71ffce08fccef2d49f09f6ad874c433c5 Mon Sep 17 00:00:00 2001
+From b1f8911ea3a32a31b91aaa15a81c60c32e06c0ec Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit dea1afc71ffce08fccef2d49f09f6ad874c433c5 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index a8f5d91fc4..e3906b4779 100644
+index 127d51c45b..514a5ed433 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: check kvargs parsing' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (92 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix handling of null flow mask' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix memory allocation for command response' " Xueming Li
                   ` (133 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Ajit Khaparde; +Cc: Luca Boccassi, Lance Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/34972cfd96876dba2932ccf2565d5a9a88fd7fc1

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 34972cfd96876dba2932ccf2565d5a9a88fd7fc1 Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: Tue, 16 Mar 2021 18:08:40 -0700
Subject: [PATCH] net/bnxt: check kvargs parsing
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 29ce7059e8e7307ac27ff94e7a46035f38d3f97e ]

Check return value of rte_kvargs_process()

Coverity issue: 357765
Fixes: ba404aacc5cf ("net/bnxt: set maximum flow count")
Fixes: 02a95625fe9c ("net/bnxt: add flow stats in extended stats")
Fixes: 7b0940653720 ("net/bnxt: support host memory based TruFlow")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index b719cd74c4..e97a3ab8f6 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -5239,40 +5239,49 @@ bnxt_parse_devarg_rep_fc_f2r(__rte_unused const char *key,
 	return 0;
 }
 
-static void
+static int
 bnxt_parse_dev_args(struct bnxt *bp, struct rte_devargs *devargs)
 {
 	struct rte_kvargs *kvlist;
+	int ret;
 
 	if (devargs == NULL)
-		return;
+		return 0;
 
 	kvlist = rte_kvargs_parse(devargs->args, bnxt_dev_args);
 	if (kvlist == NULL)
-		return;
+		return -EINVAL;
 
 	/*
 	 * Handler for "truflow" devarg.
 	 * Invoked as for ex: "-a 0000:00:0d.0,host-based-truflow=1"
 	 */
-	rte_kvargs_process(kvlist, BNXT_DEVARG_TRUFLOW,
-			   bnxt_parse_devarg_truflow, bp);
+	ret = rte_kvargs_process(kvlist, BNXT_DEVARG_TRUFLOW,
+				 bnxt_parse_devarg_truflow, bp);
+	if (ret)
+		goto err;
 
 	/*
 	 * Handler for "flow_xstat" devarg.
 	 * Invoked as for ex: "-a 0000:00:0d.0,flow_xstat=1"
 	 */
-	rte_kvargs_process(kvlist, BNXT_DEVARG_FLOW_XSTAT,
-			   bnxt_parse_devarg_flow_xstat, bp);
+	ret = rte_kvargs_process(kvlist, BNXT_DEVARG_FLOW_XSTAT,
+				 bnxt_parse_devarg_flow_xstat, bp);
+	if (ret)
+		goto err;
 
 	/*
 	 * Handler for "max_num_kflows" devarg.
 	 * Invoked as for ex: "-a 000:00:0d.0,max_num_kflows=32"
 	 */
-	rte_kvargs_process(kvlist, BNXT_DEVARG_MAX_NUM_KFLOWS,
-			   bnxt_parse_devarg_max_num_kflows, bp);
+	ret = rte_kvargs_process(kvlist, BNXT_DEVARG_MAX_NUM_KFLOWS,
+				 bnxt_parse_devarg_max_num_kflows, bp);
+	if (ret)
+		goto err;
 
+err:
 	rte_kvargs_free(kvlist);
+	return ret;
 }
 
 static int bnxt_alloc_switch_domain(struct bnxt *bp)
@@ -5407,7 +5416,9 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev, void *params __rte_unused)
 	bp = eth_dev->data->dev_private;
 
 	/* Parse dev arguments passed on when starting the DPDK application. */
-	bnxt_parse_dev_args(bp, pci_dev->device.devargs);
+	rc = bnxt_parse_dev_args(bp, pci_dev->device.devargs);
+	if (rc)
+		goto error_free;
 
 	rc = bnxt_drv_init(eth_dev);
 	if (rc)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.077460000 +0800
+++ 0096-net-bnxt-check-kvargs-parsing.patch	2021-05-10 23:59:26.460000000 +0800
@@ -1 +1 @@
-From 29ce7059e8e7307ac27ff94e7a46035f38d3f97e Mon Sep 17 00:00:00 2001
+From 34972cfd96876dba2932ccf2565d5a9a88fd7fc1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 29ce7059e8e7307ac27ff94e7a46035f38d3f97e ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 646cc94bd8..372475231d 100644
+index b719cd74c4..e97a3ab8f6 100644
@@ -24 +26 @@
-@@ -5484,40 +5484,49 @@ bnxt_parse_devarg_rep_fc_f2r(__rte_unused const char *key,
+@@ -5239,40 +5239,49 @@ bnxt_parse_devarg_rep_fc_f2r(__rte_unused const char *key,
@@ -83 +85 @@
-@@ -5652,7 +5661,9 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev, void *params __rte_unused)
+@@ -5407,7 +5416,9 @@ bnxt_dev_init(struct rte_eth_dev *eth_dev, void *params __rte_unused)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/bnxt: fix memory allocation for command response' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (93 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: check kvargs parsing' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/qede: reduce log verbosity' " Xueming Li
                   ` (132 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Kalesh AP
  Cc: Luca Boccassi, Somnath Kotur, Ajit Khaparde, Lance Richardson,
	dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/75f780af8b8e931756c5943d38a6789525e4e078

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 75f780af8b8e931756c5943d38a6789525e4e078 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Sat, 20 Mar 2021 12:19:17 +0530
Subject: [PATCH] net/bnxt: fix memory allocation for command response
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 4f1d8fdc3f4234857c1e78af564fcfd92f602f70 ]

Driver re-allocates memory for the command response buffer
when the installed firmware version is newer (and has a larger
max response length) than the version of HWRM that was used to
build the PMD.

This change helps to avoid the re-allocation by allocating the
memory for the command response buffer with PAGE_SIZE.

Coverity issue: 366256, 366204, 366180
Fixes: b7778e8a1c00 ("net/bnxt: refactor to properly allocate resources for PF/VF")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c |  2 +-
 drivers/net/bnxt/bnxt_hwrm.c   | 27 ++++-----------------------
 2 files changed, 5 insertions(+), 24 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index e97a3ab8f6..85c711b71f 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -5363,7 +5363,7 @@ static int bnxt_drv_init(struct rte_eth_dev *eth_dev)
 	rc = bnxt_alloc_hwrm_resources(bp);
 	if (rc) {
 		PMD_DRV_LOG(ERR,
-			    "Failed to allocate hwrm resource rc: %x\n", rc);
+			    "Failed to allocate response buffer rc: %x\n", rc);
 		return rc;
 	}
 	rc = bnxt_alloc_leds_info(bp);
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 284699b2dc..2e2460b71a 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1160,28 +1160,8 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
 	max_resp_len = rte_le_to_cpu_16(resp->max_resp_len);
 	dev_caps_cfg = rte_le_to_cpu_32(resp->dev_caps_cfg);
 
-	if (bp->max_resp_len != max_resp_len) {
-		sprintf(type, "bnxt_hwrm_" PCI_PRI_FMT,
-			bp->pdev->addr.domain, bp->pdev->addr.bus,
-			bp->pdev->addr.devid, bp->pdev->addr.function);
-
-		rte_free(bp->hwrm_cmd_resp_addr);
-
-		bp->hwrm_cmd_resp_addr = rte_malloc(type, max_resp_len, 0);
-		if (bp->hwrm_cmd_resp_addr == NULL) {
-			rc = -ENOMEM;
-			goto error;
-		}
-		bp->hwrm_cmd_resp_dma_addr =
-			rte_malloc_virt2iova(bp->hwrm_cmd_resp_addr);
-		if (bp->hwrm_cmd_resp_dma_addr == RTE_BAD_IOVA) {
-			PMD_DRV_LOG(ERR,
-			"Unable to map response buffer to physical memory.\n");
-			rc = -ENOMEM;
-			goto error;
-		}
-		bp->max_resp_len = max_resp_len;
-	}
+	RTE_VERIFY(max_resp_len <= bp->max_resp_len);
+	bp->max_resp_len = max_resp_len;
 
 	if ((dev_caps_cfg &
 		HWRM_VER_GET_OUTPUT_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED) &&
@@ -2667,7 +2647,7 @@ int bnxt_alloc_hwrm_resources(struct bnxt *bp)
 
 	sprintf(type, "bnxt_hwrm_" PCI_PRI_FMT, pdev->addr.domain,
 		pdev->addr.bus, pdev->addr.devid, pdev->addr.function);
-	bp->max_resp_len = HWRM_MAX_RESP_LEN;
+	bp->max_resp_len = BNXT_PAGE_SIZE;
 	bp->hwrm_cmd_resp_addr = rte_malloc(type, bp->max_resp_len, 0);
 	if (bp->hwrm_cmd_resp_addr == NULL)
 		return -ENOMEM;
@@ -5842,6 +5822,7 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp)
 	int rc = 0;
 
 	bp->max_req_len = HWRM_MAX_REQ_LEN;
+	bp->max_resp_len = BNXT_PAGE_SIZE;
 	bp->hwrm_cmd_timeout = SHORT_HWRM_CMD_TIMEOUT;
 
 	HWRM_PREP(&req, HWRM_VER_GET, BNXT_USE_CHIMP_MB);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.103375900 +0800
+++ 0097-net-bnxt-fix-memory-allocation-for-command-response.patch	2021-05-10 23:59:26.460000000 +0800
@@ -1 +1 @@
-From 4f1d8fdc3f4234857c1e78af564fcfd92f602f70 Mon Sep 17 00:00:00 2001
+From 75f780af8b8e931756c5943d38a6789525e4e078 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 4f1d8fdc3f4234857c1e78af564fcfd92f602f70 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index 372475231d..ed2ae45757 100644
+index e97a3ab8f6..85c711b71f 100644
@@ -31 +33 @@
-@@ -5608,7 +5608,7 @@ static int bnxt_drv_init(struct rte_eth_dev *eth_dev)
+@@ -5363,7 +5363,7 @@ static int bnxt_drv_init(struct rte_eth_dev *eth_dev)
@@ -41 +43 @@
-index e3a07314f8..6a70b6e663 100644
+index 284699b2dc..2e2460b71a 100644
@@ -44 +46 @@
-@@ -1284,28 +1284,8 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
+@@ -1160,28 +1160,8 @@ int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
@@ -75 +77 @@
-@@ -2804,7 +2784,7 @@ int bnxt_alloc_hwrm_resources(struct bnxt *bp)
+@@ -2667,7 +2647,7 @@ int bnxt_alloc_hwrm_resources(struct bnxt *bp)
@@ -84 +86 @@
-@@ -6057,6 +6037,7 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp)
+@@ -5842,6 +5822,7 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/qede: reduce log verbosity' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (94 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/bnxt: fix memory allocation for command response' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/qede: accept bigger RSS table' " Xueming Li
                   ` (131 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Igor Russkikh
  Cc: Luca Boccassi, Devendra Singh Rawat, Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/50650a3ab2d51e38d2f3d276d9c256c529bb999f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 50650a3ab2d51e38d2f3d276d9c256c529bb999f Mon Sep 17 00:00:00 2001
From: Igor Russkikh <irusskikh@marvell.com>
Date: Fri, 19 Mar 2021 10:46:55 +0100
Subject: [PATCH] net/qede: reduce log verbosity
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 218d54849f0707347d6956f8f1c97017c6b6ac08 ]

On some hardware units it was found this trace is flooding the output,
making any dpdk interactive usage kind of problematic.

It is only informational, without any consequences handling, so reducing
it to verbose from explicit notice level.

Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
Acked-by: Devendra Singh Rawat <dsinghrawat@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/qede/base/ecore_int.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/qede/base/ecore_int.c b/drivers/net/qede/base/ecore_int.c
index 4207b1853e..2c4aac9418 100644
--- a/drivers/net/qede/base/ecore_int.c
+++ b/drivers/net/qede/base/ecore_int.c
@@ -928,7 +928,7 @@ static void ecore_int_attn_print(struct ecore_hwfn *p_hwfn,
 				 bool b_clear)
 {
 	/* @DPDK */
-	DP_NOTICE(p_hwfn->p_dev, false, "[block_id %d type %d]\n", id, type);
+	DP_VERBOSE(p_hwfn, ECORE_MSG_INTR, "[block_id %d type %d]\n", id, type);
 }
 
 /**
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.130401100 +0800
+++ 0098-net-qede-reduce-log-verbosity.patch	2021-05-10 23:59:26.460000000 +0800
@@ -1 +1 @@
-From 218d54849f0707347d6956f8f1c97017c6b6ac08 Mon Sep 17 00:00:00 2001
+From 50650a3ab2d51e38d2f3d276d9c256c529bb999f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 218d54849f0707347d6956f8f1c97017c6b6ac08 ]
@@ -11,2 +13,0 @@
-
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/qede: accept bigger RSS table' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (95 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/qede: reduce log verbosity' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/i40e: fix input set field mask' " Xueming Li
                   ` (130 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Igor Russkikh; +Cc: Luca Boccassi, Rasesh Mody, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/74fc31b48fc26dc40080d207fbf577bd53191028

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 74fc31b48fc26dc40080d207fbf577bd53191028 Mon Sep 17 00:00:00 2001
From: Igor Russkikh <irusskikh@marvell.com>
Date: Fri, 19 Mar 2021 10:46:56 +0100
Subject: [PATCH] net/qede: accept bigger RSS table
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 6ceb7ab83f168fa6b8e90e4bd5a1392de1a48c70 ]

Some dpdk applications blindly pass fixed side RSS hash tables,
and do not check driver/device capabilities.

Moreover, many other drivers do not do such a strong check as well.

Fix it by making qede accept any size rss_key. For larger key
tables we just crop it with notice trace message.

Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/qede/qede_ethdev.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index ab5f5b1065..bfd38a9772 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -2139,8 +2139,10 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,
 		/* RSS hash key */
 		if (key) {
 			if (len > (ECORE_RSS_KEY_SIZE * sizeof(uint32_t))) {
-				DP_ERR(edev, "RSS key length exceeds limit\n");
-				return -EINVAL;
+				len = ECORE_RSS_KEY_SIZE * sizeof(uint32_t);
+				DP_NOTICE(edev, false,
+					  "RSS key length too big, trimmed to %d\n",
+					  len);
 			}
 			DP_INFO(edev, "Applying user supplied hash key\n");
 			rss_params.update_rss_key = 1;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.154364800 +0800
+++ 0099-net-qede-accept-bigger-RSS-table.patch	2021-05-10 23:59:26.460000000 +0800
@@ -1 +1 @@
-From 6ceb7ab83f168fa6b8e90e4bd5a1392de1a48c70 Mon Sep 17 00:00:00 2001
+From 74fc31b48fc26dc40080d207fbf577bd53191028 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 6ceb7ab83f168fa6b8e90e4bd5a1392de1a48c70 ]
@@ -13,2 +15,0 @@
-
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/i40e: fix input set field mask' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (96 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/qede: accept bigger RSS table' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ice: fix RSS hash update' " Xueming Li
                   ` (129 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Alvin Zhang; +Cc: Luca Boccassi, Lingli Chen, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/fe1461f8b60c40b33d611c81cf90e2c91c0b136e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From fe1461f8b60c40b33d611c81cf90e2c91c0b136e Mon Sep 17 00:00:00 2001
From: Alvin Zhang <alvinx.zhang@intel.com>
Date: Mon, 1 Mar 2021 15:06:07 +0800
Subject: [PATCH] net/i40e: fix input set field mask
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 2a2fd19d46e598a6816be8f81aa62ec372fd495d ]

The absolute field offsets of IPv4 or IPv6 header are related to
hardware configuration. The X710 and X722 have different hardware
configurations, and users can even modify the hardware configuration.
Therefore, The default values cannot be used when calculating mask
offset.

The following flows can be created on X722 NIC, but the packet will
not enter the queue 3:
  flow create 0 ingress pattern eth / ipv4 proto is 255  / end
  actions queue index 3 / end
  pkt = Ether()/IP(ttl=63, proto=255)/Raw('X'*40)

  flow create 0 ingress pattern eth / ipv4 tos is 50 / udp / end
  actions queue index 3 / end
  pkt = Ether()/IP(tos=50)/UDP()/Raw('X'*40)

  flow create 0 ingress pattern eth / ipv6 tc is 12 / udp / end
  actions queue index 3 / end
  pkt = Ether()/IPv6(tc=12,hlim=34,fl=0x98765)/UDP()/Raw('X'*40)

  flow create 0 ingress pattern eth / ipv6 hop is 34 / end actions
  queue index 3 / end
  pkt = Ether()/IPv6(tc=12,hlim=34,fl=0x98765)/Raw('X'*40)

This patch read the field offsets from the NIC and return the mask
register value.

Fixes: 98f055707685 ("i40e: configure input fields for RSS or flow director")
Fixes: 92cf7f8ec082 ("i40e: allow filtering on more IP header fields")

Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
Tested-by: Lingli Chen <linglix.chen@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 158 +++++++++++++++++++++++++--------
 drivers/net/i40e/i40e_ethdev.h |   4 +-
 drivers/net/i40e/i40e_flow.c   |   2 +-
 3 files changed, 125 insertions(+), 39 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index ef4f28fe53..572bd96471 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -202,12 +202,12 @@
 #define I40E_TRANSLATE_INSET 0
 #define I40E_TRANSLATE_REG   1
 
-#define I40E_INSET_IPV4_TOS_MASK        0x0009FF00UL
-#define I40E_INSET_IPv4_TTL_MASK        0x000D00FFUL
-#define I40E_INSET_IPV4_PROTO_MASK      0x000DFF00UL
-#define I40E_INSET_IPV6_TC_MASK         0x0009F00FUL
-#define I40E_INSET_IPV6_HOP_LIMIT_MASK  0x000CFF00UL
-#define I40E_INSET_IPV6_NEXT_HDR_MASK   0x000C00FFUL
+#define I40E_INSET_IPV4_TOS_MASK        0x0000FF00UL
+#define I40E_INSET_IPV4_TTL_MASK        0x000000FFUL
+#define I40E_INSET_IPV4_PROTO_MASK      0x0000FF00UL
+#define I40E_INSET_IPV6_TC_MASK         0x0000F00FUL
+#define I40E_INSET_IPV6_HOP_LIMIT_MASK  0x0000FF00UL
+#define I40E_INSET_IPV6_NEXT_HDR_MASK   0x000000FFUL
 
 /* PCI offset for querying capability */
 #define PCI_DEV_CAP_REG            0xA4
@@ -220,6 +220,25 @@
 /* Bit mask of Extended Tag enable/disable */
 #define PCI_DEV_CTRL_EXT_TAG_MASK  (1 << PCI_DEV_CTRL_EXT_TAG_SHIFT)
 
+#define I40E_GLQF_PIT_IPV4_START	2
+#define I40E_GLQF_PIT_IPV4_COUNT	2
+#define I40E_GLQF_PIT_IPV6_START	4
+#define I40E_GLQF_PIT_IPV6_COUNT	2
+
+#define I40E_GLQF_PIT_SOURCE_OFF_GET(a)	\
+				(((a) & I40E_GLQF_PIT_SOURCE_OFF_MASK) >> \
+				 I40E_GLQF_PIT_SOURCE_OFF_SHIFT)
+
+#define I40E_GLQF_PIT_DEST_OFF_GET(a) \
+				(((a) & I40E_GLQF_PIT_DEST_OFF_MASK) >> \
+				 I40E_GLQF_PIT_DEST_OFF_SHIFT)
+
+#define I40E_GLQF_PIT_FSIZE_GET(a)	(((a) & I40E_GLQF_PIT_FSIZE_MASK) >> \
+					 I40E_GLQF_PIT_FSIZE_SHIFT)
+
+#define I40E_GLQF_PIT_BUILD(off, mask)	(((off) << 16) | (mask))
+#define I40E_FDIR_FIELD_OFFSET(a)	((a) >> 1)
+
 static int eth_i40e_dev_init(struct rte_eth_dev *eth_dev, void *init_params);
 static int eth_i40e_dev_uninit(struct rte_eth_dev *eth_dev);
 static int i40e_dev_configure(struct rte_eth_dev *dev);
@@ -9487,49 +9506,116 @@ i40e_translate_input_set_reg(enum i40e_mac_type type, uint64_t input)
 	return val;
 }
 
+static int
+i40e_get_inset_field_offset(struct i40e_hw *hw, uint32_t pit_reg_start,
+			    uint32_t pit_reg_count, uint32_t hdr_off)
+{
+	const uint32_t pit_reg_end = pit_reg_start + pit_reg_count;
+	uint32_t field_off = I40E_FDIR_FIELD_OFFSET(hdr_off);
+	uint32_t i, reg_val, src_off, count;
+
+	for (i = pit_reg_start; i < pit_reg_end; i++) {
+		reg_val = i40e_read_rx_ctl(hw, I40E_GLQF_PIT(i));
+
+		src_off = I40E_GLQF_PIT_SOURCE_OFF_GET(reg_val);
+		count = I40E_GLQF_PIT_FSIZE_GET(reg_val);
+
+		if (src_off <= field_off && (src_off + count) > field_off)
+			break;
+	}
+
+	if (i >= pit_reg_end) {
+		PMD_DRV_LOG(ERR,
+			    "Hardware GLQF_PIT configuration does not support this field mask");
+		return -1;
+	}
+
+	return I40E_GLQF_PIT_DEST_OFF_GET(reg_val) + field_off - src_off;
+}
+
 int
-i40e_generate_inset_mask_reg(uint64_t inset, uint32_t *mask, uint8_t nb_elem)
+i40e_generate_inset_mask_reg(struct i40e_hw *hw, uint64_t inset,
+			     uint32_t *mask, uint8_t nb_elem)
 {
-	uint8_t i, idx = 0;
-	uint64_t inset_need_mask = inset;
+	static const uint64_t mask_inset[] = {
+		I40E_INSET_IPV4_PROTO | I40E_INSET_IPV4_TTL,
+		I40E_INSET_IPV6_NEXT_HDR | I40E_INSET_IPV6_HOP_LIMIT };
 
 	static const struct {
 		uint64_t inset;
 		uint32_t mask;
-	} inset_mask_map[] = {
-		{I40E_INSET_IPV4_TOS, I40E_INSET_IPV4_TOS_MASK},
-		{I40E_INSET_IPV4_PROTO | I40E_INSET_IPV4_TTL, 0},
-		{I40E_INSET_IPV4_PROTO, I40E_INSET_IPV4_PROTO_MASK},
-		{I40E_INSET_IPV4_TTL, I40E_INSET_IPv4_TTL_MASK},
-		{I40E_INSET_IPV6_TC, I40E_INSET_IPV6_TC_MASK},
-		{I40E_INSET_IPV6_NEXT_HDR | I40E_INSET_IPV6_HOP_LIMIT, 0},
-		{I40E_INSET_IPV6_NEXT_HDR, I40E_INSET_IPV6_NEXT_HDR_MASK},
-		{I40E_INSET_IPV6_HOP_LIMIT, I40E_INSET_IPV6_HOP_LIMIT_MASK},
+		uint32_t offset;
+	} inset_mask_offset_map[] = {
+		{ I40E_INSET_IPV4_TOS, I40E_INSET_IPV4_TOS_MASK,
+		  offsetof(struct rte_ipv4_hdr, type_of_service) },
+
+		{ I40E_INSET_IPV4_PROTO, I40E_INSET_IPV4_PROTO_MASK,
+		  offsetof(struct rte_ipv4_hdr, next_proto_id) },
+
+		{ I40E_INSET_IPV4_TTL, I40E_INSET_IPV4_TTL_MASK,
+		  offsetof(struct rte_ipv4_hdr, time_to_live) },
+
+		{ I40E_INSET_IPV6_TC, I40E_INSET_IPV6_TC_MASK,
+		  offsetof(struct rte_ipv6_hdr, vtc_flow) },
+
+		{ I40E_INSET_IPV6_NEXT_HDR, I40E_INSET_IPV6_NEXT_HDR_MASK,
+		  offsetof(struct rte_ipv6_hdr, proto) },
+
+		{ I40E_INSET_IPV6_HOP_LIMIT, I40E_INSET_IPV6_HOP_LIMIT_MASK,
+		  offsetof(struct rte_ipv6_hdr, hop_limits) },
 	};
 
-	if (!inset || !mask || !nb_elem)
+	uint32_t i;
+	int idx = 0;
+
+	assert(mask);
+	if (!inset)
 		return 0;
 
-	for (i = 0, idx = 0; i < RTE_DIM(inset_mask_map); i++) {
+	for (i = 0; i < RTE_DIM(mask_inset); i++) {
 		/* Clear the inset bit, if no MASK is required,
 		 * for example proto + ttl
 		 */
-		if ((inset & inset_mask_map[i].inset) ==
-		     inset_mask_map[i].inset && inset_mask_map[i].mask == 0)
-			inset_need_mask &= ~inset_mask_map[i].inset;
-		if (!inset_need_mask)
-			return 0;
+		if ((mask_inset[i] & inset) == mask_inset[i]) {
+			inset &= ~mask_inset[i];
+			if (!inset)
+				return 0;
+		}
 	}
-	for (i = 0, idx = 0; i < RTE_DIM(inset_mask_map); i++) {
-		if ((inset_need_mask & inset_mask_map[i].inset) ==
-		    inset_mask_map[i].inset) {
-			if (idx >= nb_elem) {
-				PMD_DRV_LOG(ERR, "exceed maximal number of bitmasks");
-				return -EINVAL;
-			}
-			mask[idx] = inset_mask_map[i].mask;
-			idx++;
+
+	for (i = 0; i < RTE_DIM(inset_mask_offset_map); i++) {
+		uint32_t pit_start, pit_count;
+		int offset;
+
+		if (!(inset_mask_offset_map[i].inset & inset))
+			continue;
+
+		if (inset_mask_offset_map[i].inset &
+		    (I40E_INSET_IPV4_TOS | I40E_INSET_IPV4_PROTO |
+		     I40E_INSET_IPV4_TTL)) {
+			pit_start = I40E_GLQF_PIT_IPV4_START;
+			pit_count = I40E_GLQF_PIT_IPV4_COUNT;
+		} else {
+			pit_start = I40E_GLQF_PIT_IPV6_START;
+			pit_count = I40E_GLQF_PIT_IPV6_COUNT;
+		}
+
+		offset = i40e_get_inset_field_offset(hw, pit_start, pit_count,
+				inset_mask_offset_map[i].offset);
+
+		if (offset < 0)
+			return -EINVAL;
+
+		if (idx >= nb_elem) {
+			PMD_DRV_LOG(ERR,
+				    "Configuration of inset mask out of range %u",
+				    nb_elem);
+			return -ERANGE;
 		}
+
+		mask[idx] = I40E_GLQF_PIT_BUILD((uint32_t)offset,
+						inset_mask_offset_map[i].mask);
+		idx++;
 	}
 
 	return idx;
@@ -9583,7 +9669,7 @@ i40e_filter_input_set_init(struct i40e_pf *pf)
 
 		input_set = i40e_get_default_input_set(pctype);
 
-		num = i40e_generate_inset_mask_reg(input_set, mask_reg,
+		num = i40e_generate_inset_mask_reg(hw, input_set, mask_reg,
 						   I40E_INSET_MASK_NUM_REG);
 		if (num < 0)
 			return;
@@ -9688,7 +9774,7 @@ i40e_hash_filter_inset_select(struct i40e_hw *hw,
 		inset_reg |= i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, pctype));
 		input_set |= pf->hash_input_set[pctype];
 	}
-	num = i40e_generate_inset_mask_reg(input_set, mask_reg,
+	num = i40e_generate_inset_mask_reg(hw, input_set, mask_reg,
 					   I40E_INSET_MASK_NUM_REG);
 	if (num < 0)
 		return -EINVAL;
diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h
index 20d051db8b..7d203a7816 100644
--- a/drivers/net/i40e/i40e_ethdev.h
+++ b/drivers/net/i40e/i40e_ethdev.h
@@ -1439,8 +1439,8 @@ bool is_i40evf_supported(struct rte_eth_dev *dev);
 
 int i40e_validate_input_set(enum i40e_filter_pctype pctype,
 			    enum rte_filter_type filter, uint64_t inset);
-int i40e_generate_inset_mask_reg(uint64_t inset, uint32_t *mask,
-				 uint8_t nb_elem);
+int i40e_generate_inset_mask_reg(struct i40e_hw *hw, uint64_t inset,
+				 uint32_t *mask, uint8_t nb_elem);
 uint64_t i40e_translate_input_set_reg(enum i40e_mac_type type, uint64_t input);
 void i40e_check_write_reg(struct i40e_hw *hw, uint32_t addr, uint32_t val);
 void i40e_check_write_global_reg(struct i40e_hw *hw,
diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
index 5bef8c76a7..15c6464703 100644
--- a/drivers/net/i40e/i40e_flow.c
+++ b/drivers/net/i40e/i40e_flow.c
@@ -2269,7 +2269,7 @@ i40e_flow_set_fdir_inset(struct i40e_pf *pf,
 	    !memcmp(&pf->fdir.input_set[pctype], &input_set, sizeof(uint64_t)))
 		return 0;
 
-	num = i40e_generate_inset_mask_reg(input_set, mask_reg,
+	num = i40e_generate_inset_mask_reg(hw, input_set, mask_reg,
 					   I40E_INSET_MASK_NUM_REG);
 	if (num < 0)
 		return -EINVAL;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.178202700 +0800
+++ 0100-net-i40e-fix-input-set-field-mask.patch	2021-05-10 23:59:26.480000000 +0800
@@ -1 +1 @@
-From 2a2fd19d46e598a6816be8f81aa62ec372fd495d Mon Sep 17 00:00:00 2001
+From fe1461f8b60c40b33d611c81cf90e2c91c0b136e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 2a2fd19d46e598a6816be8f81aa62ec372fd495d ]
@@ -35 +37,0 @@
-Cc: stable@dpdk.org
@@ -46 +48 @@
-index 9b86bcdc69..09a1402a3f 100644
+index ef4f28fe53..572bd96471 100644
@@ -94 +96 @@
-@@ -9424,49 +9443,116 @@ i40e_translate_input_set_reg(enum i40e_mac_type type, uint64_t input)
+@@ -9487,49 +9506,116 @@ i40e_translate_input_set_reg(enum i40e_mac_type type, uint64_t input)
@@ -239 +241 @@
-@@ -9520,7 +9606,7 @@ i40e_filter_input_set_init(struct i40e_pf *pf)
+@@ -9583,7 +9669,7 @@ i40e_filter_input_set_init(struct i40e_pf *pf)
@@ -248 +250 @@
-@@ -9600,7 +9686,7 @@ i40e_set_hash_inset(struct i40e_hw *hw, uint64_t input_set,
+@@ -9688,7 +9774,7 @@ i40e_hash_filter_inset_select(struct i40e_hw *hw,
@@ -258 +260 @@
-index 1e8f5d3a87..faf6896fbc 100644
+index 20d051db8b..7d203a7816 100644
@@ -261,2 +263,2 @@
-@@ -1458,8 +1458,8 @@ void i40e_set_symmetric_hash_enable_per_port(struct i40e_hw *hw,
- 					     uint8_t enable);
+@@ -1439,8 +1439,8 @@ bool is_i40evf_supported(struct rte_eth_dev *dev);
+ 
@@ -273 +275 @@
-index 3e514d5f38..1ee8959e56 100644
+index 5bef8c76a7..15c6464703 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ice: fix RSS hash update' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (97 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/i40e: fix input set field mask' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ice/base: fix memory allocation for MAC addresses' " Xueming Li
                   ` (128 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Wenjun Wu; +Cc: Luca Boccassi, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7b7af2fd73148dc8e98f870676aa4d8d4548b923

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7b7af2fd73148dc8e98f870676aa4d8d4548b923 Mon Sep 17 00:00:00 2001
From: Wenjun Wu <wenjun1.wu@intel.com>
Date: Fri, 5 Mar 2021 14:03:24 +0800
Subject: [PATCH] net/ice: fix RSS hash update
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 962fa026889d83f5f0a6880a98d050e0c3e0f6b9 ]

This patch change judgment statements to disable RSS for pf
when users need to disable RSS or RSS hash function configured
is not supported.

Fixes: 4717a12cfaf1 ("net/ice: initialize and update RSS based on user config")

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 626ebfac5b..f4874632cd 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -4394,8 +4394,10 @@ ice_rss_hash_update(struct rte_eth_dev *dev,
 	if (status)
 		return status;
 
-	if (rss_conf->rss_hf == 0)
+	if (rss_conf->rss_hf == 0) {
+		pf->rss_hf = 0;
 		return 0;
+	}
 
 	/* RSS hash configuration */
 	ice_rss_hash_set(pf, rss_conf->rss_hf);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.209223900 +0800
+++ 0101-net-ice-fix-RSS-hash-update.patch	2021-05-10 23:59:26.480000000 +0800
@@ -1 +1 @@
-From 962fa026889d83f5f0a6880a98d050e0c3e0f6b9 Mon Sep 17 00:00:00 2001
+From 7b7af2fd73148dc8e98f870676aa4d8d4548b923 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 962fa026889d83f5f0a6880a98d050e0c3e0f6b9 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 9c9b84a938..5a1190d50e 100644
+index 626ebfac5b..f4874632cd 100644
@@ -23 +25 @@
-@@ -4457,8 +4457,10 @@ ice_rss_hash_update(struct rte_eth_dev *dev,
+@@ -4394,8 +4394,10 @@ ice_rss_hash_update(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ice/base: fix memory allocation for MAC addresses' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (98 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ice: fix RSS hash update' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/mlx5: fix flow actions index in cache' " Xueming Li
                   ` (127 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Luca Boccassi, Ferruh Yigit, Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/162f87fce1d311e9a3d6556c583fa3aa7db0cf2f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 162f87fce1d311e9a3d6556c583fa3aa7db0cf2f Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Wed, 17 Mar 2021 14:02:19 +0800
Subject: [PATCH] net/ice/base: fix memory allocation for MAC addresses
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 78b52e3878c6496748cba2028f8cb9080435cb46 ]

Not enough memory be allocated for dev->data->mac_address which
cause out of bound memory access when iterate all mac addresses by
dev_info.max_mac_addrs.

Fixes: f9cf4f864150 ("net/ice: support device initialization")

Reported-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index f4874632cd..b6d940c2ff 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -805,7 +805,7 @@ ice_init_mac_address(struct rte_eth_dev *dev)
 		(struct rte_ether_addr *)hw->port_info[0].mac.perm_addr);
 
 	dev->data->mac_addrs =
-		rte_zmalloc(NULL, sizeof(struct rte_ether_addr), 0);
+		rte_zmalloc(NULL, sizeof(struct rte_ether_addr) * ICE_NUM_MACADDR_MAX, 0);
 	if (!dev->data->mac_addrs) {
 		PMD_INIT_LOG(ERR,
 			     "Failed to allocate memory to store mac address");
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.235470400 +0800
+++ 0102-net-ice-base-fix-memory-allocation-for-MAC-addresses.patch	2021-05-10 23:59:26.480000000 +0800
@@ -1 +1 @@
-From 78b52e3878c6496748cba2028f8cb9080435cb46 Mon Sep 17 00:00:00 2001
+From 162f87fce1d311e9a3d6556c583fa3aa7db0cf2f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 78b52e3878c6496748cba2028f8cb9080435cb46 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 5a1190d50e..3e85e5f629 100644
+index f4874632cd..b6d940c2ff 100644
@@ -24 +26 @@
-@@ -809,7 +809,7 @@ ice_init_mac_address(struct rte_eth_dev *dev)
+@@ -805,7 +805,7 @@ ice_init_mac_address(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix flow actions index in cache' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (99 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/ice/base: fix memory allocation for MAC addresses' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-12  1:54   ` Li Zhang
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/mlx5: support RSS expansion for IPv6 GRE' " Xueming Li
                   ` (126 subsequent siblings)
  227 siblings, 1 reply; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Li Zhang; +Cc: Luca Boccassi, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/229101313919b163516238b0d858dba9ff12a654

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 229101313919b163516238b0d858dba9ff12a654 Mon Sep 17 00:00:00 2001
From: Li Zhang <lizh@nvidia.com>
Date: Tue, 16 Mar 2021 14:05:17 +0200
Subject: [PATCH] net/mlx5: fix flow actions index in cache
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit d406aba8f1e8568c1bf0b1aad1d5756cead5df21 ]

When using port id or push VLAN action index to find
the action in cache, it will fail to find actions.
The root cause is the index is not saved in cache when
creating the port id action or push vlan action.
To fix these issues, update the index in cache when creating.

Fixes: 0fd5f82aaa07 ("net/mlx5: make port ID action cache thread safe")
Fixes: 3422af2af2e4 ("net/mlx5: make push VLAN action cache thread safe")

Signed-off-by: Li Zhang <lizh@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 353a8df24c..347c3a1c13 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -3039,6 +3039,7 @@ flow_dv_port_id_create_cb(struct mlx5_cache_list *list,
 				   "cannot create action");
 		return NULL;
 	}
+	cache->idx = idx;
 	return &cache->entry;
 }
 
@@ -3130,6 +3131,7 @@ flow_dv_push_vlan_create_cb(struct mlx5_cache_list *list,
 				   "cannot create push vlan action");
 		return NULL;
 	}
+	cache->idx = idx;
 	return &cache->entry;
 }
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.260567300 +0800
+++ 0103-net-mlx5-fix-flow-actions-index-in-cache.patch	2021-05-10 23:59:26.480000000 +0800
@@ -1 +1 @@
-From d406aba8f1e8568c1bf0b1aad1d5756cead5df21 Mon Sep 17 00:00:00 2001
+From 229101313919b163516238b0d858dba9ff12a654 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit d406aba8f1e8568c1bf0b1aad1d5756cead5df21 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 1a74d5ac2b..23e5849783 100644
+index 353a8df24c..347c3a1c13 100644
@@ -26 +28 @@
-@@ -3612,6 +3612,7 @@ flow_dv_port_id_create_cb(struct mlx5_cache_list *list,
+@@ -3039,6 +3039,7 @@ flow_dv_port_id_create_cb(struct mlx5_cache_list *list,
@@ -34 +36 @@
-@@ -3703,6 +3704,7 @@ flow_dv_push_vlan_create_cb(struct mlx5_cache_list *list,
+@@ -3130,6 +3131,7 @@ flow_dv_push_vlan_create_cb(struct mlx5_cache_list *list,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: support RSS expansion for IPv6 GRE' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (100 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/mlx5: fix flow actions index in cache' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix reporting undefined speed' " Xueming Li
                   ` (125 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Xiaoyu Min; +Cc: Luca Boccassi, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/530d228d3e4a360b996440ed118d6dcae3a34f96

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 530d228d3e4a360b996440ed118d6dcae3a34f96 Mon Sep 17 00:00:00 2001
From: Xiaoyu Min <jackmin@nvidia.com>
Date: Thu, 18 Mar 2021 11:03:57 +0000
Subject: [PATCH] net/mlx5: support RSS expansion for IPv6 GRE
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 048f0d45e3420cc3569f60e2d9b5ee447ae34fd1 ]

Currently RSS expansion only support IPv4 as GRE payload or
delivery protocol (RFC2784). IPv6 as GRE payload or delivery protocol
(RFC7676) is not supported.

This patch add RSS expansion for RFC7676 so PMD can expand flow item
correctly.

Fixes: f4b901a46aec ("net/mlx5: add flow GRE item")

Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 39be15bcd4..d574ad78c7 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -499,7 +499,8 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = {
 			(MLX5_EXPANSION_OUTER_IPV6_UDP,
 			 MLX5_EXPANSION_OUTER_IPV6_TCP,
 			 MLX5_EXPANSION_IPV4,
-			 MLX5_EXPANSION_IPV6),
+			 MLX5_EXPANSION_IPV6,
+			 MLX5_EXPANSION_GRE),
 		.type = RTE_FLOW_ITEM_TYPE_IPV6,
 		.rss_types = ETH_RSS_IPV6 | ETH_RSS_FRAG_IPV6 |
 			ETH_RSS_NONFRAG_IPV6_OTHER,
@@ -527,7 +528,8 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = {
 		.type = RTE_FLOW_ITEM_TYPE_VXLAN_GPE,
 	},
 	[MLX5_EXPANSION_GRE] = {
-		.next = MLX5_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV4),
+		.next = MLX5_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV4,
+						  MLX5_EXPANSION_IPV6),
 		.type = RTE_FLOW_ITEM_TYPE_GRE,
 	},
 	[MLX5_EXPANSION_MPLS] = {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.290714200 +0800
+++ 0104-net-mlx5-support-RSS-expansion-for-IPv6-GRE.patch	2021-05-10 23:59:26.490000000 +0800
@@ -1 +1 @@
-From 048f0d45e3420cc3569f60e2d9b5ee447ae34fd1 Mon Sep 17 00:00:00 2001
+From 530d228d3e4a360b996440ed118d6dcae3a34f96 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 048f0d45e3420cc3569f60e2d9b5ee447ae34fd1 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index d46fc333d1..de4e4a374a 100644
+index 39be15bcd4..d574ad78c7 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: fix reporting undefined speed' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (101 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/mlx5: support RSS expansion for IPv6 GRE' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix processing Tx offload flags' " Xueming Li
                   ` (124 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Huisong Li; +Cc: Luca Boccassi, Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/e29b92b99820f2873b218da9c6403221f907e830

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e29b92b99820f2873b218da9c6403221f907e830 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 23 Mar 2021 21:45:51 +0800
Subject: [PATCH] net/hns3: fix reporting undefined speed
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit b6579e3db794be36637a66e009199a1e7451e995 ]

There may be a case in future that the speed obtained from firmware
is undefined (such as, 400G or other rate), and link status of device is
up. At this case, PMD driver will reports 100Mbps to the user in the
"hns3_dev_link_update" API, which is unreasonable. Besides, if the
speed from firmware is zero, driver should report zero instead of
100Mbps.

Fixes: 59fad0f32135 ("net/hns3: support link update operation")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c    | 5 ++++-
 drivers/net/hns3/hns3_ethdev_vf.c | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 8f4ce58c0b..d8158cc56e 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2658,7 +2658,10 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
 		new_link.link_speed = mac->link_speed;
 		break;
 	default:
-		new_link.link_speed = ETH_SPEED_NUM_100M;
+		if (mac->link_status)
+			new_link.link_speed = ETH_SPEED_NUM_UNKNOWN;
+		else
+			new_link.link_speed = ETH_SPEED_NUM_NONE;
 		break;
 	}
 
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 9c84740d7b..366a1afa7d 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -2072,7 +2072,10 @@ hns3vf_dev_link_update(struct rte_eth_dev *eth_dev,
 		new_link.link_speed = mac->link_speed;
 		break;
 	default:
-		new_link.link_speed = ETH_SPEED_NUM_100M;
+		if (mac->link_status)
+			new_link.link_speed = ETH_SPEED_NUM_UNKNOWN;
+		else
+			new_link.link_speed = ETH_SPEED_NUM_NONE;
 		break;
 	}
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.317427100 +0800
+++ 0105-net-hns3-fix-reporting-undefined-speed.patch	2021-05-10 23:59:26.490000000 +0800
@@ -1 +1 @@
-From b6579e3db794be36637a66e009199a1e7451e995 Mon Sep 17 00:00:00 2001
+From e29b92b99820f2873b218da9c6403221f907e830 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit b6579e3db794be36637a66e009199a1e7451e995 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index d392f6d109..73b96c18d1 100644
+index 8f4ce58c0b..d8158cc56e 100644
@@ -27 +29 @@
-@@ -2725,7 +2725,10 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
+@@ -2658,7 +2658,10 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
@@ -40 +42 @@
-index 30788f5c32..6c3ddcc50e 100644
+index 9c84740d7b..366a1afa7d 100644
@@ -43 +45 @@
-@@ -2123,7 +2123,10 @@ hns3vf_dev_link_update(struct rte_eth_dev *eth_dev,
+@@ -2072,7 +2072,10 @@ hns3vf_dev_link_update(struct rte_eth_dev *eth_dev,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: fix processing Tx offload flags' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (102 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix reporting undefined speed' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix Tx checksum for UDP packets with special port' " Xueming Li
                   ` (123 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Chengchang Tang; +Cc: Luca Boccassi, Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/a7bf8336a2d7fed8e654a86dc99ef96bdec03294

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a7bf8336a2d7fed8e654a86dc99ef96bdec03294 Mon Sep 17 00:00:00 2001
From: Chengchang Tang <tangchengchang@huawei.com>
Date: Tue, 23 Mar 2021 21:45:53 +0800
Subject: [PATCH] net/hns3: fix processing Tx offload flags
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit a1d0caa92c7fe43cef7a9f6ac4772e0eecd4a011 ]

Currently, if the PKT_TX_TCP_SEG and PKT_TX_TCP_CKSUM offload flags set
in the same time, hns3 PMD can not process the descriptors correctly.

This patch fixes it by adding the processing of this situation.

Fixes: fb6eb9009f41 ("net/hns3: fix Tx checksum with fixed header length")

Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/hns3/hns3_rxtx.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 896567c791..77038ffe00 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -3083,6 +3083,7 @@ hns3_parse_l4_cksum_params(struct rte_mbuf *m, uint32_t *type_cs_vlan_tso_len)
 	uint32_t tmp;
 	/* Enable L4 checksum offloads */
 	switch (ol_flags & (PKT_TX_L4_MASK | PKT_TX_TCP_SEG)) {
+	case PKT_TX_TCP_CKSUM | PKT_TX_TCP_SEG:
 	case PKT_TX_TCP_CKSUM:
 	case PKT_TX_TCP_SEG:
 		tmp = *type_cs_vlan_tso_len;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.343421400 +0800
+++ 0106-net-hns3-fix-processing-Tx-offload-flags.patch	2021-05-10 23:59:26.490000000 +0800
@@ -1 +1 @@
-From a1d0caa92c7fe43cef7a9f6ac4772e0eecd4a011 Mon Sep 17 00:00:00 2001
+From a7bf8336a2d7fed8e654a86dc99ef96bdec03294 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit a1d0caa92c7fe43cef7a9f6ac4772e0eecd4a011 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index feeb702281..ff9cb158d7 100644
+index 896567c791..77038ffe00 100644
@@ -24 +26 @@
-@@ -3291,6 +3291,7 @@ hns3_parse_l4_cksum_params(struct rte_mbuf *m, uint32_t *type_cs_vlan_tso_len)
+@@ -3083,6 +3083,7 @@ hns3_parse_l4_cksum_params(struct rte_mbuf *m, uint32_t *type_cs_vlan_tso_len)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: fix Tx checksum for UDP packets with special port' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (103 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix processing Tx offload flags' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix link update when failed to get link info' " Xueming Li
                   ` (122 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Chengchang Tang; +Cc: Luca Boccassi, Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7537fafbc7da45d976cb2327b0dcb3706164d254

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7537fafbc7da45d976cb2327b0dcb3706164d254 Mon Sep 17 00:00:00 2001
From: Chengchang Tang <tangchengchang@huawei.com>
Date: Tue, 23 Mar 2021 21:45:54 +0800
Subject: [PATCH] net/hns3: fix Tx checksum for UDP packets with special port
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 8f01e2f847569e8c21f0628389a6e6a8a1c44a31 ]

For Kunpeng920 network engine, UDP packets with destination port 6081,
4789 or 4790 will be identified as tunnel packets. If the UDP CKSUM
offload is set in the mbuf, and the TX tunnel mask is not set, the
CKSUM of these packets will be wrong. In this case, the upper layer
user may not identify the packet as a tunnel packet, and processes it
as non-tunnel packet, and expect to offload the outer UDP CKSUM, so
they may not fill the outer L2/L3 length to mbuf. However, the HW
identifies these packet as tunnel packets and therefore offload the
inner UDP CKSUM. As a result, the inner and outer UDP CKSUM are
incorrect. And for non-tunnel UDP packets with preceding special
destination port will also exist similar checksum error.

For the new generation Kunpeng930 network engine, the above errata
have been fixed. Therefore, the concept of udp_cksum_mode is
introduced. There are two udp_cksum_mode for hns3 PMD,
HNS3_SPECIAL_PORT_HW_CKSUM_MODE means HW could solve the above
problem. And in HNS3_SPECIAL_PORT_SW_CKSUM_MODE, hns3 PMD will check
packets in the Tx prepare and perform the UDP CKSUM for such packets
to avoid a checksum error.

Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")

Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c |  2 +
 drivers/net/hns3/hns3_ethdev.h | 19 ++++++++++
 drivers/net/hns3/hns3_rxtx.c   | 68 ++++++++++++++++++++++++++++++++++
 drivers/net/hns3/hns3_rxtx.h   | 16 ++++++++
 4 files changed, 105 insertions(+)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index d8158cc56e..ab4fb2519a 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -3061,6 +3061,7 @@ hns3_get_capability(struct hns3_hw *hw)
 		hw->min_tx_pkt_len = HNS3_HIP08_MIN_TX_PKT_LEN;
 		pf->tqp_config_mode = HNS3_FIXED_MAX_TQP_NUM_MODE;
 		hw->rss_info.ipv6_sctp_offload_supported = false;
+		hw->udp_cksum_mode = HNS3_SPECIAL_PORT_SW_CKSUM_MODE;
 		return 0;
 	}
 
@@ -3079,6 +3080,7 @@ hns3_get_capability(struct hns3_hw *hw)
 	hw->min_tx_pkt_len = HNS3_HIP09_MIN_TX_PKT_LEN;
 	pf->tqp_config_mode = HNS3_FLEX_MAX_TQP_NUM_MODE;
 	hw->rss_info.ipv6_sctp_offload_supported = true;
+	hw->udp_cksum_mode = HNS3_SPECIAL_PORT_HW_CKSUM_MODE;
 
 	return 0;
 }
diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h
index 4c40df1cbb..f9f0e705f6 100644
--- a/drivers/net/hns3/hns3_ethdev.h
+++ b/drivers/net/hns3/hns3_ethdev.h
@@ -43,6 +43,9 @@
 #define HNS3_UNLIMIT_PROMISC_MODE       0
 #define HNS3_LIMIT_PROMISC_MODE         1
 
+#define HNS3_SPECIAL_PORT_SW_CKSUM_MODE         0
+#define HNS3_SPECIAL_PORT_HW_CKSUM_MODE         1
+
 #define HNS3_UC_MACADDR_NUM		128
 #define HNS3_VF_UC_MACADDR_NUM		48
 #define HNS3_MC_MACADDR_NUM		128
@@ -535,6 +538,22 @@ struct hns3_hw {
 	 */
 	uint8_t promisc_mode;
 	uint8_t max_non_tso_bd_num; /* max BD number of one non-TSO packet */
+	/*
+	 * udp checksum mode.
+	 * value range:
+	 *      HNS3_SPECIAL_PORT_HW_CKSUM_MODE/HNS3_SPECIAL_PORT_SW_CKSUM_MODE
+	 *
+	 *  - HNS3_SPECIAL_PORT_SW_CKSUM_MODE
+	 *     In this mode, HW can not do checksum for special UDP port like
+	 *     4789, 4790, 6081 for non-tunnel UDP packets and UDP tunnel
+	 *     packets without the PKT_TX_TUNEL_MASK in the mbuf. So, PMD need
+	 *     do the checksum for these packets to avoid a checksum error.
+	 *
+	 *  - HNS3_SPECIAL_PORT_HW_CKSUM_MODE
+	 *     In this mode, HW does not have the preceding problems and can
+	 *     directly calculate the checksum of these UDP packets.
+	 */
+	uint8_t udp_cksum_mode;
 
 	struct hns3_port_base_vlan_config port_base_vlan_cfg;
 	/*
diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 77038ffe00..2714f28f1d 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -5,6 +5,7 @@
 #include <rte_bus_pci.h>
 #include <rte_common.h>
 #include <rte_cycles.h>
+#include <rte_geneve.h>
 #include <rte_vxlan.h>
 #include <rte_ethdev_driver.h>
 #include <rte_io.h>
@@ -2640,6 +2641,7 @@ hns3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t nb_desc,
 					     HNS3_RING_TX_TAIL_REG);
 	txq->min_tx_pkt_len = hw->min_tx_pkt_len;
 	txq->tso_mode = hw->tso_mode;
+	txq->udp_cksum_mode = hw->udp_cksum_mode;
 	txq->over_length_pkt_cnt = 0;
 	txq->exceed_limit_bd_pkt_cnt = 0;
 	txq->exceed_limit_bd_reassem_fail = 0;
@@ -3293,6 +3295,69 @@ hns3_vld_vlan_chk(struct hns3_tx_queue *txq, struct rte_mbuf *m)
 }
 #endif
 
+static uint16_t
+hns3_udp_cksum_help(struct rte_mbuf *m)
+{
+	uint64_t ol_flags = m->ol_flags;
+	uint16_t cksum = 0;
+	uint32_t l4_len;
+
+	if (ol_flags & PKT_TX_IPV4) {
+		struct rte_ipv4_hdr *ipv4_hdr = rte_pktmbuf_mtod_offset(m,
+				struct rte_ipv4_hdr *, m->l2_len);
+		l4_len = rte_be_to_cpu_16(ipv4_hdr->total_length) - m->l3_len;
+	} else {
+		struct rte_ipv6_hdr *ipv6_hdr = rte_pktmbuf_mtod_offset(m,
+				struct rte_ipv6_hdr *, m->l2_len);
+		l4_len = rte_be_to_cpu_16(ipv6_hdr->payload_len);
+	}
+
+	rte_raw_cksum_mbuf(m, m->l2_len + m->l3_len, l4_len, &cksum);
+
+	cksum = ~cksum;
+	/*
+	 * RFC 768:If the computed checksum is zero for UDP, it is transmitted
+	 * as all ones
+	 */
+	if (cksum == 0)
+		cksum = 0xffff;
+
+	return (uint16_t)cksum;
+}
+
+static bool
+hns3_validate_tunnel_cksum(struct hns3_tx_queue *tx_queue, struct rte_mbuf *m)
+{
+	uint64_t ol_flags = m->ol_flags;
+	struct rte_udp_hdr *udp_hdr;
+	uint16_t dst_port;
+
+	if (tx_queue->udp_cksum_mode == HNS3_SPECIAL_PORT_HW_CKSUM_MODE ||
+	    ol_flags & PKT_TX_TUNNEL_MASK ||
+	    (ol_flags & PKT_TX_L4_MASK) != PKT_TX_UDP_CKSUM)
+		return true;
+	/*
+	 * A UDP packet with the same dst_port as VXLAN\VXLAN_GPE\GENEVE will
+	 * be recognized as a tunnel packet in HW. In this case, if UDP CKSUM
+	 * offload is set and the tunnel mask has not been set, the CKSUM will
+	 * be wrong since the header length is wrong and driver should complete
+	 * the CKSUM to avoid CKSUM error.
+	 */
+	udp_hdr = rte_pktmbuf_mtod_offset(m, struct rte_udp_hdr *,
+						m->l2_len + m->l3_len);
+	dst_port = rte_be_to_cpu_16(udp_hdr->dst_port);
+	switch (dst_port) {
+	case RTE_VXLAN_DEFAULT_PORT:
+	case RTE_VXLAN_GPE_DEFAULT_PORT:
+	case RTE_GENEVE_DEFAULT_PORT:
+		udp_hdr->dgram_cksum = hns3_udp_cksum_help(m);
+		m->ol_flags = ol_flags & ~PKT_TX_L4_MASK;
+		return false;
+	default:
+		return true;
+	}
+}
+
 static int
 hns3_prep_pkt_proc(struct hns3_tx_queue *tx_queue, struct rte_mbuf *m)
 {
@@ -3337,6 +3402,9 @@ hns3_prep_pkt_proc(struct hns3_tx_queue *tx_queue, struct rte_mbuf *m)
 		return ret;
 	}
 
+	if (!hns3_validate_tunnel_cksum(tx_queue, m))
+		return 0;
+
 	hns3_outer_header_cksum_prepare(m);
 
 	return 0;
diff --git a/drivers/net/hns3/hns3_rxtx.h b/drivers/net/hns3/hns3_rxtx.h
index 5650a97c3a..f7c60adc2e 100644
--- a/drivers/net/hns3/hns3_rxtx.h
+++ b/drivers/net/hns3/hns3_rxtx.h
@@ -387,6 +387,22 @@ struct hns3_tx_queue {
 	 *     not need to recalculate it.
 	 */
 	uint8_t tso_mode;
+	/*
+	 * udp checksum mode.
+	 * value range:
+	 *      HNS3_SPECIAL_PORT_HW_CKSUM_MODE/HNS3_SPECIAL_PORT_SW_CKSUM_MODE
+	 *
+	 *  - HNS3_SPECIAL_PORT_SW_CKSUM_MODE
+	 *     In this mode, HW can not do checksum for special UDP port like
+	 *     4789, 4790, 6081 for non-tunnel UDP packets and UDP tunnel
+	 *     packets without the PKT_TX_TUNEL_MASK in the mbuf. So, PMD need
+	 *     do the checksum for these packets to avoid a checksum error.
+	 *
+	 *  - HNS3_SPECIAL_PORT_HW_CKSUM_MODE
+	 *     In this mode, HW does not have the preceding problems and can
+	 *     directly calculate the checksum of these UDP packets.
+	 */
+	uint8_t udp_cksum_mode;
 	/*
 	 * The minimum length of the packet supported by hardware in the Tx
 	 * direction.
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.369384800 +0800
+++ 0107-net-hns3-fix-Tx-checksum-for-UDP-packets-with-specia.patch	2021-05-10 23:59:26.500000000 +0800
@@ -1 +1 @@
-From 8f01e2f847569e8c21f0628389a6e6a8a1c44a31 Mon Sep 17 00:00:00 2001
+From 7537fafbc7da45d976cb2327b0dcb3706164d254 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 8f01e2f847569e8c21f0628389a6e6a8a1c44a31 ]
@@ -27 +29,0 @@
-Cc: stable@dpdk.org
@@ -39 +41 @@
-index 73b96c18d1..9a57cc6b62 100644
+index d8158cc56e..ab4fb2519a 100644
@@ -42 +44 @@
-@@ -3129,6 +3129,7 @@ hns3_get_capability(struct hns3_hw *hw)
+@@ -3061,6 +3061,7 @@ hns3_get_capability(struct hns3_hw *hw)
@@ -50 +52 @@
-@@ -3148,6 +3149,7 @@ hns3_get_capability(struct hns3_hw *hw)
+@@ -3079,6 +3080,7 @@ hns3_get_capability(struct hns3_hw *hw)
@@ -59 +61 @@
-index d9cd96fa8a..ac255a3ff9 100644
+index 4c40df1cbb..f9f0e705f6 100644
@@ -62 +64 @@
-@@ -47,6 +47,9 @@
+@@ -43,6 +43,9 @@
@@ -72,3 +74,3 @@
-@@ -567,6 +570,22 @@ struct hns3_hw {
- 	uint8_t drop_stats_mode;
- 
+@@ -535,6 +538,22 @@ struct hns3_hw {
+ 	 */
+ 	uint8_t promisc_mode;
@@ -96 +98 @@
-index ff9cb158d7..5bb35e14a1 100644
+index 77038ffe00..2714f28f1d 100644
@@ -105 +107 @@
- #include <ethdev_driver.h>
+ #include <rte_ethdev_driver.h>
@@ -107 +109 @@
-@@ -2845,6 +2846,7 @@ hns3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t nb_desc,
+@@ -2640,6 +2641,7 @@ hns3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t nb_desc,
@@ -112,4 +114,4 @@
- 	memset(&txq->basic_stats, 0, sizeof(struct hns3_tx_basic_stats));
- 	memset(&txq->dfx_stats, 0, sizeof(struct hns3_tx_dfx_stats));
- 
-@@ -3548,6 +3550,69 @@ hns3_vld_vlan_chk(struct hns3_tx_queue *txq, struct rte_mbuf *m)
+ 	txq->over_length_pkt_cnt = 0;
+ 	txq->exceed_limit_bd_pkt_cnt = 0;
+ 	txq->exceed_limit_bd_reassem_fail = 0;
+@@ -3293,6 +3295,69 @@ hns3_vld_vlan_chk(struct hns3_tx_queue *txq, struct rte_mbuf *m)
@@ -185 +187 @@
-@@ -3592,6 +3657,9 @@ hns3_prep_pkt_proc(struct hns3_tx_queue *tx_queue, struct rte_mbuf *m)
+@@ -3337,6 +3402,9 @@ hns3_prep_pkt_proc(struct hns3_tx_queue *tx_queue, struct rte_mbuf *m)
@@ -196 +198 @@
-index f9b30485fe..6689397605 100644
+index 5650a97c3a..f7c60adc2e 100644
@@ -199 +201 @@
-@@ -464,6 +464,22 @@ struct hns3_tx_queue {
+@@ -387,6 +387,22 @@ struct hns3_tx_queue {

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: fix link update when failed to get link info' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (104 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix Tx checksum for UDP packets with special port' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix long task queue pairs reset time' " Xueming Li
                   ` (121 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Huisong Li; +Cc: Luca Boccassi, Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/15b6974306cc12c09731e313f9b0f2be369fc84b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 15b6974306cc12c09731e313f9b0f2be369fc84b Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 23 Mar 2021 21:45:55 +0800
Subject: [PATCH] net/hns3: fix link update when failed to get link info
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 398ee80192b1d44026bcf02a27dd62a6d3df236d ]

In the "hns3_dev_link_update" API, the link information of the port is
obtained first, and then 'dev_link' in dev->data is updated. When the
driver is resetting or fails to obtain link info, the current driver
still reports the previous link info to the user. This may cause that
the dev->data->dev_link may be inconsistent with the hw link status.

Therefore, the link status consistency between the hardware, driver,
and framework can be ensured in this interface regardless of whether
the driver is normal or abnormal.

Fixes: 109e4dd1bd7a ("net/hns3: get link state change through mailbox")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 55 +++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 17 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index ab4fb2519a..ba26230829 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2631,20 +2631,22 @@ hns3_fw_version_get(struct rte_eth_dev *eth_dev, char *fw_version,
 }
 
 static int
-hns3_dev_link_update(struct rte_eth_dev *eth_dev,
-		     __rte_unused int wait_to_complete)
+hns3_update_port_link_info(struct rte_eth_dev *eth_dev)
 {
-	struct hns3_adapter *hns = eth_dev->data->dev_private;
-	struct hns3_hw *hw = &hns->hw;
-	struct hns3_mac *mac = &hw->mac;
-	struct rte_eth_link new_link;
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 
-	if (!hns3_is_reset_pending(hns)) {
-		hns3_update_link_status(hw);
-		hns3_update_link_info(eth_dev);
-	}
+	(void)hns3_update_link_status(hw);
+
+	return hns3_update_link_info(eth_dev);
+}
+
+static void
+hns3_setup_linkstatus(struct rte_eth_dev *eth_dev,
+		      struct rte_eth_link *new_link)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
+	struct hns3_mac *mac = &hw->mac;
 
-	memset(&new_link, 0, sizeof(new_link));
 	switch (mac->link_speed) {
 	case ETH_SPEED_NUM_10M:
 	case ETH_SPEED_NUM_100M:
@@ -2655,20 +2657,39 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
 	case ETH_SPEED_NUM_50G:
 	case ETH_SPEED_NUM_100G:
 	case ETH_SPEED_NUM_200G:
-		new_link.link_speed = mac->link_speed;
+		new_link->link_speed = mac->link_speed;
 		break;
 	default:
 		if (mac->link_status)
-			new_link.link_speed = ETH_SPEED_NUM_UNKNOWN;
+			new_link->link_speed = ETH_SPEED_NUM_UNKNOWN;
 		else
-			new_link.link_speed = ETH_SPEED_NUM_NONE;
+			new_link->link_speed = ETH_SPEED_NUM_NONE;
 		break;
 	}
 
-	new_link.link_duplex = mac->link_duplex;
-	new_link.link_status = mac->link_status ? ETH_LINK_UP : ETH_LINK_DOWN;
-	new_link.link_autoneg =
+	new_link->link_duplex = mac->link_duplex;
+	new_link->link_status = mac->link_status ? ETH_LINK_UP : ETH_LINK_DOWN;
+	new_link->link_autoneg =
 	    !(eth_dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED);
+}
+
+static int
+hns3_dev_link_update(struct rte_eth_dev *eth_dev,
+		     __rte_unused int wait_to_complete)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
+	struct hns3_mac *mac = &hw->mac;
+	struct rte_eth_link new_link;
+	int ret;
+
+	ret = hns3_update_port_link_info(eth_dev);
+	if (ret) {
+		mac->link_status = ETH_LINK_DOWN;
+		hns3_err(hw, "failed to get port link info, ret = %d.", ret);
+	}
+
+	memset(&new_link, 0, sizeof(new_link));
+	hns3_setup_linkstatus(eth_dev, &new_link);
 
 	return rte_eth_linkstatus_set(eth_dev, &new_link);
 }
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.399467100 +0800
+++ 0108-net-hns3-fix-link-update-when-failed-to-get-link-inf.patch	2021-05-10 23:59:26.500000000 +0800
@@ -1 +1 @@
-From 398ee80192b1d44026bcf02a27dd62a6d3df236d Mon Sep 17 00:00:00 2001
+From 15b6974306cc12c09731e313f9b0f2be369fc84b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 398ee80192b1d44026bcf02a27dd62a6d3df236d ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 9a57cc6b62..9c718082b0 100644
+index ab4fb2519a..ba26230829 100644
@@ -29 +31 @@
-@@ -2698,20 +2698,22 @@ hns3_fw_version_get(struct rte_eth_dev *eth_dev, char *fw_version,
+@@ -2631,20 +2631,22 @@ hns3_fw_version_get(struct rte_eth_dev *eth_dev, char *fw_version,
@@ -63 +65 @@
-@@ -2722,20 +2724,39 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
+@@ -2655,20 +2657,39 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: fix long task queue pairs reset time' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (105 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix link update when failed to get link info' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hinic: fix crash in secondary process' " Xueming Li
                   ` (120 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Chengchang Tang; +Cc: Luca Boccassi, Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/a1b0bff2d5ac0df4c74ff05afaa97eeef799510b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a1b0bff2d5ac0df4c74ff05afaa97eeef799510b Mon Sep 17 00:00:00 2001
From: Chengchang Tang <tangchengchang@huawei.com>
Date: Tue, 23 Mar 2021 21:45:56 +0800
Subject: [PATCH] net/hns3: fix long task queue pairs reset time
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 6911e7c22c61a7071a534b198f79dc4c6d525445 ]

Currently, the queue reset process needs to be performed one by one,
which is inefficient. However, the queues reset in the same function is
almost at the same stage. To optimize the queue reset process, a new
function has been added to the firmware command HNS3_OPC_CFG_RST_TRIGGER
to reset all queues in the same function at a time. And the related
queue reset MBX message is adjusted in the same way too.

Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")

Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/hns3/hns3_cmd.h  |   8 ++-
 drivers/net/hns3/hns3_rxtx.c | 125 ++++++++++++++++++++++++++++++-----
 2 files changed, 114 insertions(+), 19 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.h b/drivers/net/hns3/hns3_cmd.h
index 20c373590f..2d0bab000e 100644
--- a/drivers/net/hns3/hns3_cmd.h
+++ b/drivers/net/hns3/hns3_cmd.h
@@ -856,10 +856,16 @@ struct hns3_reset_tqp_queue_cmd {
 
 #define HNS3_CFG_RESET_MAC_B		3
 #define HNS3_CFG_RESET_FUNC_B		7
+#define HNS3_CFG_RESET_RCB_B		1
 struct hns3_reset_cmd {
 	uint8_t mac_func_reset;
 	uint8_t fun_reset_vfid;
-	uint8_t rsv[22];
+	uint8_t fun_reset_rcb;
+	uint8_t rsv1;
+	uint16_t fun_reset_rcb_vqid_start;
+	uint16_t fun_reset_rcb_vqid_num;
+	uint8_t fun_reset_rcb_return_status;
+	uint8_t rsv2[15];
 };
 
 #define HNS3_QUERY_DEV_SPECS_BD_NUM		4
diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 2714f28f1d..6ba83f421c 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -629,10 +629,6 @@ hns3pf_reset_tqp(struct hns3_hw *hw, uint16_t queue_id)
 	uint64_t end;
 	int ret;
 
-	ret = hns3_tqp_enable(hw, queue_id, false);
-	if (ret)
-		return ret;
-
 	/*
 	 * In current version VF is not supported when PF is driven by DPDK
 	 * driver, all task queue pairs are mapped to PF function, so PF's queue
@@ -679,11 +675,6 @@ hns3vf_reset_tqp(struct hns3_hw *hw, uint16_t queue_id)
 	uint8_t msg_data[2];
 	int ret;
 
-	/* Disable VF's queue before send queue reset msg to PF */
-	ret = hns3_tqp_enable(hw, queue_id, false);
-	if (ret)
-		return ret;
-
 	memcpy(msg_data, &queue_id, sizeof(uint16_t));
 
 	ret = hns3_send_mbx_msg(hw, HNS3_MBX_QUEUE_RESET, 0, msg_data,
@@ -695,14 +686,105 @@ hns3vf_reset_tqp(struct hns3_hw *hw, uint16_t queue_id)
 }
 
 static int
-hns3_reset_tqp(struct hns3_adapter *hns, uint16_t queue_id)
+hns3_reset_rcb_cmd(struct hns3_hw *hw, uint8_t *reset_status)
 {
-	struct hns3_hw *hw = &hns->hw;
+	struct hns3_reset_cmd *req;
+	struct hns3_cmd_desc desc;
+	int ret;
 
-	if (hns->is_vf)
-		return hns3vf_reset_tqp(hw, queue_id);
-	else
-		return hns3pf_reset_tqp(hw, queue_id);
+	hns3_cmd_setup_basic_desc(&desc, HNS3_OPC_CFG_RST_TRIGGER, false);
+	req = (struct hns3_reset_cmd *)desc.data;
+	hns3_set_bit(req->mac_func_reset, HNS3_CFG_RESET_RCB_B, 1);
+
+	/*
+	 * The start qid should be the global qid of the first tqp of the
+	 * function which should be reset in this port. Since our PF not
+	 * support take over of VFs, so we only need to reset function 0,
+	 * and its start qid is always 0.
+	 */
+	req->fun_reset_rcb_vqid_start = rte_cpu_to_le_16(0);
+	req->fun_reset_rcb_vqid_num = rte_cpu_to_le_16(hw->cfg_max_queues);
+
+	ret = hns3_cmd_send(hw, &desc, 1);
+	if (ret) {
+		hns3_err(hw, "fail to send rcb reset cmd, ret = %d.", ret);
+		return ret;
+	}
+
+	*reset_status = req->fun_reset_rcb_return_status;
+	return 0;
+}
+
+static int
+hns3pf_reset_all_tqps(struct hns3_hw *hw)
+{
+#define HNS3_RESET_RCB_NOT_SUPPORT	0U
+#define HNS3_RESET_ALL_TQP_SUCCESS	1U
+	uint8_t reset_status;
+	int ret;
+	int i;
+
+	ret = hns3_reset_rcb_cmd(hw, &reset_status);
+	if (ret)
+		return ret;
+
+	/*
+	 * If the firmware version is low, it may not support the rcb reset
+	 * which means reset all the tqps at a time. In this case, we should
+	 * reset tqps one by one.
+	 */
+	if (reset_status == HNS3_RESET_RCB_NOT_SUPPORT) {
+		for (i = 0; i < hw->cfg_max_queues; i++) {
+			ret = hns3pf_reset_tqp(hw, i);
+			if (ret) {
+				hns3_err(hw,
+				  "fail to reset tqp, queue_id = %d, ret = %d.",
+				  i, ret);
+				return ret;
+			}
+		}
+	} else if (reset_status != HNS3_RESET_ALL_TQP_SUCCESS) {
+		hns3_err(hw, "fail to reset all tqps, reset_status = %u.",
+				reset_status);
+		return -EIO;
+	}
+
+	return 0;
+}
+
+static int
+hns3vf_reset_all_tqps(struct hns3_hw *hw)
+{
+#define HNS3VF_RESET_ALL_TQP_DONE	1U
+	uint8_t reset_status;
+	uint8_t msg_data[2];
+	int ret;
+	int i;
+
+	memset(msg_data, 0, sizeof(uint16_t));
+	ret = hns3_send_mbx_msg(hw, HNS3_MBX_QUEUE_RESET, 0, msg_data,
+				sizeof(msg_data), true, &reset_status,
+				sizeof(reset_status));
+	if (ret) {
+		hns3_err(hw, "fail to send rcb reset mbx, ret = %d.", ret);
+		return ret;
+	}
+
+	if (reset_status == HNS3VF_RESET_ALL_TQP_DONE)
+		return 0;
+
+	/*
+	 * If the firmware version or kernel PF version is low, it may not
+	 * support the rcb reset which means reset all the tqps at a time.
+	 * In this case, we should reset tqps one by one.
+	 */
+	for (i = 1; i < hw->cfg_max_queues; i++) {
+		ret = hns3vf_reset_tqp(hw, i);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
 }
 
 int
@@ -711,14 +793,21 @@ hns3_reset_all_tqps(struct hns3_adapter *hns)
 	struct hns3_hw *hw = &hns->hw;
 	int ret, i;
 
+	/* Disable all queues before reset all queues */
 	for (i = 0; i < hw->cfg_max_queues; i++) {
-		ret = hns3_reset_tqp(hns, i);
+		ret = hns3_tqp_enable(hw, i, false);
 		if (ret) {
-			hns3_err(hw, "Failed to reset No.%d queue: %d", i, ret);
+			hns3_err(hw,
+			    "fail to disable tqps before tqps reset, ret = %d.",
+			    ret);
 			return ret;
 		}
 	}
-	return 0;
+
+	if (hns->is_vf)
+		return hns3vf_reset_all_tqps(hw);
+	else
+		return hns3pf_reset_all_tqps(hw);
 }
 
 static int
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.424338600 +0800
+++ 0109-net-hns3-fix-long-task-queue-pairs-reset-time.patch	2021-05-10 23:59:26.500000000 +0800
@@ -1 +1 @@
-From 6911e7c22c61a7071a534b198f79dc4c6d525445 Mon Sep 17 00:00:00 2001
+From a1b0bff2d5ac0df4c74ff05afaa97eeef799510b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 6911e7c22c61a7071a534b198f79dc4c6d525445 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index e704d0c40b..30aca82d32 100644
+index 20c373590f..2d0bab000e 100644
@@ -27 +29 @@
-@@ -933,10 +933,16 @@ struct hns3_reset_tqp_queue_cmd {
+@@ -856,10 +856,16 @@ struct hns3_reset_tqp_queue_cmd {
@@ -46 +48 @@
-index 5bb35e14a1..ce5d852773 100644
+index 2714f28f1d..6ba83f421c 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hinic: fix crash in secondary process' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (106 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hns3: fix long task queue pairs reset time' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/sfc: fix error path inconsistency' " Xueming Li
                   ` (119 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Guoyang Zhou; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/de81fe259ae6738425d3f761028ec8fe96f70f8c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From de81fe259ae6738425d3f761028ec8fe96f70f8c Mon Sep 17 00:00:00 2001
From: Guoyang Zhou <zhouguoyang@huawei.com>
Date: Tue, 23 Mar 2021 21:17:51 +0800
Subject: [PATCH] net/hinic: fix crash in secondary process
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 4c670dfaa417bc5604c9c58b505a74e2725acdb2 ]

Some apps, such as fstack, will use secondary process to access the
memory of eth_dev_ops, and they want to get the info of dev, but hinic
driver does not initialized it when in secondary process.

Fixes: 66f64dd6dc86 ("net/hinic: fix secondary process")

Signed-off-by: Guoyang Zhou <zhouguoyang@huawei.com>
---
 drivers/net/hinic/base/hinic_compat.h | 25 ++++++++-----------------
 drivers/net/hinic/hinic_pmd_ethdev.c  |  5 +++++
 2 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/drivers/net/hinic/base/hinic_compat.h b/drivers/net/hinic/base/hinic_compat.h
index 6dd210ec06..aea332046e 100644
--- a/drivers/net/hinic/base/hinic_compat.h
+++ b/drivers/net/hinic/base/hinic_compat.h
@@ -171,6 +171,7 @@ static inline u32 readl(const volatile void *addr)
 #else
 #define CLOCK_TYPE CLOCK_MONOTONIC
 #endif
+#define HINIC_MUTEX_TIMEOUT  10
 
 static inline unsigned long clock_gettime_ms(void)
 {
@@ -225,24 +226,14 @@ static inline int hinic_mutex_destroy(pthread_mutex_t *pthreadmutex)
 static inline int hinic_mutex_lock(pthread_mutex_t *pthreadmutex)
 {
 	int err;
+	struct timespec tout;
 
-	err = pthread_mutex_lock(pthreadmutex);
-	if (!err) {
-		return err;
-	} else if (err == EOWNERDEAD) {
-		PMD_DRV_LOG(ERR, "Mutex lock failed. (ErrorNo=%d)", errno);
-#if defined(__GLIBC__)
-#if __GLIBC_PREREQ(2, 12)
-		(void)pthread_mutex_consistent(pthreadmutex);
-#else
-		(void)pthread_mutex_consistent_np(pthreadmutex);
-#endif
-#else
-		(void)pthread_mutex_consistent(pthreadmutex);
-#endif
-	} else {
-		PMD_DRV_LOG(ERR, "Mutex lock failed. (ErrorNo=%d)", errno);
-	}
+	(void)clock_gettime(CLOCK_TYPE, &tout);
+
+	tout.tv_sec += HINIC_MUTEX_TIMEOUT;
+	err = pthread_mutex_timedlock(pthreadmutex, &tout);
+	if (err)
+		PMD_DRV_LOG(ERR, "Mutex lock failed. (ErrorNo=%d)", err);
 
 	return err;
 }
diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c b/drivers/net/hinic/hinic_pmd_ethdev.c
index 5a2c171099..f1b3ba3927 100644
--- a/drivers/net/hinic/hinic_pmd_ethdev.c
+++ b/drivers/net/hinic/hinic_pmd_ethdev.c
@@ -3085,6 +3085,10 @@ static const struct eth_dev_ops hinic_pmd_vf_ops = {
 	.filter_ctrl                   = hinic_dev_filter_ctrl,
 };
 
+static const struct eth_dev_ops hinic_dev_sec_ops = {
+	.dev_infos_get                 = hinic_dev_infos_get,
+};
+
 static int hinic_func_init(struct rte_eth_dev *eth_dev)
 {
 	struct rte_pci_device *pci_dev;
@@ -3099,6 +3103,7 @@ static int hinic_func_init(struct rte_eth_dev *eth_dev)
 
 	/* EAL is SECONDARY and eth_dev is already created */
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+		eth_dev->dev_ops = &hinic_dev_sec_ops;
 		PMD_DRV_LOG(INFO, "Initialize %s in secondary process",
 			    eth_dev->data->name);
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.447945000 +0800
+++ 0110-net-hinic-fix-crash-in-secondary-process.patch	2021-05-10 23:59:26.500000000 +0800
@@ -1 +1 @@
-From 4c670dfaa417bc5604c9c58b505a74e2725acdb2 Mon Sep 17 00:00:00 2001
+From de81fe259ae6738425d3f761028ec8fe96f70f8c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 4c670dfaa417bc5604c9c58b505a74e2725acdb2 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -64 +66 @@
-index 2352dd1615..b5a36a863b 100644
+index 5a2c171099..f1b3ba3927 100644
@@ -67,2 +69,2 @@
-@@ -3063,6 +3063,10 @@ static const struct eth_dev_ops hinic_pmd_vf_ops = {
- 	.flow_ops_get                  = hinic_dev_flow_ops_get,
+@@ -3085,6 +3085,10 @@ static const struct eth_dev_ops hinic_pmd_vf_ops = {
+ 	.filter_ctrl                   = hinic_dev_filter_ctrl,
@@ -78 +80 @@
-@@ -3077,6 +3081,7 @@ static int hinic_func_init(struct rte_eth_dev *eth_dev)
+@@ -3099,6 +3103,7 @@ static int hinic_func_init(struct rte_eth_dev *eth_dev)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/sfc: fix error path inconsistency' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (107 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/hinic: fix crash in secondary process' " Xueming Li
@ 2021-05-10 16:00 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'app/testpmd: fix Tx/Rx descriptor query error log' " Xueming Li
                   ` (118 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:00 UTC (permalink / raw)
  To: Ivan Malov; +Cc: Luca Boccassi, Andrew Rybchenko, Andy Moreton, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/cd33dd08a7ac1e8b910786dbef0275e306a5d03c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From cd33dd08a7ac1e8b910786dbef0275e306a5d03c Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov@oktetlabs.ru>
Date: Fri, 26 Mar 2021 12:39:27 +0300
Subject: [PATCH] net/sfc: fix error path inconsistency
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 85a9c42499fa97b9bee12a95a8477d34cec277ec ]

At the fail label, there's a statement to set general errno and
error message. However, before the label is reached, a custom
error message can be set by the code which parses actions.
This custom (action-specific) message, when present,
must not be replaced by the general one.

Fixes: 662286ae61d2 ("net/sfc: add actions parsing stub to MAE backend")

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
---
 drivers/net/sfc/sfc_mae.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index 15c5c39758..42d1612302 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -2101,6 +2101,8 @@ sfc_mae_rule_parse_actions(struct sfc_adapter *sa,
 	efx_mae_actions_t *spec;
 	int rc;
 
+	rte_errno = 0;
+
 	if (actions == NULL) {
 		return rte_flow_error_set(error, EINVAL,
 				RTE_FLOW_ERROR_TYPE_ACTION_NUM, NULL,
@@ -2144,7 +2146,7 @@ fail_rule_parse_action:
 	efx_mae_action_set_spec_fini(sa->nic, spec);
 
 fail_action_set_spec_init:
-	if (rc > 0) {
+	if (rc > 0 && rte_errno == 0) {
 		rc = rte_flow_error_set(error, rc,
 			RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
 			NULL, "Failed to process the action");
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.473198200 +0800
+++ 0111-net-sfc-fix-error-path-inconsistency.patch	2021-05-10 23:59:26.500000000 +0800
@@ -1 +1 @@
-From 85a9c42499fa97b9bee12a95a8477d34cec277ec Mon Sep 17 00:00:00 2001
+From cd33dd08a7ac1e8b910786dbef0275e306a5d03c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 85a9c42499fa97b9bee12a95a8477d34cec277ec ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 8afa093414..4dafe3dcd9 100644
+index 15c5c39758..42d1612302 100644
@@ -26 +28 @@
-@@ -2634,6 +2634,8 @@ sfc_mae_rule_parse_actions(struct sfc_adapter *sa,
+@@ -2101,6 +2101,8 @@ sfc_mae_rule_parse_actions(struct sfc_adapter *sa,
@@ -35 +37 @@
-@@ -2690,7 +2692,7 @@ fail_rule_parse_action:
+@@ -2144,7 +2146,7 @@ fail_rule_parse_action:

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'app/testpmd: fix Tx/Rx descriptor query error log' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (108 preceding siblings ...)
  2021-05-10 16:00 ` [dpdk-stable] patch 'net/sfc: fix error path inconsistency' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/i40e: fix parsing packet type for NEON' " Xueming Li
                   ` (117 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Hongbo Zheng; +Cc: Luca Boccassi, Min Hu, Xiaoyun Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/38824647ed54b9a9226b8595cea2d306c1cd207e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 38824647ed54b9a9226b8595cea2d306c1cd207e Mon Sep 17 00:00:00 2001
From: Hongbo Zheng <zhenghongbo3@huawei.com>
Date: Mon, 29 Mar 2021 14:46:43 +0800
Subject: [PATCH] app/testpmd: fix Tx/Rx descriptor query error log
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 0e8f3489940aae7a29112b0de745bb5205239c83 ]

This patch adds more err info for Tx/Rx descriptor query command.

Fixes: fae9aa717d6c ("app/testpmd: support checking descriptor status")

Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
 app/test-pmd/cmdline.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index fa2a0c78e6..58b591b292 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -16613,7 +16613,8 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,
 		rc = rte_eth_rx_descriptor_status(res->cmd_pid, res->cmd_qid,
 					     res->cmd_did);
 		if (rc < 0) {
-			printf("Invalid queueid = %d\n", res->cmd_qid);
+			printf("Invalid input: queue id = %d, desc id = %d\n",
+			       res->cmd_qid, res->cmd_did);
 			return;
 		}
 		if (rc == RTE_ETH_RX_DESC_AVAIL)
@@ -16626,7 +16627,8 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,
 		rc = rte_eth_tx_descriptor_status(res->cmd_pid, res->cmd_qid,
 					     res->cmd_did);
 		if (rc < 0) {
-			printf("Invalid queueid = %d\n", res->cmd_qid);
+			printf("Invalid input: queue id = %d, desc id = %d\n",
+			       res->cmd_qid, res->cmd_did);
 			return;
 		}
 		if (rc == RTE_ETH_TX_DESC_FULL)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.496985100 +0800
+++ 0112-app-testpmd-fix-Tx-Rx-descriptor-query-error-log.patch	2021-05-10 23:59:26.510000000 +0800
@@ -1 +1 @@
-From 0e8f3489940aae7a29112b0de745bb5205239c83 Mon Sep 17 00:00:00 2001
+From 38824647ed54b9a9226b8595cea2d306c1cd207e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 0e8f3489940aae7a29112b0de745bb5205239c83 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 14110eb2e4..f44116b087 100644
+index fa2a0c78e6..58b591b292 100644
@@ -22 +24 @@
-@@ -16629,7 +16629,8 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,
+@@ -16613,7 +16613,8 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,
@@ -32 +34 @@
-@@ -16642,7 +16643,8 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,
+@@ -16626,7 +16627,8 @@ cmd_show_rx_tx_desc_status_parsed(void *parsed_result,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/i40e: fix parsing packet type for NEON' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (109 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'app/testpmd: fix Tx/Rx descriptor query error log' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/iavf: fix packet length parsing in AVX512' " Xueming Li
                   ` (116 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Feifei Wang; +Cc: Luca Boccassi, Ruifeng Wang, Kathleen Capella, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7f8de7322818b057d8c0dd24ebbd2ef8ab6b9a39

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7f8de7322818b057d8c0dd24ebbd2ef8ab6b9a39 Mon Sep 17 00:00:00 2001
From: Feifei Wang <feifei.wang2@arm.com>
Date: Wed, 10 Mar 2021 10:40:29 +0800
Subject: [PATCH] net/i40e: fix parsing packet type for NEON
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 31d7c6f7d424c533b0a4dd9b4408b814ac7852f1 ]

In i40e NEON vector Rx path, the packet descs processing is incorrect.
This caused wrong packet type been filled in mbuf.

To fix this, when shifting the pktlen field to be 16-bit aligned, it
only needs to process the high 16bit of the packet descs instead of
the high 32bit.

Test Results:
Architecture: arm64
NIC: XL710
Driver: i40e
Package: Ether()/IP()/

Without this patch:
desc_to_ptype_v: ptype = 7 (error)

With this patch:
desc_to_ptype_v: ptype = 23 (correct)

Fixes: ae0eb310f253 ("net/i40e: implement vector PMD for ARM")

Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Tested-by: Kathleen Capella <kathleen.capella@arm.com>
---
 drivers/net/i40e/i40e_rxtx_vec_neon.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/net/i40e/i40e_rxtx_vec_neon.c b/drivers/net/i40e/i40e_rxtx_vec_neon.c
index f094de69ae..edb202a51a 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_neon.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_neon.c
@@ -310,10 +310,16 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *__rte_restrict rxq,
 		/* pkt 3,4 shift the pktlen field to be 16-bit aligned*/
 		uint32x4_t len3 = vshlq_u32(vreinterpretq_u32_u64(descs[3]),
 					    len_shl);
-		descs[3] = vreinterpretq_u64_u32(len3);
+		descs[3] = vreinterpretq_u64_u16(vsetq_lane_u16
+				(vgetq_lane_u16(vreinterpretq_u16_u32(len3), 7),
+				 vreinterpretq_u16_u64(descs[3]),
+				 7));
 		uint32x4_t len2 = vshlq_u32(vreinterpretq_u32_u64(descs[2]),
 					    len_shl);
-		descs[2] = vreinterpretq_u64_u32(len2);
+		descs[2] = vreinterpretq_u64_u16(vsetq_lane_u16
+				(vgetq_lane_u16(vreinterpretq_u16_u32(len2), 7),
+				 vreinterpretq_u16_u64(descs[2]),
+				 7));
 
 		/* D.1 pkt 3,4 convert format from desc to pktmbuf */
 		pkt_mb4 = vqtbl1q_u8(vreinterpretq_u8_u64(descs[3]), shuf_msk);
@@ -341,10 +347,16 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *__rte_restrict rxq,
 		/* pkt 1,2 shift the pktlen field to be 16-bit aligned*/
 		uint32x4_t len1 = vshlq_u32(vreinterpretq_u32_u64(descs[1]),
 					    len_shl);
-		descs[1] = vreinterpretq_u64_u32(len1);
+		descs[1] = vreinterpretq_u64_u16(vsetq_lane_u16
+				(vgetq_lane_u16(vreinterpretq_u16_u32(len1), 7),
+				 vreinterpretq_u16_u64(descs[1]),
+				 7));
 		uint32x4_t len0 = vshlq_u32(vreinterpretq_u32_u64(descs[0]),
 					    len_shl);
-		descs[0] = vreinterpretq_u64_u32(len0);
+		descs[0] = vreinterpretq_u64_u16(vsetq_lane_u16
+				(vgetq_lane_u16(vreinterpretq_u16_u32(len0), 7),
+				 vreinterpretq_u16_u64(descs[0]),
+				 7));
 
 		/* D.1 pkt 1,2 convert format from desc to pktmbuf */
 		pkt_mb2 = vqtbl1q_u8(vreinterpretq_u8_u64(descs[1]), shuf_msk);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.529515200 +0800
+++ 0113-net-i40e-fix-parsing-packet-type-for-NEON.patch	2021-05-10 23:59:26.510000000 +0800
@@ -1 +1 @@
-From 31d7c6f7d424c533b0a4dd9b4408b814ac7852f1 Mon Sep 17 00:00:00 2001
+From 7f8de7322818b057d8c0dd24ebbd2ef8ab6b9a39 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 31d7c6f7d424c533b0a4dd9b4408b814ac7852f1 ]
@@ -26 +28,0 @@
-Cc: stable@dpdk.org
@@ -36 +38 @@
-index da16dfc386..1f5539bda8 100644
+index f094de69ae..edb202a51a 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/iavf: fix packet length parsing in AVX512' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (110 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/i40e: fix parsing packet type for NEON' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/i40e: announce request queue capability in PF' " Xueming Li
                   ` (115 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Leyi Rong; +Cc: Luca Boccassi, David Coyle, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/ddb17b5462d5b54579e201ef3530abe0f1f0f7b1

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ddb17b5462d5b54579e201ef3530abe0f1f0f7b1 Mon Sep 17 00:00:00 2001
From: Leyi Rong <leyi.rong@intel.com>
Date: Wed, 17 Mar 2021 17:17:56 +0800
Subject: [PATCH] net/iavf: fix packet length parsing in AVX512
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit fecbc64cb3647531062a8b97bd62a98bee05e773 ]

Fix pkt_len parsing when DEV_RX_OFFLOAD_KEEP_CRC is set in AVX512 path.

Fixes: 31737f2b66fb ("net/iavf: enable AVX512 for legacy Rx")
Fixes: 6df587028e57 ("net/iavf: enable AVX512 for flexible Rx")

Signed-off-by: Leyi Rong <leyi.rong@intel.com>
Tested-by: David Coyle <david.coyle@intel.com>
---
 drivers/net/iavf/iavf_rxtx_vec_avx512.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx512.c b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
index 584d12ea36..4aae99031e 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx512.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx512.c
@@ -380,7 +380,7 @@ _iavf_recv_raw_pkts_vec_avx512(struct iavf_rx_queue *rxq,
 								len4_7);
 		__m512i mb4_7 = _mm512_shuffle_epi8(desc4_7, shuf_msk);
 
-		mb4_7 = _mm512_add_epi16(mb4_7, crc_adjust);
+		mb4_7 = _mm512_add_epi32(mb4_7, crc_adjust);
 		/**
 		 * to get packet types, shift 64-bit values down 30 bits
 		 * and so ptype is in lower 8-bits in each
@@ -411,7 +411,7 @@ _iavf_recv_raw_pkts_vec_avx512(struct iavf_rx_queue *rxq,
 								len0_3);
 		__m512i mb0_3 = _mm512_shuffle_epi8(desc0_3, shuf_msk);
 
-		mb0_3 = _mm512_add_epi16(mb0_3, crc_adjust);
+		mb0_3 = _mm512_add_epi32(mb0_3, crc_adjust);
 		/* get the packet types */
 		const __m512i ptypes0_3 = _mm512_srli_epi64(desc0_3, 30);
 		const __m256i ptypes2_3 = _mm512_extracti64x4_epi64(ptypes0_3, 1);
@@ -869,7 +869,7 @@ _iavf_recv_raw_pkts_vec_avx512_flex_rxd(struct iavf_rx_queue *rxq,
 		 */
 		__m512i mb4_7 = _mm512_shuffle_epi8(raw_desc4_7, shuf_msk);
 
-		mb4_7 = _mm512_add_epi16(mb4_7, crc_adjust);
+		mb4_7 = _mm512_add_epi32(mb4_7, crc_adjust);
 		/**
 		 * to get packet types, ptype is located in bit16-25
 		 * of each 128bits
@@ -898,7 +898,7 @@ _iavf_recv_raw_pkts_vec_avx512_flex_rxd(struct iavf_rx_queue *rxq,
 		 */
 		__m512i mb0_3 = _mm512_shuffle_epi8(raw_desc0_3, shuf_msk);
 
-		mb0_3 = _mm512_add_epi16(mb0_3, crc_adjust);
+		mb0_3 = _mm512_add_epi32(mb0_3, crc_adjust);
 		/**
 		 * to get packet types, ptype is located in bit16-25
 		 * of each 128bits
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.551805700 +0800
+++ 0114-net-iavf-fix-packet-length-parsing-in-AVX512.patch	2021-05-10 23:59:26.510000000 +0800
@@ -1 +1 @@
-From fecbc64cb3647531062a8b97bd62a98bee05e773 Mon Sep 17 00:00:00 2001
+From ddb17b5462d5b54579e201ef3530abe0f1f0f7b1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit fecbc64cb3647531062a8b97bd62a98bee05e773 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 5cb4c7cda6..67184ae3f4 100644
+index 584d12ea36..4aae99031e 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/i40e: announce request queue capability in PF' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (111 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/iavf: fix packet length parsing in AVX512' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/igc: fix Rx RSS hash offload capability' " Xueming Li
                   ` (114 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Robin Zhang; +Cc: Luca Boccassi, Jeff Guo, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/8235f3fdfd945291e053643528014c21eec0d257

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8235f3fdfd945291e053643528014c21eec0d257 Mon Sep 17 00:00:00 2001
From: Robin Zhang <robinx.zhang@intel.com>
Date: Fri, 12 Mar 2021 08:52:09 +0000
Subject: [PATCH] net/i40e: announce request queue capability in PF
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 918e90b96039cd05f9271a2d80d9c000b42f5c44 ]

A new feature requesting additional queues from PF is added in iavf;
before sending VIRTCHNL_OP_REQUEST_QUEUES op code, the offload
capability flag VIRTCHNL_VF_OFFLOAD_REQ_QUEUES will be checked.

And due to DPDK PF is still used by some cases, add this offload
capability flag in i40e PF.

Fixes: cbdbd360f77f ("net/i40e: support AVF basic interface")

Signed-off-by: Robin Zhang <robinx.zhang@intel.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
---
 drivers/net/i40e/i40e_pf.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/i40e/i40e_pf.c b/drivers/net/i40e/i40e_pf.c
index 65d649b627..d6f5698342 100644
--- a/drivers/net/i40e/i40e_pf.c
+++ b/drivers/net/i40e/i40e_pf.c
@@ -333,6 +333,10 @@ i40e_pf_host_process_cmd_get_vf_resource(struct i40e_pf_vf *vf, uint8_t *msg,
 
 	vf_res->vf_cap_flags = vf->request_caps &
 				   I40E_VIRTCHNL_OFFLOAD_CAPS;
+
+	if (vf->request_caps & VIRTCHNL_VF_OFFLOAD_REQ_QUEUES)
+		vf_res->vf_cap_flags |= VIRTCHNL_VF_OFFLOAD_REQ_QUEUES;
+
 	/* For X722, it supports write back on ITR
 	 * without binding queue to interrupt vector.
 	 */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.575039800 +0800
+++ 0115-net-i40e-announce-request-queue-capability-in-PF.patch	2021-05-10 23:59:26.510000000 +0800
@@ -1 +1 @@
-From 918e90b96039cd05f9271a2d80d9c000b42f5c44 Mon Sep 17 00:00:00 2001
+From 8235f3fdfd945291e053643528014c21eec0d257 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 918e90b96039cd05f9271a2d80d9c000b42f5c44 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index f3d6d899f6..9804ed4253 100644
+index 65d649b627..d6f5698342 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/igc: fix Rx RSS hash offload capability' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (112 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/i40e: announce request queue capability in PF' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/iavf: fix TSO max segment size' " Xueming Li
                   ` (113 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Alvin Zhang; +Cc: Luca Boccassi, Haiyue Wang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/eefc6b16bcd4d801b51b62678cb8a94a64d56f61

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From eefc6b16bcd4d801b51b62678cb8a94a64d56f61 Mon Sep 17 00:00:00 2001
From: Alvin Zhang <alvinx.zhang@intel.com>
Date: Thu, 25 Mar 2021 09:51:50 +0800
Subject: [PATCH] net/igc: fix Rx RSS hash offload capability
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 47319fb41b067ecda53c256b43d8490957d30dd0 ]

Add DEV_RX_OFFLOAD_RSS_HASH flag to the PMD's Rx offload capabilities
for it supports RSS hash delivery.

Fixes: 4f09bc55ac3d ("net/igc: implement device base operations")

Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
---
 drivers/net/igc/igc_ethdev.c | 3 +++
 drivers/net/igc/igc_ethdev.h | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c
index 75e114b9ca..2d9bbb835d 100644
--- a/drivers/net/igc/igc_ethdev.c
+++ b/drivers/net/igc/igc_ethdev.c
@@ -341,6 +341,9 @@ eth_igc_configure(struct rte_eth_dev *dev)
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG)
+		dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH;
+
 	ret  = igc_check_mq_mode(dev);
 	if (ret != 0)
 		return ret;
diff --git a/drivers/net/igc/igc_ethdev.h b/drivers/net/igc/igc_ethdev.h
index a09debfb40..6f658a0e83 100644
--- a/drivers/net/igc/igc_ethdev.h
+++ b/drivers/net/igc/igc_ethdev.h
@@ -67,7 +67,8 @@ extern "C" {
 	DEV_RX_OFFLOAD_SCTP_CKSUM  | \
 	DEV_RX_OFFLOAD_JUMBO_FRAME | \
 	DEV_RX_OFFLOAD_KEEP_CRC    | \
-	DEV_RX_OFFLOAD_SCATTER)
+	DEV_RX_OFFLOAD_SCATTER     | \
+	DEV_RX_OFFLOAD_RSS_HASH)
 
 #define IGC_TX_OFFLOAD_ALL	(    \
 	DEV_TX_OFFLOAD_VLAN_INSERT | \
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.598248000 +0800
+++ 0116-net-igc-fix-Rx-RSS-hash-offload-capability.patch	2021-05-10 23:59:26.510000000 +0800
@@ -1 +1 @@
-From 47319fb41b067ecda53c256b43d8490957d30dd0 Mon Sep 17 00:00:00 2001
+From eefc6b16bcd4d801b51b62678cb8a94a64d56f61 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 47319fb41b067ecda53c256b43d8490957d30dd0 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 56d1024af6..17dd8bf8c6 100644
+index 75e114b9ca..2d9bbb835d 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/iavf: fix TSO max segment size' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (113 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/igc: fix Rx RSS hash offload capability' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/ixgbe: fix RSS RETA being reset after port start' " Xueming Li
                   ` (112 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Luca Boccassi, Beilei Xing, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/843b7caa8efd8ef584519fc0acc2d608a1185630

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 843b7caa8efd8ef584519fc0acc2d608a1185630 Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Mon, 1 Mar 2021 15:57:14 +0800
Subject: [PATCH] net/iavf: fix TSO max segment size
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 6d05fc905df216b78e4e3db935927a53a638c6d0 ]

According to Intel® AVF spec
(https://www.intel.com/content/dam/
www/public/us/en/documents/product-specifications/
ethernet-adaptive-virtual-function-hardware-spec.pdf)
section 2.2.2.3:
The max segment size(MSS) of TSO should not be set lower than 88.

Fixes: a2b29a7733ef ("net/avf: enable basic Rx Tx")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
 drivers/net/iavf/iavf_rxtx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h
index d4b4935be6..6bf6a44b77 100644
--- a/drivers/net/iavf/iavf_rxtx.h
+++ b/drivers/net/iavf/iavf_rxtx.h
@@ -34,7 +34,7 @@
 #define DEFAULT_TX_RS_THRESH     32
 #define DEFAULT_TX_FREE_THRESH   32
 
-#define IAVF_MIN_TSO_MSS          256
+#define IAVF_MIN_TSO_MSS          88
 #define IAVF_MAX_TSO_MSS          9668
 #define IAVF_TSO_MAX_SEG          UINT8_MAX
 #define IAVF_TX_MAX_MTU_SEG       8
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.623566200 +0800
+++ 0117-net-iavf-fix-TSO-max-segment-size.patch	2021-05-10 23:59:26.510000000 +0800
@@ -1 +1 @@
-From 6d05fc905df216b78e4e3db935927a53a638c6d0 Mon Sep 17 00:00:00 2001
+From 843b7caa8efd8ef584519fc0acc2d608a1185630 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 6d05fc905df216b78e4e3db935927a53a638c6d0 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 5377459eae..4fbd847034 100644
+index d4b4935be6..6bf6a44b77 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/ixgbe: fix RSS RETA being reset after port start' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (114 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/iavf: fix TSO max segment size' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/mlx5: fix using flow tunnel before null check' " Xueming Li
                   ` (111 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Murphy Yang; +Cc: Luca Boccassi, Haiyue Wang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7f55ac318c25cfaa6459faaaffdc1b33d0a05e10

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7f55ac318c25cfaa6459faaaffdc1b33d0a05e10 Mon Sep 17 00:00:00 2001
From: Murphy Yang <murphyx.yang@intel.com>
Date: Mon, 29 Mar 2021 08:28:45 +0000
Subject: [PATCH] net/ixgbe: fix RSS RETA being reset after port start
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 8b628c22b38f7a81b6cba677aaabd140d8583ae5 ]

If one calls ‘rte_eth_dev_rss_reta_update’ with ixgbe before starting
the device (but after setting everything else), then RSS RETA
configuration will be zero after starting the device.

This patch gives a notification if the port not started.

Bugzilla ID: 664
Fixes: 249358424eab ("ixgbe: RSS RETA configuration")

Signed-off-by: Murphy Yang <murphyx.yang@intel.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index fa0f5afd03..6195c7f025 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -5007,11 +5007,19 @@ ixgbe_dev_rss_reta_update(struct rte_eth_dev *dev,
 	uint32_t reta, r;
 	uint16_t idx, shift;
 	struct ixgbe_adapter *adapter = dev->data->dev_private;
+	struct rte_eth_dev_data *dev_data = dev->data;
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t reta_reg;
 
 	PMD_INIT_FUNC_TRACE();
 
+	if (!dev_data->dev_started) {
+		PMD_DRV_LOG(ERR,
+			"port %d must be started before rss reta update",
+			 dev_data->port_id);
+		return -EIO;
+	}
+
 	if (!ixgbe_rss_update_sp(hw->mac.type)) {
 		PMD_DRV_LOG(ERR, "RSS reta update is not supported on this "
 			"NIC.");
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.645793200 +0800
+++ 0118-net-ixgbe-fix-RSS-RETA-being-reset-after-port-start.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From 8b628c22b38f7a81b6cba677aaabd140d8583ae5 Mon Sep 17 00:00:00 2001
+From 7f55ac318c25cfaa6459faaaffdc1b33d0a05e10 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 8b628c22b38f7a81b6cba677aaabd140d8583ae5 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index be9c438c10..31faff066c 100644
+index fa0f5afd03..6195c7f025 100644
@@ -29 +31 @@
-@@ -5013,11 +5013,19 @@ ixgbe_dev_rss_reta_update(struct rte_eth_dev *dev,
+@@ -5007,11 +5007,19 @@ ixgbe_dev_rss_reta_update(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/mlx5: fix using flow tunnel before null check' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (115 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/ixgbe: fix RSS RETA being reset after port start' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'vdpa/ifc: check PCI config read' " Xueming Li
                   ` (110 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Yunjian Wang; +Cc: Luca Boccassi, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/f90c6e9d4139a54551d6487b72ec851cdf5fabfa

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f90c6e9d4139a54551d6487b72ec851cdf5fabfa Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Sat, 27 Mar 2021 10:44:09 +0800
Subject: [PATCH] net/mlx5: fix using flow tunnel before null check
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit ed9726ce83eb7562b3dcfaf0ee10647ed816ae4a ]

Coverity flags that 'ctx->tunnel' variable is used before
it's checked for NULL. This patch fixes this issue.

Coverity issue: 366201
Fixes: 868d2e342cf3 ("net/mlx5: fix tunnel offload hub multi-thread protection")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index d574ad78c7..2fe810c6b5 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -7609,10 +7609,11 @@ static void get_tunnel_miss(struct rte_eth_dev *dev, void *x)
 
 	rte_spinlock_unlock(&thub->sl);
 	ctx->tunnel = mlx5_flow_tunnel_allocate(dev, ctx->app_tunnel);
-	ctx->tunnel->refctn = 1;
 	rte_spinlock_lock(&thub->sl);
-	if (ctx->tunnel)
+	if (ctx->tunnel) {
+		ctx->tunnel->refctn = 1;
 		LIST_INSERT_HEAD(&thub->tunnels, ctx->tunnel, chain);
+	}
 }
 
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.674522700 +0800
+++ 0119-net-mlx5-fix-using-flow-tunnel-before-null-check.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From ed9726ce83eb7562b3dcfaf0ee10647ed816ae4a Mon Sep 17 00:00:00 2001
+From f90c6e9d4139a54551d6487b72ec851cdf5fabfa Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit ed9726ce83eb7562b3dcfaf0ee10647ed816ae4a ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 7ab7f63264..c347f8130e 100644
+index d574ad78c7..2fe810c6b5 100644
@@ -23 +25 @@
-@@ -7881,10 +7881,11 @@ static void get_tunnel_miss(struct rte_eth_dev *dev, void *x)
+@@ -7609,10 +7609,11 @@ static void get_tunnel_miss(struct rte_eth_dev *dev, void *x)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'vdpa/ifc: check PCI config read' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (116 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/mlx5: fix using flow tunnel before null check' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'examples/vhost: check memory table query' " Xueming Li
                   ` (109 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Xiao Wang; +Cc: Luca Boccassi, Chenbo Xia, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/42457347e2ae00cfb7625cd91284d29802cbce28

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 42457347e2ae00cfb7625cd91284d29802cbce28 Mon Sep 17 00:00:00 2001
From: Xiao Wang <xiao.w.wang@intel.com>
Date: Tue, 9 Mar 2021 16:43:15 +0800
Subject: [PATCH] vdpa/ifc: check PCI config read
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 629d75653bc584a2927a87566bf00beea661f91b ]

The return value of rte_pci_read_config should be checked.

Coverity issue: 302860
Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
---
 drivers/vdpa/ifc/base/ifcvf.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/vdpa/ifc/base/ifcvf.c b/drivers/vdpa/ifc/base/ifcvf.c
index 3c0b2dff66..721cb1da8a 100644
--- a/drivers/vdpa/ifc/base/ifcvf.c
+++ b/drivers/vdpa/ifc/base/ifcvf.c
@@ -65,8 +65,13 @@ ifcvf_init_hw(struct ifcvf_hw *hw, PCI_DEV *dev)
 			hw->common_cfg = get_cap_addr(hw, &cap);
 			break;
 		case IFCVF_PCI_CAP_NOTIFY_CFG:
-			PCI_READ_CONFIG_DWORD(dev, &hw->notify_off_multiplier,
+			ret = PCI_READ_CONFIG_DWORD(dev,
+					&hw->notify_off_multiplier,
 					pos + sizeof(cap));
+			if (ret < 0) {
+				DEBUGOUT("failed to read notify_off_multiplier\n");
+				return -1;
+			}
 			hw->notify_base = get_cap_addr(hw, &cap);
 			hw->notify_region = cap.bar;
 			break;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.702475700 +0800
+++ 0120-vdpa-ifc-check-PCI-config-read.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From 629d75653bc584a2927a87566bf00beea661f91b Mon Sep 17 00:00:00 2001
+From 42457347e2ae00cfb7625cd91284d29802cbce28 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 629d75653bc584a2927a87566bf00beea661f91b ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'examples/vhost: check memory table query' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (117 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'vdpa/ifc: check PCI config read' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'vhost: fix split ring potential buffer overflow' " Xueming Li
                   ` (108 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Chenbo Xia; +Cc: Luca Boccassi, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/1716e668784eb5d2e42bd7d2489990c09c49998b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1716e668784eb5d2e42bd7d2489990c09c49998b Mon Sep 17 00:00:00 2001
From: Chenbo Xia <chenbo.xia@intel.com>
Date: Fri, 19 Feb 2021 10:40:11 +0800
Subject: [PATCH] examples/vhost: check memory table query
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 1739f814258cf7f4e25d55710918fa0ecc4d828e ]

This patch fixes unchecked return value for rte_vhost_get_mem_table(),
which is reported by coverity.

Coverity issue: 364233
Fixes: ca059fa5e290 ("examples/vhost: demonstrate the new generic APIs")

Signed-off-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 examples/vhost/virtio_net.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/examples/vhost/virtio_net.c b/examples/vhost/virtio_net.c
index 8ea6b36d59..28e4b00960 100644
--- a/examples/vhost/virtio_net.c
+++ b/examples/vhost/virtio_net.c
@@ -23,6 +23,7 @@ vs_vhost_net_setup(struct vhost_dev *dev)
 	uint16_t i;
 	int vid = dev->vid;
 	struct vhost_queue *queue;
+	int ret;
 
 	RTE_LOG(INFO, VHOST_CONFIG,
 		"setting builtin vhost-user net driver\n");
@@ -33,7 +34,12 @@ vs_vhost_net_setup(struct vhost_dev *dev)
 	else
 		dev->hdr_len = sizeof(struct virtio_net_hdr);
 
-	rte_vhost_get_mem_table(vid, &dev->mem);
+	ret = rte_vhost_get_mem_table(vid, &dev->mem);
+	if (ret < 0) {
+		RTE_LOG(ERR, VHOST_CONFIG, "Failed to get "
+			"VM memory layout for device(%d)\n", vid);
+		return;
+	}
 
 	dev->nr_vrings = rte_vhost_get_vring_num(vid);
 	for (i = 0; i < dev->nr_vrings; i++) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.725083200 +0800
+++ 0121-examples-vhost-check-memory-table-query.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From 1739f814258cf7f4e25d55710918fa0ecc4d828e Mon Sep 17 00:00:00 2001
+From 1716e668784eb5d2e42bd7d2489990c09c49998b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 1739f814258cf7f4e25d55710918fa0ecc4d828e ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 64bf3d19ff..9064fc3a82 100644
+index 8ea6b36d59..28e4b00960 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'vhost: fix split ring potential buffer overflow' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (118 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'examples/vhost: check memory table query' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'vhost: fix packed " Xueming Li
                   ` (107 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Marvin Liu; +Cc: Luca Boccassi, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/25d53e1eb8d8b88503e606361900fac7215edf52

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 25d53e1eb8d8b88503e606361900fac7215edf52 Mon Sep 17 00:00:00 2001
From: Marvin Liu <yong.liu@intel.com>
Date: Wed, 31 Mar 2021 14:49:37 +0800
Subject: [PATCH] vhost: fix split ring potential buffer overflow
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 134228ca39ef0cfe325bc5f1d0df38c733ec9752 ]

In vhost datapath, descriptor's length are mostly used in two coherent
operations. First step is used for address translation, second step is
used for memory transaction from guest to host. But the interval between
two steps will give a window for malicious guest, in which can change
descriptor length after vhost calculated buffer size. Thus may lead to
buffer overflow in vhost side. This potential risk can be eliminated by
accessing the descriptor length once.

Fixes: 1be4ebb1c464 ("vhost: support indirect descriptor in mergeable Rx")

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/virtio_net.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index 55bfc161b5..891a089f75 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -571,10 +571,11 @@ fill_vec_buf_split(struct virtio_net *dev, struct vhost_virtqueue *vq,
 			return -1;
 		}
 
-		len += descs[idx].len;
+		dlen = descs[idx].len;
+		len += dlen;
 
 		if (unlikely(map_one_desc(dev, vq, buf_vec, &vec_id,
-						descs[idx].addr, descs[idx].len,
+						descs[idx].addr, dlen,
 						perm))) {
 			free_ind_table(idesc);
 			return -1;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.748036400 +0800
+++ 0122-vhost-fix-split-ring-potential-buffer-overflow.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From 134228ca39ef0cfe325bc5f1d0df38c733ec9752 Mon Sep 17 00:00:00 2001
+From 25d53e1eb8d8b88503e606361900fac7215edf52 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 134228ca39ef0cfe325bc5f1d0df38c733ec9752 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 3d8e29df09..852b4ec9f5 100644
+index 55bfc161b5..891a089f75 100644
@@ -27 +29 @@
-@@ -548,10 +548,11 @@ fill_vec_buf_split(struct virtio_net *dev, struct vhost_virtqueue *vq,
+@@ -571,10 +571,11 @@ fill_vec_buf_split(struct virtio_net *dev, struct vhost_virtqueue *vq,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'vhost: fix packed ring potential buffer overflow' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (119 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'vhost: fix split ring potential buffer overflow' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'vhost: fix batch dequeue " Xueming Li
                   ` (106 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Marvin Liu; +Cc: Luca Boccassi, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/358cba78c0bb02a9e0a1692d5735f633bafdae1b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 358cba78c0bb02a9e0a1692d5735f633bafdae1b Mon Sep 17 00:00:00 2001
From: Marvin Liu <yong.liu@intel.com>
Date: Wed, 31 Mar 2021 14:49:38 +0800
Subject: [PATCH] vhost: fix packed ring potential buffer overflow
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 93ed2f49dec5bee1dfc221c8644c22b351496776 ]

Similar as split ring, the multiple accesses of descriptor length will
lead to potential risk. One-time access of descriptor length can
eliminate this risk.

Fixes: 2f3225a7d69b ("vhost: add vector filling support for packed ring")

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/virtio_net.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index 891a089f75..8baabe75ec 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -692,9 +692,10 @@ fill_vec_buf_packed_indirect(struct virtio_net *dev,
 			return -1;
 		}
 
-		*len += descs[i].len;
+		dlen = descs[i].len;
+		*len += dlen;
 		if (unlikely(map_one_desc(dev, vq, buf_vec, &vec_id,
-						descs[i].addr, descs[i].len,
+						descs[i].addr, dlen,
 						perm)))
 			return -1;
 	}
@@ -715,6 +716,7 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
 	bool wrap_counter = vq->avail_wrap_counter;
 	struct vring_packed_desc *descs = vq->desc_packed;
 	uint16_t vec_id = *vec_idx;
+	uint64_t dlen;
 
 	if (avail_idx < vq->last_avail_idx)
 		wrap_counter ^= 1;
@@ -747,11 +749,12 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
 							len, perm) < 0))
 				return -1;
 		} else {
-			*len += descs[avail_idx].len;
+			dlen = descs[avail_idx].len;
+			*len += dlen;
 
 			if (unlikely(map_one_desc(dev, vq, buf_vec, &vec_id,
 							descs[avail_idx].addr,
-							descs[avail_idx].len,
+							dlen,
 							perm)))
 				return -1;
 		}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.772858700 +0800
+++ 0123-vhost-fix-packed-ring-potential-buffer-overflow.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From 93ed2f49dec5bee1dfc221c8644c22b351496776 Mon Sep 17 00:00:00 2001
+From 358cba78c0bb02a9e0a1692d5735f633bafdae1b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 93ed2f49dec5bee1dfc221c8644c22b351496776 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 852b4ec9f5..d07b30ed7f 100644
+index 891a089f75..8baabe75ec 100644
@@ -23 +25 @@
-@@ -669,9 +669,10 @@ fill_vec_buf_packed_indirect(struct virtio_net *dev,
+@@ -692,9 +692,10 @@ fill_vec_buf_packed_indirect(struct virtio_net *dev,
@@ -36 +38 @@
-@@ -692,6 +693,7 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
+@@ -715,6 +716,7 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
@@ -44 +46 @@
-@@ -724,11 +726,12 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
+@@ -747,11 +749,12 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'vhost: fix batch dequeue potential buffer overflow' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (120 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'vhost: fix packed " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'examples/vhost_crypto: remove unused short option' " Xueming Li
                   ` (105 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Marvin Liu; +Cc: Luca Boccassi, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/429dd550359c68bdf5821ab08601f15ca2b41a80

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 429dd550359c68bdf5821ab08601f15ca2b41a80 Mon Sep 17 00:00:00 2001
From: Marvin Liu <yong.liu@intel.com>
Date: Wed, 31 Mar 2021 14:49:39 +0800
Subject: [PATCH] vhost: fix batch dequeue potential buffer overflow
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit af584d21bf66047e36ad3b9ccdcfd83ecdccd5db ]

Similar as single dequeue, the multiple accesses of descriptor length
will lead to potential risk. One-time access of descriptor length can
eliminate this risk.

Fixes: 75ed51697820 ("vhost: add packed ring batch dequeue")

Signed-off-by: Marvin Liu <yong.liu@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/virtio_net.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index 8baabe75ec..bd92f45886 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -2287,7 +2287,7 @@ vhost_reserve_avail_batch_packed(struct virtio_net *dev,
 	}
 
 	vhost_for_each_try_unroll(i, 0, PACKED_BATCH_SIZE) {
-		pkts[i]->pkt_len = descs[avail_idx + i].len - buf_offset;
+		pkts[i]->pkt_len = lens[i] - buf_offset;
 		pkts[i]->data_len = pkts[i]->pkt_len;
 		ids[i] = descs[avail_idx + i].id;
 	}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.796271800 +0800
+++ 0124-vhost-fix-batch-dequeue-potential-buffer-overflow.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From af584d21bf66047e36ad3b9ccdcfd83ecdccd5db Mon Sep 17 00:00:00 2001
+From 429dd550359c68bdf5821ab08601f15ca2b41a80 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit af584d21bf66047e36ad3b9ccdcfd83ecdccd5db ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index d07b30ed7f..7f621fb6dd 100644
+index 8baabe75ec..bd92f45886 100644
@@ -23 +25 @@
-@@ -2318,7 +2318,7 @@ vhost_reserve_avail_batch_packed(struct virtio_net *dev,
+@@ -2287,7 +2287,7 @@ vhost_reserve_avail_batch_packed(struct virtio_net *dev,

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'examples/vhost_crypto: remove unused short option' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (121 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'vhost: fix batch dequeue " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'vdpa/mlx5: fix virtq cleaning' " Xueming Li
                   ` (104 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Ibtisam Tariq; +Cc: Luca Boccassi, Fan Zhang, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/42ed69a37be4cf7626cc4b4a9186337122c802cb

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 42ed69a37be4cf7626cc4b4a9186337122c802cb Mon Sep 17 00:00:00 2001
From: Ibtisam Tariq <ibtisam.tariq@emumba.com>
Date: Thu, 4 Feb 2021 08:05:42 +0000
Subject: [PATCH] examples/vhost_crypto: remove unused short option
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit dd0946f975bac65ab680adcd389295cc56ad78e1 ]

Short option "s" was passed to getopt_long function, while there was
no condition on this option.

Fixes: f5188211c721 ("examples/vhost_crypto: add sample application")

Signed-off-by: Ibtisam Tariq <ibtisam.tariq@emumba.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 examples/vhost_crypto/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/vhost_crypto/main.c b/examples/vhost_crypto/main.c
index 29c8f7228d..66bde38c0e 100644
--- a/examples/vhost_crypto/main.c
+++ b/examples/vhost_crypto/main.c
@@ -219,7 +219,7 @@ vhost_crypto_parse_args(int argc, char **argv)
 
 	argvopt = argv;
 
-	while ((opt = getopt_long(argc, argvopt, "s:",
+	while ((opt = getopt_long(argc, argvopt, "",
 				  lgopts, &option_index)) != EOF) {
 
 		switch (opt) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.820759300 +0800
+++ 0125-examples-vhost_crypto-remove-unused-short-option.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From dd0946f975bac65ab680adcd389295cc56ad78e1 Mon Sep 17 00:00:00 2001
+From 42ed69a37be4cf7626cc4b4a9186337122c802cb Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit dd0946f975bac65ab680adcd389295cc56ad78e1 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index efae997815..7ed38fedf2 100644
+index 29c8f7228d..66bde38c0e 100644
@@ -23 +25 @@
-@@ -229,7 +229,7 @@ vhost_crypto_parse_args(int argc, char **argv)
+@@ -219,7 +219,7 @@ vhost_crypto_parse_args(int argc, char **argv)
@@ -31 +33 @@
- 		if (opt == '?') {
+ 		switch (opt) {

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'vdpa/mlx5: fix virtq cleaning' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (122 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'examples/vhost_crypto: remove unused short option' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'doc: fix sphinx rtd theme import in GHA' " Xueming Li
                   ` (103 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Matan Azrad; +Cc: Luca Boccassi, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/8d3f8b347f6c8c47b99d549db7875e15c975ba57

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8d3f8b347f6c8c47b99d549db7875e15c975ba57 Mon Sep 17 00:00:00 2001
From: Matan Azrad <matan@nvidia.com>
Date: Mon, 1 Mar 2021 10:41:31 +0000
Subject: [PATCH] vdpa/mlx5: fix virtq cleaning
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 846ec2ea75adc6ce00ad79485fca5d9943ebecaa ]

The HW virtq object can be destroyed either when the device is closed or
when the state of the virtq becomes disabled.

Some parameters of the virtq should continue to be managed when the
virtq state is changed but all of them must be initialized when the
device is closed.

Wrongly, the enable parameter stayed on when the device is closed what
might cause creation of invalid virtq in the next time a device is
assigned to the driver.

Clean all the virtqs memory when the device is closed.

Fixes: c47d6e83334e ("vdpa/mlx5: support queue update")

Signed-off-by: Matan Azrad <matan@nvidia.com>
Acked-by: Xueming Li <xuemingl@nvidia.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c b/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
index 3e882e4000..87704c782b 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa_virtq.c
@@ -103,13 +103,8 @@ mlx5_vdpa_virtqs_release(struct mlx5_vdpa_priv *priv)
 	for (i = 0; i < priv->nr_virtqs; i++) {
 		virtq = &priv->virtqs[i];
 		mlx5_vdpa_virtq_unset(virtq);
-		if (virtq->counters) {
+		if (virtq->counters)
 			claim_zero(mlx5_devx_cmd_destroy(virtq->counters));
-			virtq->counters = NULL;
-			memset(&virtq->reset, 0, sizeof(virtq->reset));
-		}
-		memset(virtq->err_time, 0, sizeof(virtq->err_time));
-		virtq->n_retry = 0;
 	}
 	for (i = 0; i < priv->num_lag_ports; i++) {
 		if (priv->tiss[i]) {
@@ -126,6 +121,7 @@ mlx5_vdpa_virtqs_release(struct mlx5_vdpa_priv *priv)
 		priv->virtq_db_addr = NULL;
 	}
 	priv->features = 0;
+	memset(priv->virtqs, 0, sizeof(*virtq) * priv->nr_virtqs);
 	priv->nr_virtqs = 0;
 }
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.844863400 +0800
+++ 0126-vdpa-mlx5-fix-virtq-cleaning.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From 846ec2ea75adc6ce00ad79485fca5d9943ebecaa Mon Sep 17 00:00:00 2001
+From 8d3f8b347f6c8c47b99d549db7875e15c975ba57 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 846ec2ea75adc6ce00ad79485fca5d9943ebecaa ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -30 +32 @@
-index ef2642a656..024c5c4180 100644
+index 3e882e4000..87704c782b 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'doc: fix sphinx rtd theme import in GHA' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (123 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'vdpa/mlx5: fix virtq cleaning' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'power: do not skip saving original P-state governor' " Xueming Li
                   ` (102 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: David Marchand; +Cc: Luca Boccassi, Aaron Conole, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/43708086402eedf6efc9294148dc4f15d3762e17

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 43708086402eedf6efc9294148dc4f15d3762e17 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 1 Apr 2021 21:58:42 +0200
Subject: [PATCH] doc: fix sphinx rtd theme import in GHA
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit aa9cb78f66c53728593c1f65f69f2bbc7ca4a4a9 ]

If the rtd theme is available, passing it by name is enough to select
it. Sphinx itself recognises the "sphinx_rtd_theme" name as a special
case and tries to find its path automatically.

On the other hand, passing a html_theme_path makes sphinx parse all
themes availables in this path, which in some environment (like GHA) is
/usr/share and makes sphinx error on the first zipfile it finds (in GHA,
some Azure CLI thingy) that has no sphinx theme in it.

Fixes: 46562be65094 ("doc: import sphinx rtd theme when available")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Aaron Conole <aconole@redhat.com>
---
 doc/guides/conf.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/doc/guides/conf.py b/doc/guides/conf.py
index aceeb62a4f..ec59aeae7e 100644
--- a/doc/guides/conf.py
+++ b/doc/guides/conf.py
@@ -20,7 +20,6 @@ try:
     import sphinx_rtd_theme
 
     html_theme = "sphinx_rtd_theme"
-    html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
 except:
     print('Install the sphinx ReadTheDocs theme for improved html documentation '
           'layout: https://sphinx-rtd-theme.readthedocs.io/',
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.869206600 +0800
+++ 0127-doc-fix-sphinx-rtd-theme-import-in-GHA.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From aa9cb78f66c53728593c1f65f69f2bbc7ca4a4a9 Mon Sep 17 00:00:00 2001
+From 43708086402eedf6efc9294148dc4f15d3762e17 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit aa9cb78f66c53728593c1f65f69f2bbc7ca4a4a9 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'power: do not skip saving original P-state governor' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (124 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'doc: fix sphinx rtd theme import in GHA' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'mem: fix freeing segments in --huge-unlink mode' " Xueming Li
                   ` (101 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Luca Boccassi, Reshma Pattan, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/8ee0fdee90d5f1b0ac9f398a6dd9ae872f44fa03

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8ee0fdee90d5f1b0ac9f398a6dd9ae872f44fa03 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Fri, 2 Apr 2021 09:26:45 +0000
Subject: [PATCH] power: do not skip saving original P-state governor
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 190f38773acffc5cc822f4347b38ce04257cd044 ]

Currently, when we set the pstate governor to "performance", we check if
it is already set to this value, and if it is, we skip setting it.

However, we never save this value anywhere, so that next time we come
back and request the governor to be set to its original value, the
original value is empty.

Fix it by saving the original pstate governor first. While we're at it,
replace `strlcpy` with `rte_strscpy`.

Fixes: e6c6dc0f96c8 ("power: add p-state driver compatibility")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
---
 lib/librte_power/power_pstate_cpufreq.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/librte_power/power_pstate_cpufreq.c b/lib/librte_power/power_pstate_cpufreq.c
index edf6328e5f..dff9857713 100644
--- a/lib/librte_power/power_pstate_cpufreq.c
+++ b/lib/librte_power/power_pstate_cpufreq.c
@@ -350,6 +350,9 @@ power_set_governor_performance(struct pstate_power_info *pi)
 	/* Strip off terminating '\n' */
 	strtok(buf, "\n");
 
+	/* Save the original governor */
+	rte_strscpy(pi->governor_ori, buf, sizeof(pi->governor_ori));
+
 	/* Check if current governor is performance */
 	if (strncmp(buf, POWER_GOVERNOR_PERF,
 			sizeof(POWER_GOVERNOR_PERF)) == 0) {
@@ -358,8 +361,6 @@ power_set_governor_performance(struct pstate_power_info *pi)
 				"already performance\n", pi->lcore_id);
 		goto out;
 	}
-	/* Save the original governor */
-	strlcpy(pi->governor_ori, buf, sizeof(pi->governor_ori));
 
 	/* Write 'performance' to the governor */
 	val = fseek(f, 0, SEEK_SET);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.890837800 +0800
+++ 0128-power-do-not-skip-saving-original-P-state-governor.patch	2021-05-10 23:59:26.520000000 +0800
@@ -1 +1 @@
-From 190f38773acffc5cc822f4347b38ce04257cd044 Mon Sep 17 00:00:00 2001
+From 8ee0fdee90d5f1b0ac9f398a6dd9ae872f44fa03 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 190f38773acffc5cc822f4347b38ce04257cd044 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index c4639e4b8a..1cb0e4d917 100644
+index edf6328e5f..dff9857713 100644
@@ -29 +31 @@
-@@ -382,6 +382,9 @@ power_set_governor_performance(struct pstate_power_info *pi)
+@@ -350,6 +350,9 @@ power_set_governor_performance(struct pstate_power_info *pi)
@@ -39 +41 @@
-@@ -390,8 +393,6 @@ power_set_governor_performance(struct pstate_power_info *pi)
+@@ -358,8 +361,6 @@ power_set_governor_performance(struct pstate_power_info *pi)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'mem: fix freeing segments in --huge-unlink mode' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (125 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'power: do not skip saving original P-state governor' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'service: clean references to removed symbol' " Xueming Li
                   ` (100 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Roy Shterman; +Cc: Luca Boccassi, Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/e0a41b8c471b32fc855bcd016d97bbb935fd36b0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e0a41b8c471b32fc855bcd016d97bbb935fd36b0 Mon Sep 17 00:00:00 2001
From: Roy Shterman <roy.shterman@vastdata.com>
Date: Mon, 22 Feb 2021 12:41:31 +0200
Subject: [PATCH] mem: fix freeing segments in --huge-unlink mode
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit edf20bd8a55192616e4a0f26c346b55ddbac1d81 ]

When using huge_unlink we unlink the segment right
after allocation. Although we unlink the file we keep
the fd in fd_list so file still exist just the path deleted.
When freeing the hugepage we need to close the fd and assign
it with (-1) in fd_list for the page to be released.

The current flow fails rte_malloc in the following flow when working
with --huge-unlink option:
1. alloc_seg() for segment A -
    We allocate a segment, unlink the path to the segment
    and keep the file descriptor in fd_list.
2. free_seg() for segment A -
    We clear the segment metadata and return - without closing fd
    or assigning (-1) in fd list.
3. alloc_seg() for segment A again -
    We find segment A as available, try to allocate it,
    find the old fd in fd_list try to unlink it
    as part of alloc_seg() but failed because path doesn't exist.

The impact of such error is falsely failing rte_malloc()
although we have hugepages available.

Fixes: d435aad37da7 ("mem: support --huge-unlink mode")

Signed-off-by: Roy Shterman <roy.shterman@vastdata.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/linux/eal_memalloc.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/lib/librte_eal/linux/eal_memalloc.c b/lib/librte_eal/linux/eal_memalloc.c
index 6dc1b2baec..c590d60430 100644
--- a/lib/librte_eal/linux/eal_memalloc.c
+++ b/lib/librte_eal/linux/eal_memalloc.c
@@ -709,7 +709,6 @@ free_seg(struct rte_memseg *ms, struct hugepage_info *hi,
 	uint64_t map_offset;
 	char path[PATH_MAX];
 	int fd, ret = 0;
-	bool exit_early;
 	const struct internal_config *internal_conf =
 		eal_get_internal_configuration();
 
@@ -725,17 +724,8 @@ free_seg(struct rte_memseg *ms, struct hugepage_info *hi,
 
 	eal_mem_set_dump(ms->addr, ms->len, false);
 
-	exit_early = false;
-
 	/* if we're using anonymous hugepages, nothing to be done */
-	if (internal_conf->in_memory && !memfd_create_supported)
-		exit_early = true;
-
-	/* if we've already unlinked the page, nothing needs to be done */
-	if (!internal_conf->in_memory && internal_conf->hugepage_unlink)
-		exit_early = true;
-
-	if (exit_early) {
+	if (internal_conf->in_memory && !memfd_create_supported) {
 		memset(ms, 0, sizeof(*ms));
 		return 0;
 	}
@@ -761,7 +751,7 @@ free_seg(struct rte_memseg *ms, struct hugepage_info *hi,
 		/* if we're able to take out a write lock, we're the last one
 		 * holding onto this page.
 		 */
-		if (!internal_conf->in_memory) {
+		if (!internal_conf->in_memory && !internal_conf->hugepage_unlink) {
 			ret = lock(fd, LOCK_EX);
 			if (ret >= 0) {
 				/* no one else is using this page */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.914004700 +0800
+++ 0129-mem-fix-freeing-segments-in-huge-unlink-mode.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From edf20bd8a55192616e4a0f26c346b55ddbac1d81 Mon Sep 17 00:00:00 2001
+From e0a41b8c471b32fc855bcd016d97bbb935fd36b0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit edf20bd8a55192616e4a0f26c346b55ddbac1d81 ]
@@ -29 +31,0 @@
-Cc: stable@dpdk.org
@@ -38 +40 @@
-index 00e2662c15..0ec8542283 100644
+index 6dc1b2baec..c590d60430 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'service: clean references to removed symbol' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (126 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'mem: fix freeing segments in --huge-unlink mode' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'drivers: fix log level after loading' " Xueming Li
                   ` (99 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: David Marchand
  Cc: Luca Boccassi, Harry van Haaren, Thomas Monjalon, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/6baf95a98d58ba1c37fa05bd03ce93036f7dfde9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6baf95a98d58ba1c37fa05bd03ce93036f7dfde9 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 7 Apr 2021 11:06:56 +0200
Subject: [PATCH] service: clean references to removed symbol
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 60e0e75b615fc94b8538a5334dffc0935864438c ]

rte_service_get_id() was removed in v17.11 but the API description
still referenced it and a version node was still present in EAL map.

Fixes: 8edc9aaaf217 ("service: use id in get by name function")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/librte_eal/include/rte_service.h | 5 +----
 lib/librte_eal/version.map           | 1 -
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/lib/librte_eal/include/rte_service.h b/lib/librte_eal/include/rte_service.h
index ca9950d091..c7d037d862 100644
--- a/lib/librte_eal/include/rte_service.h
+++ b/lib/librte_eal/include/rte_service.h
@@ -47,10 +47,7 @@ extern "C" {
 #define RTE_SERVICE_CAP_MT_SAFE (1 << 0)
 
 /**
- *  Return the number of services registered.
- *
- * The number of services registered can be passed to *rte_service_get_by_id*,
- * enabling the application to retrieve the specification of each service.
+ * Return the number of services registered.
  *
  * @return The number of services registered.
  */
diff --git a/lib/librte_eal/version.map b/lib/librte_eal/version.map
index 354c068f31..1eeb5f3371 100644
--- a/lib/librte_eal/version.map
+++ b/lib/librte_eal/version.map
@@ -159,7 +159,6 @@ DPDK_21 {
 	rte_service_component_unregister;
 	rte_service_dump;
 	rte_service_finalize;
-	rte_service_get_by_id;
 	rte_service_get_by_name;
 	rte_service_get_count;
 	rte_service_get_name;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.938345700 +0800
+++ 0130-service-clean-references-to-removed-symbol.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From 60e0e75b615fc94b8538a5334dffc0935864438c Mon Sep 17 00:00:00 2001
+From 6baf95a98d58ba1c37fa05bd03ce93036f7dfde9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 60e0e75b615fc94b8538a5334dffc0935864438c ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -37 +39 @@
-index fc305c1c71..7a307e3cc9 100644
+index 354c068f31..1eeb5f3371 100644

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'drivers: fix log level after loading' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (127 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'service: clean references to removed symbol' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'test: proceed if timer subsystem already initialized' " Xueming Li
                   ` (98 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: Luca Boccassi, David Marchand, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/92805a55dad81d908062f91bab14207b006e2d5b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 92805a55dad81d908062f91bab14207b006e2d5b Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Tue, 6 Apr 2021 15:22:03 +0200
Subject: [PATCH] drivers: fix log level after loading
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 3be42081bae707c4ad53e62a01a4af82151b8019 ]

When compiled as a shared object, and loaded at runtime as a plugin,
the drivers should get the log level set earlier at EAL init
by the user through --log-level option.

The function for applying the log level setting is
rte_log_register_type_and_pick_level().
It is called by most drivers via RTE_LOG_REGISTER().

The drivers common/mlx5, bcmfs and e1000 were missing,
so the user-specified log level was not applied when
those drivers were loaded as plugins.
The macro RTE_LOG_REGISTER() is used for those drivers.

The unnecessary protection for double registration
is removed from e1000.

Fixes: 9c99878aa1b1 ("log: introduce logtype register macro")
Fixes: c8e79da7c676 ("crypto/bcmfs: introduce BCMFS driver")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/common/mlx5/mlx5_common.c |  9 +-----
 drivers/crypto/bcmfs/bcmfs_logs.c | 17 ++---------
 drivers/net/e1000/e1000_logs.c    | 49 ++++---------------------------
 drivers/net/e1000/em_ethdev.c     |  6 ----
 drivers/net/e1000/igb_ethdev.c    |  6 ----
 5 files changed, 8 insertions(+), 79 deletions(-)

diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c
index 044513223c..4a0992ac8d 100644
--- a/drivers/common/mlx5/mlx5_common.c
+++ b/drivers/common/mlx5/mlx5_common.c
@@ -16,8 +16,6 @@
 #include "mlx5_malloc.h"
 #include "mlx5_common_pci.h"
 
-int mlx5_common_logtype;
-
 uint8_t haswell_broadwell_cpu;
 
 /* In case this is an x86_64 intel processor to check if
@@ -43,12 +41,7 @@ static inline void mlx5_cpu_id(unsigned int level,
 }
 #endif
 
-RTE_INIT_PRIO(mlx5_log_init, LOG)
-{
-	mlx5_common_logtype = rte_log_register("pmd.common.mlx5");
-	if (mlx5_common_logtype >= 0)
-		rte_log_set_level(mlx5_common_logtype, RTE_LOG_NOTICE);
-}
+RTE_LOG_REGISTER(mlx5_common_logtype, pmd.common.mlx5, NOTICE)
 
 static bool mlx5_common_initialized;
 
diff --git a/drivers/crypto/bcmfs/bcmfs_logs.c b/drivers/crypto/bcmfs/bcmfs_logs.c
index 86f4ff3b53..701da9ecf3 100644
--- a/drivers/crypto/bcmfs/bcmfs_logs.c
+++ b/drivers/crypto/bcmfs/bcmfs_logs.c
@@ -8,9 +8,6 @@
 
 #include "bcmfs_logs.h"
 
-int bcmfs_conf_logtype;
-int bcmfs_dp_logtype;
-
 int
 bcmfs_hexdump_log(uint32_t level, uint32_t logtype, const char *title,
 		const void *buf, unsigned int len)
@@ -24,15 +21,5 @@ bcmfs_hexdump_log(uint32_t level, uint32_t logtype, const char *title,
 	return 0;
 }
 
-RTE_INIT(bcmfs_device_init_log)
-{
-	/* Configuration and general logs */
-	bcmfs_conf_logtype = rte_log_register("pmd.bcmfs_config");
-	if (bcmfs_conf_logtype >= 0)
-		rte_log_set_level(bcmfs_conf_logtype, RTE_LOG_NOTICE);
-
-	/* data-path logs */
-	bcmfs_dp_logtype = rte_log_register("pmd.bcmfs_fp");
-	if (bcmfs_dp_logtype >= 0)
-		rte_log_set_level(bcmfs_dp_logtype, RTE_LOG_NOTICE);
-}
+RTE_LOG_REGISTER(bcmfs_conf_logtype, pmd.bcmfs_config, NOTICE)
+RTE_LOG_REGISTER(bcmfs_dp_logtype, pmd.bcmfs_fp, NOTICE)
diff --git a/drivers/net/e1000/e1000_logs.c b/drivers/net/e1000/e1000_logs.c
index 231f5c03ef..d9b8a4672f 100644
--- a/drivers/net/e1000/e1000_logs.c
+++ b/drivers/net/e1000/e1000_logs.c
@@ -4,53 +4,14 @@
 
 #include "e1000_logs.h"
 
-/* declared as extern in e1000_logs.h */
-int e1000_logtype_init;
-int e1000_logtype_driver;
-
-#ifdef RTE_LIBRTE_E1000_DEBUG_RX
-int e1000_logtype_rx;
-#endif
-#ifdef RTE_LIBRTE_E1000_DEBUG_TX
-int e1000_logtype_tx;
-#endif
-#ifdef RTE_LIBRTE_E1000_DEBUG_TX_FREE
-int e1000_logtype_tx_free;
-#endif
-
-/* avoids double registering of logs if EM and IGB drivers are in use */
-static int e1000_log_initialized;
-
-void
-e1000_igb_init_log(void)
-{
-	if (e1000_log_initialized)
-		return;
-
-	e1000_logtype_init = rte_log_register("pmd.net.e1000.init");
-	if (e1000_logtype_init >= 0)
-		rte_log_set_level(e1000_logtype_init, RTE_LOG_NOTICE);
-	e1000_logtype_driver = rte_log_register("pmd.net.e1000.driver");
-	if (e1000_logtype_driver >= 0)
-		rte_log_set_level(e1000_logtype_driver, RTE_LOG_NOTICE);
-
+RTE_LOG_REGISTER(e1000_logtype_init, pmd.net.e1000.init, NOTICE)
+RTE_LOG_REGISTER(e1000_logtype_driver, pmd.net.e1000.driver, NOTICE)
 #ifdef RTE_LIBRTE_E1000_DEBUG_RX
-	e1000_logtype_rx = rte_log_register("pmd.net.e1000.rx");
-	if (e1000_logtype_rx >= 0)
-		rte_log_set_level(e1000_logtype_rx, RTE_LOG_DEBUG);
+RTE_LOG_REGISTER(e1000_logtype_rx, pmd.net.e1000.rx, DEBUG)
 #endif
-
 #ifdef RTE_LIBRTE_E1000_DEBUG_TX
-	e1000_logtype_tx = rte_log_register("pmd.net.e1000.tx");
-	if (e1000_logtype_tx >= 0)
-		rte_log_set_level(e1000_logtype_tx, RTE_LOG_DEBUG);
+RTE_LOG_REGISTER(e1000_logtype_tx, pmd.net.e1000.tx, DEBUG)
 #endif
-
 #ifdef RTE_LIBRTE_E1000_DEBUG_TX_FREE
-	e1000_logtype_tx_free = rte_log_register("pmd.net.e1000.tx_free");
-	if (e1000_logtype_tx_free >= 0)
-		rte_log_set_level(e1000_logtype_tx_free, RTE_LOG_DEBUG);
+RTE_LOG_REGISTER(e1000_logtype_tx_free, pmd.net.e1000.tx_free, DEBUG)
 #endif
-
-	e1000_log_initialized = 1;
-}
diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index f116063876..35be2d5aa5 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -1850,9 +1850,3 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,
 RTE_PMD_REGISTER_PCI(net_e1000_em, rte_em_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(net_e1000_em, pci_id_em_map);
 RTE_PMD_REGISTER_KMOD_DEP(net_e1000_em, "* igb_uio | uio_pci_generic | vfio-pci");
-
-/* see e1000_logs.c */
-RTE_INIT(igb_init_log)
-{
-	e1000_igb_init_log();
-}
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 669af23103..2337d5f767 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -5438,9 +5438,3 @@ RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb, "* igb_uio | uio_pci_generic | vfio-pci
 RTE_PMD_REGISTER_PCI(net_e1000_igb_vf, rte_igbvf_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(net_e1000_igb_vf, pci_id_igbvf_map);
 RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb_vf, "* igb_uio | vfio-pci");
-
-/* see e1000_logs.c */
-RTE_INIT(e1000_init_log)
-{
-	e1000_igb_init_log();
-}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.961099100 +0800
+++ 0131-drivers-fix-log-level-after-loading.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From 3be42081bae707c4ad53e62a01a4af82151b8019 Mon Sep 17 00:00:00 2001
+From 92805a55dad81d908062f91bab14207b006e2d5b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 3be42081bae707c4ad53e62a01a4af82151b8019 ]
@@ -24 +26,0 @@
-Cc: stable@dpdk.org
@@ -38 +40 @@
-index c26a2cfa30..f92f05bda5 100644
+index 044513223c..4a0992ac8d 100644
@@ -41,2 +43,2 @@
-@@ -14,8 +14,6 @@
- #include "mlx5_common_utils.h"
+@@ -16,8 +16,6 @@
+ #include "mlx5_malloc.h"
@@ -50 +52 @@
-@@ -41,12 +39,7 @@ static inline void mlx5_cpu_id(unsigned int level,
+@@ -43,12 +41,7 @@ static inline void mlx5_cpu_id(unsigned int level,
@@ -160 +162 @@
-index 3c6f643c19..3e7ccdbf09 100644
+index f116063876..35be2d5aa5 100644
@@ -174 +176 @@
-index 17ee6e91a0..a1a72339ba 100644
+index 669af23103..2337d5f767 100644
@@ -177 +179 @@
-@@ -5421,9 +5421,3 @@ RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb, "* igb_uio | uio_pci_generic | vfio-pci
+@@ -5438,9 +5438,3 @@ RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb, "* igb_uio | uio_pci_generic | vfio-pci

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'test: proceed if timer subsystem already initialized' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (128 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'drivers: fix log level after loading' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'eal: fix evaluation of log level option' " Xueming Li
                   ` (97 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Stanislaw Kardach; +Cc: Luca Boccassi, Michal Krawczyk, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/4fc1996894bf0d712abfe42550da8d191c91cc01

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4fc1996894bf0d712abfe42550da8d191c91cc01 Mon Sep 17 00:00:00 2001
From: Stanislaw Kardach <kda@semihalf.com>
Date: Fri, 26 Mar 2021 11:47:59 +0100
Subject: [PATCH] test: proceed if timer subsystem already initialized
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 3dd7d693ff73dac58999ed7ea6b27d0adc8dc6bc ]

rte_timer_subsystem_init() may return -EALREADY if the timer subsystem
was already initialized. This can happen i.e. in PMD code (see
eth_ena_dev_init). This is not an error, rather a notification as the
initialization function simply returns without any action taken.

Fixes: 50247fe03fe0 ("test/timer: exercise new APIs in secondary process")

Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
---
 app/test/test.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/app/test/test.c b/app/test/test.c
index 624dd48042..864523ed61 100644
--- a/app/test/test.c
+++ b/app/test/test.c
@@ -134,8 +134,13 @@ main(int argc, char **argv)
 		goto out;
 	}
 
+	argv += ret;
+
+	prgname = argv[0];
+
 #ifdef RTE_LIB_TIMER
-	if (rte_timer_subsystem_init() < 0) {
+	ret = rte_timer_subsystem_init();
+	if (ret < 0 && ret != -EALREADY) {
 		ret = -1;
 		goto out;
 	}
@@ -146,10 +151,6 @@ main(int argc, char **argv)
 		goto out;
 	}
 
-	argv += ret;
-
-	prgname = argv[0];
-
 	recursive_call = getenv(RECURSIVE_ENV_VAR);
 	if (recursive_call != NULL) {
 		ret = do_recursive_call();
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:29.988227600 +0800
+++ 0132-test-proceed-if-timer-subsystem-already-initialized.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From 3dd7d693ff73dac58999ed7ea6b27d0adc8dc6bc Mon Sep 17 00:00:00 2001
+From 4fc1996894bf0d712abfe42550da8d191c91cc01 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 3dd7d693ff73dac58999ed7ea6b27d0adc8dc6bc ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'eal: fix evaluation of log level option' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (129 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'test: proceed if timer subsystem already initialized' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'app/regex: fix usage text' " Xueming Li
                   ` (96 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: David Marchand
  Cc: Luca Boccassi, Thomas Monjalon, Lukasz Wojciechowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/3ad213dfa731dc1fb5370c14f8cbac80993d42d3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 3ad213dfa731dc1fb5370c14f8cbac80993d42d3 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Fri, 9 Apr 2021 13:04:53 +0200
Subject: [PATCH] eal: fix evaluation of log level option
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 3e08081637ca082a8b58d5db2a11836dbe4e3e8c ]

--log-level option is handled early, no need to reevaluate it later in
EAL init.

Before:
$ echo quit | ./build/app/test/dpdk-test --no-huge -m 512 \
  --log-level=lib.eal:debug \
  --log-level=lib.ethdev:debug --log-level=lib.ethdev:info \
  |& grep -i log.level

EAL: lib.eal log level changed from info to debug
EAL: lib.ethdev log level changed from info to debug
EAL: lib.ethdev log level changed from debug to info
EAL: lib.ethdev log level changed from info to debug
EAL: lib.ethdev log level changed from debug to info
EAL: lib.telemetry log level changed from disabled to warning

After:
$ echo quit | ./build/app/test/dpdk-test --no-huge -m 512 \
  --log-level=lib.eal:debug \
  --log-level=lib.ethdev:debug --log-level=lib.ethdev:info \
  |& grep -i log.level

EAL: lib.eal log level changed from info to debug
EAL: lib.ethdev log level changed from info to debug
EAL: lib.ethdev log level changed from debug to info
EAL: lib.telemetry log level changed from disabled to warning

Fixes: 6c7216eefd63 ("eal: fix log level of early messages")
Fixes: 1c806ae5c3ac ("eal/windows: support command line options parsing")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Tested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
---
 lib/librte_eal/freebsd/eal.c | 4 ++++
 lib/librte_eal/linux/eal.c   | 4 ++++
 lib/librte_eal/windows/eal.c | 4 ++++
 3 files changed, 12 insertions(+)

diff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c
index 51478358c7..77b42de416 100644
--- a/lib/librte_eal/freebsd/eal.c
+++ b/lib/librte_eal/freebsd/eal.c
@@ -521,6 +521,10 @@ eal_parse_args(int argc, char **argv)
 			goto out;
 		}
 
+		/* eal_log_level_parse() already handled this option */
+		if (opt == OPT_LOG_LEVEL_NUM)
+			continue;
+
 		ret = eal_parse_common_option(opt, optarg, internal_conf);
 		/* common parser is not happy */
 		if (ret < 0) {
diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c
index 32b48c3de9..2ccbad7b08 100644
--- a/lib/librte_eal/linux/eal.c
+++ b/lib/librte_eal/linux/eal.c
@@ -704,6 +704,10 @@ eal_parse_args(int argc, char **argv)
 			goto out;
 		}
 
+		/* eal_log_level_parse() already handled this option */
+		if (opt == OPT_LOG_LEVEL_NUM)
+			continue;
+
 		ret = eal_parse_common_option(opt, optarg, internal_conf);
 		/* common parser is not happy */
 		if (ret < 0) {
diff --git a/lib/librte_eal/windows/eal.c b/lib/librte_eal/windows/eal.c
index 1e5f6576f0..78ac4adaeb 100644
--- a/lib/librte_eal/windows/eal.c
+++ b/lib/librte_eal/windows/eal.c
@@ -149,6 +149,10 @@ eal_parse_args(int argc, char **argv)
 			return -1;
 		}
 
+		/* eal_log_level_parse() already handled this option */
+		if (opt == OPT_LOG_LEVEL_NUM)
+			continue;
+
 		ret = eal_parse_common_option(opt, optarg, internal_conf);
 		/* common parser is not happy */
 		if (ret < 0) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:30.011520100 +0800
+++ 0133-eal-fix-evaluation-of-log-level-option.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From 3e08081637ca082a8b58d5db2a11836dbe4e3e8c Mon Sep 17 00:00:00 2001
+From 3ad213dfa731dc1fb5370c14f8cbac80993d42d3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 3e08081637ca082a8b58d5db2a11836dbe4e3e8c ]
@@ -35 +37,0 @@
-Cc: stable@dpdk.org
@@ -48 +50 @@
-index 5544701f20..f4d1676754 100644
+index 51478358c7..77b42de416 100644
@@ -63 +65 @@
-index baeead3301..ba19fc6347 100644
+index 32b48c3de9..2ccbad7b08 100644
@@ -66 +68 @@
-@@ -705,6 +705,10 @@ eal_parse_args(int argc, char **argv)
+@@ -704,6 +704,10 @@ eal_parse_args(int argc, char **argv)
@@ -78 +80 @@
-index 68a1fd1d21..41be20d89f 100644
+index 1e5f6576f0..78ac4adaeb 100644
@@ -81 +83 @@
-@@ -150,6 +150,10 @@ eal_parse_args(int argc, char **argv)
+@@ -149,6 +149,10 @@ eal_parse_args(int argc, char **argv)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'app/regex: fix usage text' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (130 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'eal: fix evaluation of log level option' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'app/testpmd: " Xueming Li
                   ` (95 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Ori Kam, Bruce Richardson, Andrew Rybchenko,
	David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7b581788eec45529377f6f9a645d93bf664cd8a0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7b581788eec45529377f6f9a645d93bf664cd8a0 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Mon, 5 Apr 2021 21:33:24 +0200
Subject: [PATCH] app/regex: fix usage text
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit e0512833d4acc6d037fa0ce8d453584618b98019 ]

The usage syntax help includes the program name which was fake.
It is replaced with the real name from argv.

Fixes: de06137cb295 ("app/regex: add RegEx test application")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 app/test-regex/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test-regex/main.c b/app/test-regex/main.c
index ac6152dea7..17ff392b1c 100644
--- a/app/test-regex/main.c
+++ b/app/test-regex/main.c
@@ -105,11 +105,11 @@ args_parse(int argc, char **argv, char *rules_file, char *data_file,
 			*nb_iterations = atoi(optarg);
 			break;
 		case ARG_HELP:
-			usage("RegEx test app");
+			usage(argv[0]);
 			break;
 		default:
 			fprintf(stderr, "Invalid option: %s\n", argv[optind]);
-			usage("RegEx test app");
+			usage(argv[0]);
 			rte_exit(EXIT_FAILURE, "Invalid option\n");
 			break;
 		}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:30.036958000 +0800
+++ 0134-app-regex-fix-usage-text.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From e0512833d4acc6d037fa0ce8d453584618b98019 Mon Sep 17 00:00:00 2001
+From 7b581788eec45529377f6f9a645d93bf664cd8a0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit e0512833d4acc6d037fa0ce8d453584618b98019 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 18a22db533..8e665df73c 100644
+index ac6152dea7..17ff392b1c 100644
@@ -25,2 +27,2 @@
-@@ -159,10 +159,10 @@ args_parse(int argc, char **argv, char *rules_file, char *data_file,
- 			*nb_segs = atoi(optarg);
+@@ -105,11 +105,11 @@ args_parse(int argc, char **argv, char *rules_file, char *data_file,
+ 			*nb_iterations = atoi(optarg);
@@ -32,0 +35 @@
+ 			fprintf(stderr, "Invalid option: %s\n", argv[optind]);
@@ -35 +38 @@
- 			rte_exit(EXIT_FAILURE, "Invalid option: %s\n", argv[optind]);
+ 			rte_exit(EXIT_FAILURE, "Invalid option\n");

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'app/testpmd: fix usage text' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (131 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'app/regex: fix usage text' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'eal: fix race in control thread creation' " Xueming Li
                   ` (94 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Luca Boccassi, Ajit Khaparde, Bruce Richardson, Andrew Rybchenko,
	Xiaoyun Li, Jens Freimann, Bing Zhao, David Marchand,
	dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/5a324f3e4d37108b640bbc0281b2edcf2ece3db3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5a324f3e4d37108b640bbc0281b2edcf2ece3db3 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Mon, 5 Apr 2021 21:33:25 +0200
Subject: [PATCH] app/testpmd: fix usage text
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit c6d527a1c8bdee9435ce150670acf1657234c0c1 ]

The options help text was including an incomplete and redundant
summary of the options before explaining each. The summary is dropped.

The details of the option --hairpin-mode had an extra space,
breaking the alignment with the next line.

There were some mismatches between options in the usage text
	sed -rn 's/.*\(" *--([a-z-]*)[=: ].*/\1/p' app/test-pmd/parameters.c
and the options declared in lgopts array
	sed -rn 's/.*\{.*"(.*)",.*,.*,.*},.*/\1/p' app/test-pmd/parameters.c
The misses were:
	--no-numa
	--enable-scatter
	--tx-ip
	--tx-udp
	--noisy-lkup-num-reads-writes
The option --ports was not implemented.

Fixes: 01817b10d27c ("app/testpmd: change hairpin queues setup")
Fixes: 3c156061b938 ("app/testpmd: add noisy neighbour forwarding mode")
Fixes: bf5b2126bf44 ("app/testpmd: add ability to set Tx IP and UDP parameters")
Fixes: 0499793854f5 ("app/testpmd: add scatter enabling option")
Fixes: 999b2ee0fe45 ("app/testpmd: enable NUMA support by default")
Fixes: af75078fece3 ("first public release")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
Reviewed-by: Bing Zhao <bingz@nvidia.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/parameters.c | 35 ++++++++---------------------------
 1 file changed, 8 insertions(+), 27 deletions(-)

diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
index df5eb10d84..b2935f96be 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -49,29 +49,7 @@
 static void
 usage(char* progname)
 {
-	printf("usage: %s [EAL options] -- "
-#ifdef RTE_LIB_CMDLINE
-	       "[--interactive|-i] "
-	       "[--cmdline-file=FILENAME] "
-#endif
-	       "[--help|-h] | [--auto-start|-a] | ["
-	       "--tx-first | --stats-period=PERIOD | "
-	       "--coremask=COREMASK --portmask=PORTMASK --numa "
-	       "--portlist=PORTLIST "
-	       "--mbuf-size= | --total-num-mbufs= | "
-	       "--nb-cores= | --nb-ports= | "
-#ifdef RTE_LIB_CMDLINE
-	       "--eth-peers-configfile= | "
-	       "--eth-peer=X,M:M:M:M:M:M | "
-	       "--tx-ip=SRC,DST | --tx-udp=PORT | "
-#endif
-	       "--pkt-filter-mode= |"
-	       "--rss-ip | --rss-udp | --rss-level-inner | --rss-level-outer |"
-	       "--rxpt= | --rxht= | --rxwt= |"
-	       " --rxfreet= | --txpt= | --txht= | --txwt= | --txfreet= | "
-	       "--txrst= | --tx-offloads= | | --rx-offloads= | "
-	       "--vxlan-gpe-port= | --geneve-parsed-port= | "
-	       "--record-core-cycles | --record-burst-stats]\n",
+	printf("\nUsage: %s [EAL options] -- [testpmd options]\n\n",
 	       progname);
 #ifdef RTE_LIB_CMDLINE
 	printf("  --interactive: run in interactive mode.\n");
@@ -97,6 +75,7 @@ usage(char* progname)
 	printf("  --portlist=PORTLIST: list of forwarding ports\n");
 	printf("  --numa: enable NUMA-aware allocation of RX/TX rings and of "
 	       "RX memory buffers (mbufs).\n");
+	printf("  --no-numa: disable NUMA-aware allocation.\n");
 	printf("  --port-numa-config=(port,socket)[,(port,socket)]: "
 	       "specify the socket on which the memory pool "
 	       "used by the port will be allocated.\n");
@@ -136,6 +115,7 @@ usage(char* progname)
 	       "monitoring on forwarding lcore id N.\n");
 #endif
 	printf("  --disable-crc-strip: disable CRC stripping by hardware.\n");
+	printf("  --enable-scatter: enable scattered Rx.\n");
 	printf("  --enable-lro: enable large receive offload.\n");
 	printf("  --enable-rx-cksum: enable rx hardware checksum offload.\n");
 	printf("  --enable-rx-timestamp: enable rx hardware timestamp offload.\n");
@@ -183,6 +163,8 @@ usage(char* progname)
 	printf("  --txpkts=X[,Y]*: set TX segment sizes"
 		" or total packet length.\n");
 	printf("  --txonly-multi-flow: generate multiple flows in txonly mode\n");
+	printf("  --tx-ip=src,dst: IP addresses in Tx-only mode\n");
+	printf("  --tx-udp=src[,dst]: UDP ports in Tx-only mode\n");
 	printf("  --disable-link-check: disable check on link status when "
 	       "starting/stopping ports.\n");
 	printf("  --disable-device-start: do not automatically start port\n");
@@ -213,14 +195,14 @@ usage(char* progname)
 	printf("  --noisy-lkup-memory=N: allocate N MB of VNF memory\n");
 	printf("  --noisy-lkup-num-writes=N: do N random writes per packet\n");
 	printf("  --noisy-lkup-num-reads=N: do N random reads per packet\n");
-	printf("  --noisy-lkup-num-writes=N: do N random reads and writes per packet\n");
+	printf("  --noisy-lkup-num-reads-writes=N: do N random reads and writes per packet\n");
 	printf("  --no-iova-contig: mempool memory can be IOVA non contiguous. "
 	       "valid only with --mp-alloc=anon\n");
 	printf("  --rx-mq-mode=0xX: hexadecimal bitmask of RX mq mode can be "
 	       "enabled\n");
 	printf("  --record-core-cycles: enable measurement of CPU cycles.\n");
 	printf("  --record-burst-stats: enable display of RX and TX bursts.\n");
-	printf("  --hairpin-mode=0xXX: bitmask set the hairpin port mode.\n "
+	printf("  --hairpin-mode=0xXX: bitmask set the hairpin port mode.\n"
 	       "    0x10 - explicit Tx rule, 0x02 - hairpin ports paired\n"
 	       "    0x01 - hairpin ports loop, 0x00 - hairpin port self\n");
 }
@@ -510,7 +492,6 @@ launch_args_parse(int argc, char** argv)
 #endif
 		{ "tx-first",			0, 0, 0 },
 		{ "stats-period",		1, 0, 0 },
-		{ "ports",			1, 0, 0 },
 		{ "nb-cores",			1, 0, 0 },
 		{ "nb-ports",			1, 0, 0 },
 		{ "coremask",			1, 0, 0 },
@@ -518,7 +499,7 @@ launch_args_parse(int argc, char** argv)
 		{ "portlist",			1, 0, 0 },
 		{ "numa",			0, 0, 0 },
 		{ "no-numa",			0, 0, 0 },
-		{ "mp-anon",			0, 0, 0 },
+		{ "mp-anon",			0, 0, 0 }, /* deprecated */
 		{ "port-numa-config",           1, 0, 0 },
 		{ "ring-numa-config",           1, 0, 0 },
 		{ "socket-num",			1, 0, 0 },
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:30.059323800 +0800
+++ 0135-app-testpmd-fix-usage-text.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From c6d527a1c8bdee9435ce150670acf1657234c0c1 Mon Sep 17 00:00:00 2001
+From 5a324f3e4d37108b640bbc0281b2edcf2ece3db3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit c6d527a1c8bdee9435ce150670acf1657234c0c1 ]
@@ -30 +32,0 @@
-Cc: stable@dpdk.org
@@ -45 +47 @@
-index b7d4ef76b0..f3954c1c63 100644
+index df5eb10d84..b2935f96be 100644
@@ -95 +97 @@
-@@ -184,6 +164,8 @@ usage(char* progname)
+@@ -183,6 +163,8 @@ usage(char* progname)
@@ -101 +102,0 @@
- 	printf("  --eth-link-speed: force link speed.\n");
@@ -104 +105,2 @@
-@@ -215,14 +197,14 @@ usage(char* progname)
+ 	printf("  --disable-device-start: do not automatically start port\n");
+@@ -213,14 +195,14 @@ usage(char* progname)
@@ -121 +123 @@
-@@ -549,7 +531,6 @@ launch_args_parse(int argc, char** argv)
+@@ -510,7 +492,6 @@ launch_args_parse(int argc, char** argv)
@@ -129 +131 @@
-@@ -557,7 +538,7 @@ launch_args_parse(int argc, char** argv)
+@@ -518,7 +499,7 @@ launch_args_parse(int argc, char** argv)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'eal: fix race in control thread creation' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (132 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'app/testpmd: " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'eal: fix hang " Xueming Li
                   ` (93 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Luc Pelletier
  Cc: Luca Boccassi, Olivier Matz, Honnappa Nagarahalli, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/ea6d0d656192ccdc0220dd3f17d7abebe9a5e3f9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ea6d0d656192ccdc0220dd3f17d7abebe9a5e3f9 Mon Sep 17 00:00:00 2001
From: Luc Pelletier <lucp.at.work@gmail.com>
Date: Wed, 7 Apr 2021 16:16:04 -0400
Subject: [PATCH] eal: fix race in control thread creation
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit 34cc55cce6b180a6c3ee3fcf70a0fd56927f240d ]

The creation of control threads uses a pthread barrier for
synchronization. This patch fixes a race condition where the pthread
barrier could get destroyed while one of the threads has not yet
returned from the pthread_barrier_wait function, which could result in
undefined behaviour.

Fixes: 3a0d465d4c53 ("eal: fix use-after-free on control thread creation")

Signed-off-by: Luc Pelletier <lucp.at.work@gmail.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
---
 lib/librte_eal/common/eal_common_thread.c | 49 +++++++++++++----------
 1 file changed, 27 insertions(+), 22 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_thread.c b/lib/librte_eal/common/eal_common_thread.c
index 73a055902a..3347e91bf2 100644
--- a/lib/librte_eal/common/eal_common_thread.c
+++ b/lib/librte_eal/common/eal_common_thread.c
@@ -170,11 +170,19 @@ struct rte_thread_ctrl_params {
 	void *(*start_routine)(void *);
 	void *arg;
 	pthread_barrier_t configured;
+	unsigned int refcnt;
 };
 
+static void ctrl_params_free(struct rte_thread_ctrl_params *params)
+{
+	if (__atomic_sub_fetch(&params->refcnt, 1, __ATOMIC_ACQ_REL) == 0) {
+		pthread_barrier_destroy(&params->configured);
+		free(params);
+	}
+}
+
 static void *ctrl_thread_init(void *arg)
 {
-	int ret;
 	struct internal_config *internal_conf =
 		eal_get_internal_configuration();
 	rte_cpuset_t *cpuset = &internal_conf->ctrl_cpuset;
@@ -184,11 +192,8 @@ static void *ctrl_thread_init(void *arg)
 
 	__rte_thread_init(rte_lcore_id(), cpuset);
 
-	ret = pthread_barrier_wait(&params->configured);
-	if (ret == PTHREAD_BARRIER_SERIAL_THREAD) {
-		pthread_barrier_destroy(&params->configured);
-		free(params);
-	}
+	pthread_barrier_wait(&params->configured);
+	ctrl_params_free(params);
 
 	return start_routine(routine_arg);
 }
@@ -210,15 +215,18 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name,
 
 	params->start_routine = start_routine;
 	params->arg = arg;
+	params->refcnt = 2;
 
-	pthread_barrier_init(&params->configured, NULL, 2);
-
-	ret = pthread_create(thread, attr, ctrl_thread_init, (void *)params);
+	ret = pthread_barrier_init(&params->configured, NULL, 2);
 	if (ret != 0) {
 		free(params);
 		return -ret;
 	}
 
+	ret = pthread_create(thread, attr, ctrl_thread_init, (void *)params);
+	if (ret != 0)
+		goto fail;
+
 	if (name != NULL) {
 		ret = rte_thread_setname(*thread, name);
 		if (ret < 0)
@@ -227,25 +235,22 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name,
 	}
 
 	ret = pthread_setaffinity_np(*thread, sizeof(*cpuset), cpuset);
-	if (ret)
-		goto fail;
+	if (ret != 0)
+		goto fail_cancel;
 
-	ret = pthread_barrier_wait(&params->configured);
-	if (ret == PTHREAD_BARRIER_SERIAL_THREAD) {
-		pthread_barrier_destroy(&params->configured);
-		free(params);
-	}
+	pthread_barrier_wait(&params->configured);
+	ctrl_params_free(params);
 
 	return 0;
 
-fail:
-	if (PTHREAD_BARRIER_SERIAL_THREAD ==
-	    pthread_barrier_wait(&params->configured)) {
-		pthread_barrier_destroy(&params->configured);
-		free(params);
-	}
+fail_cancel:
 	pthread_cancel(*thread);
 	pthread_join(*thread, NULL);
+
+fail:
+	pthread_barrier_destroy(&params->configured);
+	free(params);
+
 	return -ret;
 }
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:30.083675200 +0800
+++ 0136-eal-fix-race-in-control-thread-creation.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From 34cc55cce6b180a6c3ee3fcf70a0fd56927f240d Mon Sep 17 00:00:00 2001
+From ea6d0d656192ccdc0220dd3f17d7abebe9a5e3f9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit 34cc55cce6b180a6c3ee3fcf70a0fd56927f240d ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'eal: fix hang in control thread creation' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (133 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'eal: fix race in control thread creation' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/hns3: fix MTU config complexity' " Xueming Li
                   ` (92 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Luc Pelletier
  Cc: Luca Boccassi, Olivier Matz, Honnappa Nagarahalli, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/1324beafbae000e862df621c2378fa3b2631f98c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1324beafbae000e862df621c2378fa3b2631f98c Mon Sep 17 00:00:00 2001
From: Luc Pelletier <lucp.at.work@gmail.com>
Date: Wed, 7 Apr 2021 16:16:06 -0400
Subject: [PATCH] eal: fix hang in control thread creation
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit af68c1d699be6c369e296b775bdbf13ae18b79cc ]

The affinity of a control thread is set after it has been launched. If
setting the affinity fails, pthread_cancel is called followed by a call
to pthread_join, which can hang forever if the thread's start routine
doesn't call a pthread cancellation point.

This patch modifies the logic so that the control thread exits
gracefully if the affinity cannot be set successfully and removes the
call to pthread_cancel.

Fixes: 6383d2642b62 ("eal: set name when creating a control thread")

Signed-off-by: Luc Pelletier <lucp.at.work@gmail.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
---
 lib/librte_eal/common/eal_common_thread.c | 29 +++++++++++++----------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_thread.c b/lib/librte_eal/common/eal_common_thread.c
index 3347e91bf2..03dbcd9e86 100644
--- a/lib/librte_eal/common/eal_common_thread.c
+++ b/lib/librte_eal/common/eal_common_thread.c
@@ -187,14 +187,18 @@ static void *ctrl_thread_init(void *arg)
 		eal_get_internal_configuration();
 	rte_cpuset_t *cpuset = &internal_conf->ctrl_cpuset;
 	struct rte_thread_ctrl_params *params = arg;
-	void *(*start_routine)(void *) = params->start_routine;
+	void *(*start_routine)(void *);
 	void *routine_arg = params->arg;
 
 	__rte_thread_init(rte_lcore_id(), cpuset);
 
 	pthread_barrier_wait(&params->configured);
+	start_routine = params->start_routine;
 	ctrl_params_free(params);
 
+	if (start_routine == NULL)
+		return NULL;
+
 	return start_routine(routine_arg);
 }
 
@@ -218,14 +222,12 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name,
 	params->refcnt = 2;
 
 	ret = pthread_barrier_init(&params->configured, NULL, 2);
-	if (ret != 0) {
-		free(params);
-		return -ret;
-	}
+	if (ret != 0)
+		goto fail_no_barrier;
 
 	ret = pthread_create(thread, attr, ctrl_thread_init, (void *)params);
 	if (ret != 0)
-		goto fail;
+		goto fail_with_barrier;
 
 	if (name != NULL) {
 		ret = rte_thread_setname(*thread, name);
@@ -236,19 +238,22 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name,
 
 	ret = pthread_setaffinity_np(*thread, sizeof(*cpuset), cpuset);
 	if (ret != 0)
-		goto fail_cancel;
+		params->start_routine = NULL;
 
 	pthread_barrier_wait(&params->configured);
 	ctrl_params_free(params);
 
-	return 0;
+	if (ret != 0)
+		/* start_routine has been set to NULL above; */
+		/* ctrl thread will exit immediately */
+		pthread_join(*thread, NULL);
 
-fail_cancel:
-	pthread_cancel(*thread);
-	pthread_join(*thread, NULL);
+	return -ret;
 
-fail:
+fail_with_barrier:
 	pthread_barrier_destroy(&params->configured);
+
+fail_no_barrier:
 	free(params);
 
 	return -ret;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:30.107955900 +0800
+++ 0137-eal-fix-hang-in-control-thread-creation.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From af68c1d699be6c369e296b775bdbf13ae18b79cc Mon Sep 17 00:00:00 2001
+From 1324beafbae000e862df621c2378fa3b2631f98c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit af68c1d699be6c369e296b775bdbf13ae18b79cc ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: fix MTU config complexity' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (134 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'eal: fix hang " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/hns3: update HiSilicon copyright syntax' " Xueming Li
                   ` (91 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Min Hu (Connor); +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/fdd1a587627de72b4366222437191b0fda56f9c1

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From fdd1a587627de72b4366222437191b0fda56f9c1 Mon Sep 17 00:00:00 2001
From: "Min Hu (Connor)" <humin29@huawei.com>
Date: Thu, 1 Apr 2021 21:38:03 +0800
Subject: [PATCH] net/hns3: fix MTU config complexity
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit d81d78eb86d50732ba98a8b255d19c2f6292521c ]

This patch fixed cyclomatic complexity about MTU
in device configure process.

Fixes: 1f5ca0b460cd ("net/hns3: support some device operations")

Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 62 +++++++++++++++++++++-------------
 1 file changed, 38 insertions(+), 24 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index ba26230829..a4c6440768 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2302,6 +2302,41 @@ hns3_init_ring_with_vector(struct hns3_hw *hw)
 	return 0;
 }
 
+static int
+hns3_refresh_mtu(struct rte_eth_dev *dev, struct rte_eth_conf *conf)
+{
+	struct hns3_adapter *hns = dev->data->dev_private;
+	struct hns3_hw *hw = &hns->hw;
+	uint32_t max_rx_pkt_len;
+	uint16_t mtu;
+	int ret;
+
+	if (!(conf->rxmode.offloads & DEV_RX_OFFLOAD_JUMBO_FRAME))
+		return 0;
+
+	/*
+	 * If jumbo frames are enabled, MTU needs to be refreshed
+	 * according to the maximum RX packet length.
+	 */
+	max_rx_pkt_len = conf->rxmode.max_rx_pkt_len;
+	if (max_rx_pkt_len > HNS3_MAX_FRAME_LEN ||
+	    max_rx_pkt_len <= HNS3_DEFAULT_FRAME_LEN) {
+		hns3_err(hw, "maximum Rx packet length must be greater than %u "
+			 "and no more than %u when jumbo frame enabled.",
+			 (uint16_t)HNS3_DEFAULT_FRAME_LEN,
+			 (uint16_t)HNS3_MAX_FRAME_LEN);
+		return -EINVAL;
+	}
+
+	mtu = (uint16_t)HNS3_PKTLEN_TO_MTU(max_rx_pkt_len);
+	ret = hns3_dev_mtu_set(dev, mtu);
+	if (ret)
+		return ret;
+	dev->data->mtu = mtu;
+
+	return 0;
+}
+
 static int
 hns3_dev_configure(struct rte_eth_dev *dev)
 {
@@ -2313,8 +2348,6 @@ hns3_dev_configure(struct rte_eth_dev *dev)
 	uint16_t nb_rx_q = dev->data->nb_rx_queues;
 	uint16_t nb_tx_q = dev->data->nb_tx_queues;
 	struct rte_eth_rss_conf rss_conf;
-	uint32_t max_rx_pkt_len;
-	uint16_t mtu;
 	bool gro_en;
 	int ret;
 
@@ -2367,28 +2400,9 @@ hns3_dev_configure(struct rte_eth_dev *dev)
 			goto cfg_err;
 	}
 
-	/*
-	 * If jumbo frames are enabled, MTU needs to be refreshed
-	 * according to the maximum RX packet length.
-	 */
-	if (conf->rxmode.offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) {
-		max_rx_pkt_len = conf->rxmode.max_rx_pkt_len;
-		if (max_rx_pkt_len > HNS3_MAX_FRAME_LEN ||
-		    max_rx_pkt_len <= HNS3_DEFAULT_FRAME_LEN) {
-			hns3_err(hw, "maximum Rx packet length must be greater "
-				 "than %u and less than %u when jumbo frame enabled.",
-				 (uint16_t)HNS3_DEFAULT_FRAME_LEN,
-				 (uint16_t)HNS3_MAX_FRAME_LEN);
-			ret = -EINVAL;
-			goto cfg_err;
-		}
-
-		mtu = (uint16_t)HNS3_PKTLEN_TO_MTU(max_rx_pkt_len);
-		ret = hns3_dev_mtu_set(dev, mtu);
-		if (ret)
-			goto cfg_err;
-		dev->data->mtu = mtu;
-	}
+	ret = hns3_refresh_mtu(dev, conf);
+	if (ret)
+		goto cfg_err;
 
 	ret = hns3_dev_configure_vlan(dev);
 	if (ret)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:30.130931400 +0800
+++ 0138-net-hns3-fix-MTU-config-complexity.patch	2021-05-10 23:59:26.530000000 +0800
@@ -1 +1 @@
-From d81d78eb86d50732ba98a8b255d19c2f6292521c Mon Sep 17 00:00:00 2001
+From fdd1a587627de72b4366222437191b0fda56f9c1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit d81d78eb86d50732ba98a8b255d19c2f6292521c ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 9c718082b0..b07996928b 100644
+index ba26230829..a4c6440768 100644
@@ -21 +23 @@
-@@ -2372,6 +2372,41 @@ hns3_init_ring_with_vector(struct hns3_hw *hw)
+@@ -2302,6 +2302,41 @@ hns3_init_ring_with_vector(struct hns3_hw *hw)
@@ -63 +65 @@
-@@ -2382,8 +2417,6 @@ hns3_dev_configure(struct rte_eth_dev *dev)
+@@ -2313,8 +2348,6 @@ hns3_dev_configure(struct rte_eth_dev *dev)
@@ -72 +74 @@
-@@ -2431,28 +2464,9 @@ hns3_dev_configure(struct rte_eth_dev *dev)
+@@ -2367,28 +2400,9 @@ hns3_dev_configure(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 410+ messages in thread

* [dpdk-stable] patch 'net/hns3: update HiSilicon copyright syntax' has been queued to stable release 20.11.2
  2021-05-10 15:59 [dpdk-stable] patch 'vfio: fix DMA mapping granularity for IOVA as VA' has been queued to stable release 20.11.2 Xueming Li
                   ` (135 preceding siblings ...)
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/hns3: fix MTU config complexity' " Xueming Li
@ 2021-05-10 16:01 ` Xueming Li
  2021-05-10 16:01 ` [dpdk-stable] patch 'net/ena: fix releasing Tx ring mbufs' " Xueming Li
                   ` (90 subsequent siblings)
  227 siblings, 0 replies; 410+ messages in thread
From: Xueming Li @ 2021-05-10 16:01 UTC (permalink / raw)
  To: Min Hu (Connor); +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.2

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/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/steevenlee/dpdk

This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/7151983d32f65971637e38359ada3c5c09942e81

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7151983d32f65971637e38359ada3c5c09942e81 Mon Sep 17 00:00:00 2001
From: "Min Hu (Connor)" <humin29@huawei.com>
Date: Tue, 6 Apr 2021 08:57:36 +0800
Subject: [PATCH] net/hns3: update HiSilicon copyright syntax
Cc: Luca Boccassi <bluca@debian.org>

[ upstream commit fa485faca236bd0ac834b6ad7c36f5050305482e ]

According to the suggestion of our legal department,
to standardize the copyright license of our code to
avoid potential copyright risks, we make a unified
modification to the "Hisilicon", which was nonstandard,
in the main modules we maintain.

We change it to "HiSilicon", which is consistent with
the terms used on the following official website:
https://www.hisilicon.com/en/terms-of-use.

Fixes: 565829db8b8f ("net/hns3: add build and doc infrastructure")
Fixes: 952ebacce4f2 ("net/hns3: support SVE Rx")
Fixes: e31f123db06b ("net/hns3: support NEON Tx")
Fixes: c09c7847d892 ("net/hns3: support traffic management")

Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/hns3/hns3_cmd.c           | 2 +-
 drivers/net/hns3/hns3_cmd.h           | 2 +-
 drivers/net/hns3/hns3_dcb.c           | 2 +-
 drivers/net/hns3/hns3_dcb.h           | 2 +-
 drivers/net/hns3/hns3_ethdev.c        | 2 +-
 drivers/net/hns3/hns3_ethdev.h        | 2 +-
 drivers/net/hns3/hns3_ethdev_vf.c     | 2 +-
 drivers/net/hns3/hns3_fdir.c          | 2 +-
 drivers/net/hns3/hns3_fdir.h          | 2 +-
 drivers/net/hns3/hns3_flow.c          | 2 +-
 drivers/net/hns3/hns3_intr.c          | 2 +-
 drivers/net/hns3/hns3_intr.h          | 2 +-
 drivers/net/hns3/hns3_logs.h          | 2 +-
 drivers/net/hns3/hns3_mbx.c           | 2 +-
 drivers/net/hns3/hns3_mbx.h           | 2 +-
 drivers/net/hns3/hns3_mp.c            | 2 +-
 drivers/net/hns3/hns3_mp.h            | 2 +-
 drivers/net/hns3/hns3_regs.c          | 2 +-
 drivers/net/hns3/hns3_regs.h          | 2 +-
 drivers/net/hns3/hns3_rss.c           | 2 +-
 drivers/net/hns3/hns3_rss.h           | 2 +-
 drivers/net/hns3/hns3_rxtx.c          | 2 +-
 drivers/net/hns3/hns3_rxtx.h          | 2 +-
 drivers/net/hns3/hns3_rxtx_vec.c      | 2 +-
 drivers/net/hns3/hns3_rxtx_vec.h      | 2 +-
 drivers/net/hns3/hns3_rxtx_vec_neon.h | 2 +-
 drivers/net/hns3/hns3_rxtx_vec_sve.c  | 2 +-
 drivers/net/hns3/hns3_stats.c         | 2 +-
 drivers/net/hns3/hns3_stats.h         | 2 +-
 29 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index 7f115d37ef..3741adc828 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_ethdev_pci.h>
diff --git a/drivers/net/hns3/hns3_cmd.h b/drivers/net/hns3/hns3_cmd.h
index 2d0bab000e..c254f2d0bf 100644
--- a/drivers/net/hns3/hns3_cmd.h
+++ b/drivers/net/hns3/hns3_cmd.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_CMD_H_
diff --git a/drivers/net/hns3/hns3_dcb.c b/drivers/net/hns3/hns3_dcb.c
index ab77acd948..af084bd9f4 100644
--- a/drivers/net/hns3/hns3_dcb.c
+++ b/drivers/net/hns3/hns3_dcb.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_io.h>
diff --git a/drivers/net/hns3/hns3_dcb.h b/drivers/net/hns3/hns3_dcb.h
index fee23d9b4c..811e5304cf 100644
--- a/drivers/net/hns3/hns3_dcb.h
+++ b/drivers/net/hns3/hns3_dcb.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_DCB_H_
diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index a4c6440768..35ac92b7d1 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_alarm.h>
diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h
index f9f0e705f6..5b17a74bb2 100644
--- a/drivers/net/hns3/hns3_ethdev.h
+++ b/drivers/net/hns3/hns3_ethdev.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_ETHDEV_H_
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 366a1afa7d..ed0f716f71 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <linux/pci_regs.h>
diff --git a/drivers/net/hns3/hns3_fdir.c b/drivers/net/hns3/hns3_fdir.c
index 857cc94c98..118aa88264 100644
--- a/drivers/net/hns3/hns3_fdir.c
+++ b/drivers/net/hns3/hns3_fdir.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_ethdev_driver.h>
diff --git a/drivers/net/hns3/hns3_fdir.h b/drivers/net/hns3/hns3_fdir.h
index a5760a3ccf..b77745f221 100644
--- a/drivers/net/hns3/hns3_fdir.h
+++ b/drivers/net/hns3/hns3_fdir.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_FDIR_H_
diff --git a/drivers/net/hns3/hns3_flow.c b/drivers/net/hns3/hns3_flow.c
index 8e4519a425..25b16b3277 100644
--- a/drivers/net/hns3/hns3_flow.c
+++ b/drivers/net/hns3/hns3_flow.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_flow_driver.h>
diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c
index 99c500dba3..bebfe131cc 100644
--- a/drivers/net/hns3/hns3_intr.c
+++ b/drivers/net/hns3/hns3_intr.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_alarm.h>
diff --git a/drivers/net/hns3/hns3_intr.h b/drivers/net/hns3/hns3_intr.h
index 19de1aa2d8..593d55720b 100644
--- a/drivers/net/hns3/hns3_intr.h
+++ b/drivers/net/hns3/hns3_intr.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_INTR_H_
diff --git a/drivers/net/hns3/hns3_logs.h b/drivers/net/hns3/hns3_logs.h
index f3fc7b51d6..aa135db982 100644
--- a/drivers/net/hns3/hns3_logs.h
+++ b/drivers/net/hns3/hns3_logs.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_LOGS_H_
diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
index d2a5db8aab..7f47c55f29 100644
--- a/drivers/net/hns3/hns3_mbx.c
+++ b/drivers/net/hns3/hns3_mbx.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_ethdev_driver.h>
diff --git a/drivers/net/hns3/hns3_mbx.h b/drivers/net/hns3/hns3_mbx.h
index 7f7ade13fa..7f5fdd24f4 100644
--- a/drivers/net/hns3/hns3_mbx.h
+++ b/drivers/net/hns3/hns3_mbx.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_MBX_H_
diff --git a/drivers/net/hns3/hns3_mp.c b/drivers/net/hns3/hns3_mp.c
index ed2567a8ff..b2916fd788 100644
--- a/drivers/net/hns3/hns3_mp.c
+++ b/drivers/net/hns3/hns3_mp.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_eal.h>
diff --git a/drivers/net/hns3/hns3_mp.h b/drivers/net/hns3/hns3_mp.h
index 036546ae11..60ef2315db 100644
--- a/drivers/net/hns3/hns3_mp.h
+++ b/drivers/net/hns3/hns3_mp.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_MP_H_
diff --git a/drivers/net/hns3/hns3_regs.c b/drivers/net/hns3/hns3_regs.c
index 8afe132585..3d2e66a594 100644
--- a/drivers/net/hns3/hns3_regs.c
+++ b/drivers/net/hns3/hns3_regs.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_ethdev_pci.h>
diff --git a/drivers/net/hns3/hns3_regs.h b/drivers/net/hns3/hns3_regs.h
index 39fc5d1b18..6522e1ce0e 100644
--- a/drivers/net/hns3/hns3_regs.h
+++ b/drivers/net/hns3/hns3_regs.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_REGS_H_
diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c
index 7bd7745859..b42b36d5ba 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_ethdev.h>
diff --git a/drivers/net/hns3/hns3_rss.h b/drivers/net/hns3/hns3_rss.h
index 798c5c62df..d626fedeb8 100644
--- a/drivers/net/hns3/hns3_rss.h
+++ b/drivers/net/hns3/hns3_rss.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_RSS_H_
diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 6ba83f421c..d31f74b28f 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_bus_pci.h>
diff --git a/drivers/net/hns3/hns3_rxtx.h b/drivers/net/hns3/hns3_rxtx.h
index f7c60adc2e..6440d55e30 100644
--- a/drivers/net/hns3/hns3_rxtx.h
+++ b/drivers/net/hns3/hns3_rxtx.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_RXTX_H_
diff --git a/drivers/net/hns3/hns3_rxtx_vec.c b/drivers/net/hns3/hns3_rxtx_vec.c
index a26c83d146..d9b6814320 100644
--- a/drivers/net/hns3/hns3_rxtx_vec.c
+++ b/drivers/net/hns3/hns3_rxtx_vec.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2020 Hisilicon Limited.
+ * Copyright(c) 2020 HiSilicon Limited.
  */
 
 #include <rte_io.h>
diff --git a/drivers/net/hns3/hns3_rxtx_vec.h b/drivers/net/hns3/hns3_rxtx_vec.h
index 35d99032f4..08a3b3c539 100644
--- a/drivers/net/hns3/hns3_rxtx_vec.h
+++ b/drivers/net/hns3/hns3_rxtx_vec.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2020 Hisilicon Limited.
+ * Copyright(c) 2020 HiSilicon Limited.
  */
 
 #ifndef _HNS3_RXTX_VEC_H_
diff --git a/drivers/net/hns3/hns3_rxtx_vec_neon.h b/drivers/net/hns3/hns3_rxtx_vec_neon.h
index 54addbf240..e37072dd7c 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_neon.h
+++ b/drivers/net/hns3/hns3_rxtx_vec_neon.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2020 Hisilicon Limited.
+ * Copyright(c) 2020 HiSilicon Limited.
  */
 
 #ifndef _HNS3_RXTX_VEC_NEON_H_
diff --git a/drivers/net/hns3/hns3_rxtx_vec_sve.c b/drivers/net/hns3/hns3_rxtx_vec_sve.c
index 8c2c8f6108..c53cb9e630 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_sve.c
+++ b/drivers/net/hns3/hns3_rxtx_vec_sve.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2020 Hisilicon Limited.
+ * Copyright(c) 2020 HiSilicon Limited.
  */
 
 #include <arm_sve.h>
diff --git a/drivers/net/hns3/hns3_stats.c b/drivers/net/hns3/hns3_stats.c
index 48ab6a38bb..796ab99297 100644
--- a/drivers/net/hns3/hns3_stats.c
+++ b/drivers/net/hns3/hns3_stats.c
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #include <rte_ethdev.h>
diff --git a/drivers/net/hns3/hns3_stats.h b/drivers/net/hns3/hns3_stats.h
index 09b81b131a..684fdca4a1 100644
--- a/drivers/net/hns3/hns3_stats.h
+++ b/drivers/net/hns3/hns3_stats.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2018-2019 Hisilicon Limited.
+ * Copyright(c) 2018-2019 HiSilicon Limited.
  */
 
 #ifndef _HNS3_STATS_H_
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-10 23:59:30.157590800 +0800
+++ 0139-net-hns3-update-HiSilicon-copyright-syntax.patch	2021-05-10 23:59:26.540000000 +0800
@@ -1 +1 @@
-From fa485faca236bd0ac834b6ad7c36f5050305482e Mon Sep 17 00:00:00 2001
+From 7151983d32f65971637e38359ada3c5c09942e81 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Luca Boccassi <bluca@debian.org>
+
+[ upstream commit fa485faca236bd0ac834b6ad7c36f5050305482e ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -53,3 +55 @@
- drivers/net/hns3/hns3_tm.c            | 2 +-
- drivers/net/hns3/hns3_tm.h            | 2 +-
- 31 files changed, 31 insertions(+), 31 deletions(-)
+ 29 files changed, 29 insertions(+), 29 deletions(-)
@@ -58 +58 @@
-index 03f8048f27..1087178373 100644
+index 7f115d37ef..3741adc828 100644
@@ -67 +67 @@
- #include <ethdev_pci.h>
+ #include <rte_ethdev_pci.h>
@@ -69 +69 @@
-index 5d1fb67644..9ca25295b2 100644
+index 2d0bab000e..c254f2d0bf 100644
@@ -80 +80 @@
-index ebfc24044f..3fcec8220e 100644
+index ab77acd948..af084bd9f4 100644
@@ -91 +91 @@
-index 0d25d3b7ab..9c60ab948a 100644
+index fee23d9b4c..811e5304cf 100644
@@ -102 +102 @@
-index f695db3784..a9e2e93528 100644
+index a4c6440768..35ac92b7d1 100644
@@ -113 +113 @@
-index d23239d2e1..d666b1a1e9 100644
+index f9f0e705f6..5b17a74bb2 100644
@@ -124 +124 @@
-index 6c3ddcc50e..a677cc809f 100644
+index 366a1afa7d..ed0f716f71 100644
@@ -135 +135 @@
-index 896540df78..658f6a6fc1 100644
+index 857cc94c98..118aa88264 100644
@@ -144 +144 @@
- #include <ethdev_driver.h>
+ #include <rte_ethdev_driver.h>
@@ -157 +157 @@
-index 0c4e91109c..366a301fe8 100644
+in