patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9
@ 2021-05-17 16:21 Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/virtio: fix vectorized Rx queue rearm' " Christian Ehrhardt
                   ` (19 more replies)
  0 siblings, 20 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Stanislaw Kardach; +Cc: David Hunt, Lukasz Wojciechowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/4157d0d7306fbd2fdd20a2654128aff02113a528

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 4157d0d7306fbd2fdd20a2654128aff02113a528 Mon Sep 17 00:00:00 2001
From: Stanislaw Kardach <kda@semihalf.com>
Date: Wed, 28 Apr 2021 16:25:53 +0200
Subject: [PATCH] test/distributor: fix burst flush on worker quit

[ upstream commit 6cda39af86ffc629732aac79058207cb4044e952 ]

While working on RISC-V port I have encountered a situation where worker
threads get stuck in the rte_distributor_return_pkt() function in the
burst test.
Investigation showed some of the threads enter this function with
flag RTE_DISTRIB_GET_BUF set in the d->retptr64[0]. At the same time the
main thread has already passed rte_distributor_process() so nobody will
clear this flag and hence workers can't return.

What I've noticed is that adding a flush just after the last _process(),
similarly to how quit_workers() function is written in the
test_distributor.c fixes the issue.
Lukasz Wojciechowski reproduced the same issue on x86 using a VM with 32
emulated CPU cores to force some lcores not to be woken up.

Fixes: 7c3287a10535 ("test/distributor: add performance test for burst mode")

Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
Acked-by: David Hunt <david.hunt@intel.com>
Tested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Reviewed-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
---
 app/test/test_distributor_perf.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/test/test_distributor_perf.c b/app/test/test_distributor_perf.c
index 0f3c3d84c1..1f5db4c533 100644
--- a/app/test/test_distributor_perf.c
+++ b/app/test/test_distributor_perf.c
@@ -196,6 +196,7 @@ quit_workers(struct rte_distributor *d, struct rte_mempool *p)
 	rte_mempool_put_bulk(p, (void *)bufs, num_workers);
 
 	rte_distributor_process(d, NULL, 0);
+	rte_distributor_flush(d);
 	rte_eal_mp_wait_lcore();
 	quit = 0;
 	worker_idx = 0;
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:36.832215134 +0200
+++ 0190-test-distributor-fix-burst-flush-on-worker-quit.patch	2021-05-17 17:40:29.547812436 +0200
@@ -1 +1 @@
-From 6cda39af86ffc629732aac79058207cb4044e952 Mon Sep 17 00:00:00 2001
+From 4157d0d7306fbd2fdd20a2654128aff02113a528 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6cda39af86ffc629732aac79058207cb4044e952 ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org
@@ -32 +33 @@
-index 371a14ba4c..fdbeae6d2f 100644
+index 0f3c3d84c1..1f5db4c533 100644

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

* [dpdk-stable] patch 'net/virtio: fix vectorized Rx queue rearm' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: refactor multi-queue Rx configuration' " Christian Ehrhardt
                   ` (18 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Xueming Li; +Cc: David Christensen, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/a40eb7c57dc15bac2d74d3d4e2c13d6e8578a85a

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From a40eb7c57dc15bac2d74d3d4e2c13d6e8578a85a Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@nvidia.com>
Date: Wed, 14 Apr 2021 22:14:04 +0800
Subject: [PATCH] net/virtio: fix vectorized Rx queue rearm

[ upstream commit d99088431ea5d6bb568c5cb5542688453084dcc6 ]

When Rx queue worked in vectorized mode and rxd <= 512, under traffic of
high PPS rate, testpmd often start and receive packets of rxd without
further growth.

Testpmd started with rxq flush which tried to rx MAX_PKT_BURST(512)
packets and drop. When Rx burst size >= Rx queue size, all descriptors
in used queue consumed without rearm, device can't receive more packets.
The next Rx burst returned at once since no used descriptors found,
rearm logic was skipped, rx vq kept in starving state.

To avoid rx vq starving, this patch always check the available queue,
rearm if needed even no used descriptor reported by device.

Fixes: fc3d66212fed ("virtio: add vector Rx")
Fixes: 2d7c37194ee4 ("net/virtio: add NEON based Rx handler")
Fixes: 52b5a707e6ca ("net/virtio: add Altivec Rx")

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_rxtx_simple_altivec.c | 12 ++++++------
 drivers/net/virtio/virtio_rxtx_simple_neon.c    | 12 ++++++------
 drivers/net/virtio/virtio_rxtx_simple_sse.c     | 12 ++++++------
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/net/virtio/virtio_rxtx_simple_altivec.c b/drivers/net/virtio/virtio_rxtx_simple_altivec.c
index 003b6ec3f6..19dc37e774 100644
--- a/drivers/net/virtio/virtio_rxtx_simple_altivec.c
+++ b/drivers/net/virtio/virtio_rxtx_simple_altivec.c
@@ -85,6 +85,12 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 	if (unlikely(nb_pkts < RTE_VIRTIO_DESC_PER_LOOP))
 		return 0;
 
+	if (vq->vq_free_cnt >= RTE_VIRTIO_VPMD_RX_REARM_THRESH) {
+		virtio_rxq_rearm_vec(rxvq);
+		if (unlikely(virtqueue_kick_prepare(vq)))
+			virtqueue_notify(vq);
+	}
+
 	nb_used = VIRTQUEUE_NUSED(vq);
 
 	rte_compiler_barrier();
@@ -102,12 +108,6 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 
 	rte_prefetch0(rused);
 
-	if (vq->vq_free_cnt >= RTE_VIRTIO_VPMD_RX_REARM_THRESH) {
-		virtio_rxq_rearm_vec(rxvq);
-		if (unlikely(virtqueue_kick_prepare(vq)))
-			virtqueue_notify(vq);
-	}
-
 	nb_total = nb_used;
 	ref_rx_pkts = rx_pkts;
 	for (nb_pkts_received = 0;
diff --git a/drivers/net/virtio/virtio_rxtx_simple_neon.c b/drivers/net/virtio/virtio_rxtx_simple_neon.c
index 992e71f010..588a3af2a1 100644
--- a/drivers/net/virtio/virtio_rxtx_simple_neon.c
+++ b/drivers/net/virtio/virtio_rxtx_simple_neon.c
@@ -83,6 +83,12 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 	if (unlikely(nb_pkts < RTE_VIRTIO_DESC_PER_LOOP))
 		return 0;
 
+	if (vq->vq_free_cnt >= RTE_VIRTIO_VPMD_RX_REARM_THRESH) {
+		virtio_rxq_rearm_vec(rxvq);
+		if (unlikely(virtqueue_kick_prepare(vq)))
+			virtqueue_notify(vq);
+	}
+
 	nb_used = VIRTQUEUE_NUSED(vq);
 
 	rte_rmb();
@@ -100,12 +106,6 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 
 	rte_prefetch_non_temporal(rused);
 
-	if (vq->vq_free_cnt >= RTE_VIRTIO_VPMD_RX_REARM_THRESH) {
-		virtio_rxq_rearm_vec(rxvq);
-		if (unlikely(virtqueue_kick_prepare(vq)))
-			virtqueue_notify(vq);
-	}
-
 	nb_total = nb_used;
 	ref_rx_pkts = rx_pkts;
 	for (nb_pkts_received = 0;
diff --git a/drivers/net/virtio/virtio_rxtx_simple_sse.c b/drivers/net/virtio/virtio_rxtx_simple_sse.c
index f9ec4ae699..9a45886820 100644
--- a/drivers/net/virtio/virtio_rxtx_simple_sse.c
+++ b/drivers/net/virtio/virtio_rxtx_simple_sse.c
@@ -85,6 +85,12 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 	if (unlikely(nb_pkts < RTE_VIRTIO_DESC_PER_LOOP))
 		return 0;
 
+	if (vq->vq_free_cnt >= RTE_VIRTIO_VPMD_RX_REARM_THRESH) {
+		virtio_rxq_rearm_vec(rxvq);
+		if (unlikely(virtqueue_kick_prepare(vq)))
+			virtqueue_notify(vq);
+	}
+
 	nb_used = VIRTQUEUE_NUSED(vq);
 
 	rte_compiler_barrier();
@@ -102,12 +108,6 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 
 	rte_prefetch0(rused);
 
-	if (vq->vq_free_cnt >= RTE_VIRTIO_VPMD_RX_REARM_THRESH) {
-		virtio_rxq_rearm_vec(rxvq);
-		if (unlikely(virtqueue_kick_prepare(vq)))
-			virtqueue_notify(vq);
-	}
-
 	nb_total = nb_used;
 	ref_rx_pkts = rx_pkts;
 	for (nb_pkts_received = 0;
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:36.868113942 +0200
+++ 0191-net-virtio-fix-vectorized-Rx-queue-rearm.patch	2021-05-17 17:40:29.551812470 +0200
@@ -1 +1 @@
-From d99088431ea5d6bb568c5cb5542688453084dcc6 Mon Sep 17 00:00:00 2001
+From a40eb7c57dc15bac2d74d3d4e2c13d6e8578a85a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d99088431ea5d6bb568c5cb5542688453084dcc6 ]
+
@@ -22 +23,0 @@
-Cc: stable@dpdk.org
@@ -34 +35 @@
-index 62e5100a48..7534974ef4 100644
+index 003b6ec3f6..19dc37e774 100644
@@ -47 +48 @@
- 	nb_used = virtqueue_nused(vq);
+ 	nb_used = VIRTQUEUE_NUSED(vq);
@@ -64 +65 @@
-index c8e4b13a02..7fd92d1b0c 100644
+index 992e71f010..588a3af2a1 100644
@@ -67 +68 @@
-@@ -84,6 +84,12 @@ virtio_recv_pkts_vec(void *rx_queue,
+@@ -83,6 +83,12 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
@@ -77,2 +78 @@
- 	/* virtqueue_nused has a load-acquire or rte_io_rmb inside */
- 	nb_used = virtqueue_nused(vq);
+ 	nb_used = VIRTQUEUE_NUSED(vq);
@@ -80 +80,2 @@
-@@ -100,12 +106,6 @@ virtio_recv_pkts_vec(void *rx_queue,
+ 	rte_rmb();
+@@ -100,12 +106,6 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
@@ -94 +95 @@
-index ff4eba33d6..7577f5e86d 100644
+index f9ec4ae699..9a45886820 100644
@@ -107 +108 @@
- 	nb_used = virtqueue_nused(vq);
+ 	nb_used = VIRTQUEUE_NUSED(vq);
@@ -109,2 +110,2 @@
- 	if (unlikely(nb_used == 0))
-@@ -100,12 +106,6 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
+ 	rte_compiler_barrier();
+@@ -102,12 +108,6 @@ virtio_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,

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

* [dpdk-stable] patch 'net/bnxt: refactor multi-queue Rx configuration' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/virtio: fix vectorized Rx queue rearm' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix Rx timestamp when FIFO pending bit is set' " Christian Ehrhardt
                   ` (17 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Somnath Kotur; +Cc: Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/1a03f070178a1b75ea0724fc6613e8a7eec00ba0

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 1a03f070178a1b75ea0724fc6613e8a7eec00ba0 Mon Sep 17 00:00:00 2001
From: Somnath Kotur <somnath.kotur@broadcom.com>
Date: Mon, 26 Apr 2021 11:37:54 +0530
Subject: [PATCH] net/bnxt: refactor multi-queue Rx configuration

[ upstream commit 21b1677d87a23a9695be0cbcbdf38607a2d58f84 ]

Eliminate separate codepath/handling for single queue
as the multiqueue code path takes care of it as well.
The only difference being the end_grp_id being 1
now instead of 0 for single queue, but that does not matter
for single queue and does not alter any functionality.

Fixes: 6133f207970c ("net/bnxt: add Rx queue create/destroy")

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxq.c | 30 ------------------------------
 1 file changed, 30 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index 084f7ecf8f..376a7135a4 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -40,35 +40,6 @@ int bnxt_mq_rx_configure(struct bnxt *bp)
 
 	bp->nr_vnics = 0;
 
-	/* Single queue mode */
-	if (bp->rx_cp_nr_rings < 2) {
-		vnic = &bp->vnic_info[0];
-		if (!vnic) {
-			PMD_DRV_LOG(ERR, "VNIC alloc failed\n");
-			rc = -ENOMEM;
-			goto err_out;
-		}
-		vnic->flags |= BNXT_VNIC_INFO_BCAST;
-		bp->nr_vnics++;
-
-		rxq = bp->eth_dev->data->rx_queues[0];
-		rxq->vnic = vnic;
-
-		vnic->func_default = true;
-		vnic->start_grp_id = 0;
-		vnic->end_grp_id = vnic->start_grp_id;
-		filter = bnxt_alloc_filter(bp);
-		if (!filter) {
-			PMD_DRV_LOG(ERR, "L2 filter alloc failed\n");
-			rc = -ENOMEM;
-			goto err_out;
-		}
-		filter->mac_index = 0;
-		filter->flags |= HWRM_CFA_L2_FILTER_ALLOC_INPUT_FLAGS_OUTERMOST;
-		STAILQ_INSERT_TAIL(&vnic->filter, filter, next);
-		goto out;
-	}
-
 	/* Multi-queue mode */
 	if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_VMDQ_DCB_RSS) {
 		/* VMDq ONLY, VMDq+RSS, VMDq+DCB, VMDq+DCB+RSS */
@@ -163,7 +134,6 @@ skip_filter_allocation:
 		end_grp_id += nb_q_per_grp;
 	}
 
-out:
 	bp->rx_num_qs_per_vnic = nb_q_per_grp;
 
 	if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) {
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:36.907424151 +0200
+++ 0192-net-bnxt-refactor-multi-queue-Rx-configuration.patch	2021-05-17 17:40:29.551812470 +0200
@@ -1 +1 @@
-From 21b1677d87a23a9695be0cbcbdf38607a2d58f84 Mon Sep 17 00:00:00 2001
+From 1a03f070178a1b75ea0724fc6613e8a7eec00ba0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 21b1677d87a23a9695be0cbcbdf38607a2d58f84 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 2b0d3d4ac7..45e0c3d01c 100644
+index 084f7ecf8f..376a7135a4 100644

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

* [dpdk-stable] patch 'net/bnxt: fix Rx timestamp when FIFO pending bit is set' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/virtio: fix vectorized Rx queue rearm' " Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: refactor multi-queue Rx configuration' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix dynamic VNIC count' " Christian Ehrhardt
                   ` (16 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Somnath Kotur; +Cc: Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/bf80db99953489ed4c2d626cc45fa26659260817

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From bf80db99953489ed4c2d626cc45fa26659260817 Mon Sep 17 00:00:00 2001
From: Somnath Kotur <somnath.kotur@broadcom.com>
Date: Mon, 26 Apr 2021 11:37:55 +0530
Subject: [PATCH] net/bnxt: fix Rx timestamp when FIFO pending bit is set

[ upstream commit f8120fd07bf0ebdbcfa7e1a46c91df9d611ca940 ]

Fix to clear the Rx FIFO while reading the timestamp.
If the Rx FIFO has pending bit set, keep reading to clear it
and return the last valid timestamp instead of unconditionally
returning an error.

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

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt.h        |  1 +
 drivers/net/bnxt/bnxt_ethdev.c | 38 ++++++++++++++++++++++++++++++----
 2 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
index 0a0ecaafa8..386d9c3cf0 100644
--- a/drivers/net/bnxt/bnxt.h
+++ b/drivers/net/bnxt/bnxt.h
@@ -271,6 +271,7 @@ struct rte_flow {
 	struct bnxt_vnic_info	*vnic;
 };
 
+#define BNXT_PTP_RX_PND_CNT		10
 #define BNXT_PTP_FLAGS_PATH_TX		0x0
 #define BNXT_PTP_FLAGS_PATH_RX		0x1
 #define BNXT_PTP_FLAGS_CURRENT_TIME	0x2
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 29330f5250..10ebf41241 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3471,6 +3471,38 @@ static int bnxt_get_tx_ts(struct bnxt *bp, uint64_t *ts)
 	return 0;
 }
 
+static int bnxt_clr_rx_ts(struct bnxt *bp, uint64_t *last_ts)
+{
+	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
+	struct bnxt_pf_info *pf = bp->pf;
+	uint16_t port_id;
+	int i = 0;
+	uint32_t fifo;
+
+	if (!ptp || (bp->flags & BNXT_FLAG_CHIP_P5))
+		return -EINVAL;
+
+	port_id = pf->port_id;
+	fifo = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 +
+				ptp->rx_mapped_regs[BNXT_PTP_RX_FIFO]));
+	while ((fifo & BNXT_PTP_RX_FIFO_PENDING) && (i < BNXT_PTP_RX_PND_CNT)) {
+		rte_write32(1 << port_id, (uint8_t *)bp->bar0 +
+			    ptp->rx_mapped_regs[BNXT_PTP_RX_FIFO_ADV]);
+		fifo = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 +
+					ptp->rx_mapped_regs[BNXT_PTP_RX_FIFO]));
+		*last_ts = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 +
+					ptp->rx_mapped_regs[BNXT_PTP_RX_TS_L]));
+		*last_ts |= (uint64_t)rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 +
+					ptp->rx_mapped_regs[BNXT_PTP_RX_TS_H])) << 32;
+		i++;
+	}
+
+	if (i >= BNXT_PTP_RX_PND_CNT)
+		return -EBUSY;
+
+	return 0;
+}
+
 static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t *ts)
 {
 	struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
@@ -3492,10 +3524,8 @@ static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t *ts)
 
 	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) {
-/*		bnxt_clr_rx_ts(bp);	  TBD  */
-		return -EBUSY;
-	}
+	if (fifo & BNXT_PTP_RX_FIFO_PENDING)
+		return bnxt_clr_rx_ts(bp, ts);
 
 	*ts = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 +
 				ptp->rx_mapped_regs[BNXT_PTP_RX_TS_L]));
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:36.942708022 +0200
+++ 0193-net-bnxt-fix-Rx-timestamp-when-FIFO-pending-bit-is-s.patch	2021-05-17 17:40:29.555812501 +0200
@@ -1 +1 @@
-From f8120fd07bf0ebdbcfa7e1a46c91df9d611ca940 Mon Sep 17 00:00:00 2001
+From bf80db99953489ed4c2d626cc45fa26659260817 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f8120fd07bf0ebdbcfa7e1a46c91df9d611ca940 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index bd2dec4d63..72513fe66b 100644
+index 0a0ecaafa8..386d9c3cf0 100644
@@ -25 +26 @@
-@@ -306,6 +306,7 @@ struct rte_flow {
+@@ -271,6 +271,7 @@ struct rte_flow {
@@ -34 +35 @@
-index dba5b9f94d..748b766969 100644
+index 29330f5250..10ebf41241 100644
@@ -37 +38 @@
-@@ -3390,6 +3390,38 @@ static int bnxt_get_tx_ts(struct bnxt *bp, uint64_t *ts)
+@@ -3471,6 +3471,38 @@ static int bnxt_get_tx_ts(struct bnxt *bp, uint64_t *ts)
@@ -76 +77 @@
-@@ -3408,10 +3440,8 @@ static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t *ts)
+@@ -3492,10 +3524,8 @@ static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t *ts)

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

* [dpdk-stable] patch 'net/bnxt: fix dynamic VNIC count' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (2 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix Rx timestamp when FIFO pending bit is set' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix single PF per port check' " Christian Ehrhardt
                   ` (15 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Lance Richardson; +Cc: Ajit Khaparde, Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/64e80dd923730f0ec39aa1e906f5a7484ae126ec

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 64e80dd923730f0ec39aa1e906f5a7484ae126ec Mon Sep 17 00:00:00 2001
From: Lance Richardson <lance.richardson@broadcom.com>
Date: Wed, 28 Apr 2021 18:03:44 -0400
Subject: [PATCH] net/bnxt: fix dynamic VNIC count

[ upstream commit a0c2315a2a5f0a83d5d77ec745ac1de04a1e962b ]

Ensure that the current count of in-use VNICs is decremented
when a VNIC is freed. Don't attempt VNIC allocation when the
maximum supported number of VNICs is currently allocated.

Fixes: 49d0709b257f ("net/bnxt: delete and flush L2 filters cleanly")
Fixes: d24610f7bfda ("net/bnxt: allow flow creation when RSS is enabled")

Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reported-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 drivers/net/bnxt/bnxt.h      | 2 +-
 drivers/net/bnxt/bnxt_flow.c | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
index 386d9c3cf0..d5818e647c 100644
--- a/drivers/net/bnxt/bnxt.h
+++ b/drivers/net/bnxt/bnxt.h
@@ -573,7 +573,7 @@ struct bnxt {
 	uint32_t		max_ring_grps;
 	struct bnxt_ring_grp_info	*grp_info;
 
-	unsigned int		nr_vnics;
+	uint16_t			nr_vnics;
 
 #define BNXT_GET_DEFAULT_VNIC(bp)	(&(bp)->vnic_info[0])
 	struct bnxt_vnic_info	*vnic_info;
diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c
index e110c20f15..1a2a9200a8 100644
--- a/drivers/net/bnxt/bnxt_flow.c
+++ b/drivers/net/bnxt/bnxt_flow.c
@@ -922,6 +922,9 @@ static int bnxt_vnic_prep(struct bnxt *bp, struct bnxt_vnic_info *vnic)
 	uint64_t rx_offloads = dev_conf->rxmode.offloads;
 	int rc;
 
+	if (bp->nr_vnics > bp->max_vnics - 1)
+		return -ENOMEM;
+
 	rc = bnxt_vnic_grp_alloc(bp, vnic);
 	if (rc)
 		goto ret;
@@ -1514,6 +1517,7 @@ bnxt_flow_validate(struct rte_eth_dev *dev,
 			bnxt_hwrm_vnic_ctx_free(bp, vnic);
 			bnxt_hwrm_vnic_free(bp, vnic);
 			vnic->rx_queue_cnt = 0;
+			bp->nr_vnics--;
 			PMD_DRV_LOG(DEBUG, "Free VNIC\n");
 		}
 	}
@@ -1893,6 +1897,7 @@ done:
 
 			bnxt_hwrm_vnic_free(bp, vnic);
 			vnic->rx_queue_cnt = 0;
+			bp->nr_vnics--;
 		}
 	} else {
 		rte_flow_error_set(error, -ret,
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:36.982348044 +0200
+++ 0194-net-bnxt-fix-dynamic-VNIC-count.patch	2021-05-17 17:40:29.559812531 +0200
@@ -1 +1 @@
-From a0c2315a2a5f0a83d5d77ec745ac1de04a1e962b Mon Sep 17 00:00:00 2001
+From 64e80dd923730f0ec39aa1e906f5a7484ae126ec Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a0c2315a2a5f0a83d5d77ec745ac1de04a1e962b ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 72513fe66b..8558565617 100644
+index 386d9c3cf0..d5818e647c 100644
@@ -26 +27 @@
-@@ -720,7 +720,7 @@ struct bnxt {
+@@ -573,7 +573,7 @@ struct bnxt {
@@ -36 +37 @@
-index 844bf1520f..73fd24cd9a 100644
+index e110c20f15..1a2a9200a8 100644
@@ -39 +40 @@
-@@ -925,6 +925,9 @@ static int bnxt_vnic_prep(struct bnxt *bp, struct bnxt_vnic_info *vnic)
+@@ -922,6 +922,9 @@ static int bnxt_vnic_prep(struct bnxt *bp, struct bnxt_vnic_info *vnic)
@@ -49 +50 @@
-@@ -1550,6 +1553,7 @@ bnxt_flow_validate(struct rte_eth_dev *dev,
+@@ -1514,6 +1517,7 @@ bnxt_flow_validate(struct rte_eth_dev *dev,
@@ -57 +58 @@
-@@ -2011,6 +2015,7 @@ done:
+@@ -1893,6 +1897,7 @@ done:

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

* [dpdk-stable] patch 'net/bnxt: fix single PF per port check' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (3 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix dynamic VNIC count' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix mismatched type comparison in MAC restore' " Christian Ehrhardt
                   ` (14 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Somnath Kotur, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/142c92f25f5d67081e8fd9022089f111b4e982bc

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 142c92f25f5d67081e8fd9022089f111b4e982bc Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Thu, 29 Apr 2021 11:23:00 +0530
Subject: [PATCH] net/bnxt: fix single PF per port check

[ upstream commit 7712a39cc4e8cc677da47c53e90e1b4d0fce7826 ]

The check BNXT_SINGLE_PF(bp) returns false for a VF. So there is no
extra check needed for VF along with BNXT_SINGLE_PF(bp).

Also make error messages more explicit.

Fixes: ff947c6ce15f ("net/bnxt: add check for multi host PF per port")
Fixes: f86febfb46da ("net/bnxt: support VF")
Fixes: 3e12fdb78e82 ("net/bnxt: support VLAN pvid")

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 | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 10ebf41241..0575d23a19 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -1599,8 +1599,9 @@ static int bnxt_flow_ctrl_set_op(struct rte_eth_dev *dev,
 	if (rc)
 		return rc;
 
-	if (!BNXT_SINGLE_PF(bp) || BNXT_VF(bp)) {
-		PMD_DRV_LOG(ERR, "Flow Control Settings cannot be modified\n");
+	if (!BNXT_SINGLE_PF(bp)) {
+		PMD_DRV_LOG(ERR,
+			    "Flow Control Settings cannot be modified on VF or on shared PF\n");
 		return -ENOTSUP;
 	}
 
@@ -2347,9 +2348,8 @@ bnxt_vlan_pvid_set_op(struct rte_eth_dev *dev, uint16_t pvid, int on)
 	if (rc)
 		return rc;
 
-	if (!BNXT_SINGLE_PF(bp) || BNXT_VF(bp)) {
-		PMD_DRV_LOG(ERR,
-			"PVID cannot be modified for this function\n");
+	if (!BNXT_SINGLE_PF(bp)) {
+		PMD_DRV_LOG(ERR, "PVID cannot be modified on VF or on shared PF\n");
 		return -ENOTSUP;
 	}
 	bp->vlan = on ? pvid : 0;
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.017108969 +0200
+++ 0195-net-bnxt-fix-single-PF-per-port-check.patch	2021-05-17 17:40:29.563812564 +0200
@@ -1 +1 @@
-From 7712a39cc4e8cc677da47c53e90e1b4d0fce7826 Mon Sep 17 00:00:00 2001
+From 142c92f25f5d67081e8fd9022089f111b4e982bc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7712a39cc4e8cc677da47c53e90e1b4d0fce7826 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 748b766969..9c3e0f9f36 100644
+index 10ebf41241..0575d23a19 100644
@@ -27 +28 @@
-@@ -2197,8 +2197,9 @@ static int bnxt_flow_ctrl_set_op(struct rte_eth_dev *dev,
+@@ -1599,8 +1599,9 @@ static int bnxt_flow_ctrl_set_op(struct rte_eth_dev *dev,
@@ -39 +40 @@
-@@ -2994,9 +2995,8 @@ bnxt_vlan_pvid_set_op(struct rte_eth_dev *dev, uint16_t pvid, int on)
+@@ -2347,9 +2348,8 @@ bnxt_vlan_pvid_set_op(struct rte_eth_dev *dev, uint16_t pvid, int on)

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

* [dpdk-stable] patch 'net/bnxt: fix mismatched type comparison in MAC restore' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (4 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix single PF per port check' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: check PCI config read' " Christian Ehrhardt
                   ` (13 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Ajit Khaparde; +Cc: Kalesh AP, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/12a80589b8d41ce8a5d8aa59501bf23daacf5ddf

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 12a80589b8d41ce8a5d8aa59501bf23daacf5ddf Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: Fri, 30 Apr 2021 13:14:10 -0700
Subject: [PATCH] net/bnxt: fix mismatched type comparison in MAC restore

[ upstream commit c8e8154390b38f9242249eb1e023df1db976a285 ]

dev_info.max_mac_addrs is of type uint32_t. But the counter i is
of type uint16_t. This mismatch may cause the loop condition may
always be true. Change the loop counter variable to uint32_t.

Fixes: b02f1573cd07 ("net/bnxt: restore MAC filters during reset recovery")

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

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 0575d23a19..5e51da21b8 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -4044,7 +4044,7 @@ static int bnxt_restore_mac_filters(struct bnxt *bp)
 	struct rte_ether_addr *addr;
 	uint64_t pool_mask;
 	uint32_t pool = 0;
-	uint16_t i;
+	uint32_t i;
 	int rc;
 
 	if (BNXT_VF(bp) && !BNXT_VF_IS_TRUSTED(bp))
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.053776869 +0200
+++ 0196-net-bnxt-fix-mismatched-type-comparison-in-MAC-resto.patch	2021-05-17 17:40:29.567812595 +0200
@@ -1 +1 @@
-From c8e8154390b38f9242249eb1e023df1db976a285 Mon Sep 17 00:00:00 2001
+From 12a80589b8d41ce8a5d8aa59501bf23daacf5ddf Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c8e8154390b38f9242249eb1e023df1db976a285 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 9c3e0f9f36..115acda9b3 100644
+index 0575d23a19..5e51da21b8 100644
@@ -23 +24 @@
-@@ -3989,7 +3989,7 @@ static int bnxt_restore_mac_filters(struct bnxt *bp)
+@@ -4044,7 +4044,7 @@ static int bnxt_restore_mac_filters(struct bnxt *bp)

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

* [dpdk-stable] patch 'net/bnxt: check PCI config read' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (5 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix mismatched type comparison in MAC restore' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: prevent device access in error state' " Christian Ehrhardt
                   ` (12 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Ajit Khaparde; +Cc: Kalesh AP, Somnath Kotur, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/eb7de8a33e07135f133ae41a83058fca96b4bbb9

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From eb7de8a33e07135f133ae41a83058fca96b4bbb9 Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: Fri, 30 Apr 2021 13:14:11 -0700
Subject: [PATCH] net/bnxt: check PCI config read

[ upstream commit 52c33734587a135b55ff968626eabbd1167993b7 ]

Return value where return value of rte_pci_read_config was not checked.
Fix it.

Coverity issue: 349919
Fixes: 9d0cbaecc91a ("net/bnxt: support periodic FW health monitoring")

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

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 5e51da21b8..60e85c33f1 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -4184,13 +4184,17 @@ uint32_t bnxt_read_fw_status_reg(struct bnxt *bp, uint32_t index)
 	struct bnxt_error_recovery_info *info = bp->recovery_info;
 	uint32_t reg = info->status_regs[index];
 	uint32_t type, offset, val = 0;
+	int ret = 0;
 
 	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_read_config(bp->pdev, &val, sizeof(val), offset);
+		ret = rte_pci_read_config(bp->pdev, &val, sizeof(val), offset);
+		if (ret < 0)
+			PMD_DRV_LOG(ERR, "Failed to read PCI offset %#x",
+				    offset);
 		break;
 	case BNXT_FW_STATUS_REG_TYPE_GRC:
 		offset = info->mapped_status_regs[index];
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.089405475 +0200
+++ 0197-net-bnxt-check-PCI-config-read.patch	2021-05-17 17:40:29.571812627 +0200
@@ -1 +1 @@
-From 52c33734587a135b55ff968626eabbd1167993b7 Mon Sep 17 00:00:00 2001
+From eb7de8a33e07135f133ae41a83058fca96b4bbb9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 52c33734587a135b55ff968626eabbd1167993b7 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 115acda9b3..719eb68847 100644
+index 5e51da21b8..60e85c33f1 100644
@@ -24 +25 @@
-@@ -4159,13 +4159,17 @@ uint32_t bnxt_read_fw_status_reg(struct bnxt *bp, uint32_t index)
+@@ -4184,13 +4184,17 @@ uint32_t bnxt_read_fw_status_reg(struct bnxt *bp, uint32_t index)

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

* [dpdk-stable] patch 'net/bnxt: prevent device access in error state' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (6 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: check PCI config read' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'raw/ntb: check SPAD user index' " Christian Ehrhardt
                   ` (11 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Kalesh AP; +Cc: Somnath Kotur, Andy Gospodarek, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/741a4e8fca9cadcb5b3fbb7fdaeed139577d8792

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 741a4e8fca9cadcb5b3fbb7fdaeed139577d8792 Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date: Mon, 3 May 2021 10:51:50 +0530
Subject: [PATCH] net/bnxt: prevent device access in error state

[ upstream commit c967098a4c0aafa0cb244ab9423fdea3d943d1ab ]

Driver should prevent any DMA with the device when it
detects an error. When firmware is in fatal state,
stop tx/rx by assigning them to dummy functions.

Fixes: be14720def9c ("net/bnxt: support FW reset")
Fixes: 9d0cbaecc91a ("net/bnxt: support periodic FW health monitoring")

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

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 60e85c33f1..524764e1f7 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -4300,6 +4300,8 @@ reset:
 	bp->flags |= BNXT_FLAG_FATAL_ERROR;
 	bp->flags |= BNXT_FLAG_FW_RESET;
 
+	bnxt_stop_rxtx(bp);
+
 	PMD_DRV_LOG(ERR, "Detected FW dead condition\n");
 
 	if (bnxt_is_master_func(bp))
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.125203550 +0200
+++ 0198-net-bnxt-prevent-device-access-in-error-state.patch	2021-05-17 17:40:29.575812657 +0200
@@ -1 +1 @@
-From c967098a4c0aafa0cb244ab9423fdea3d943d1ab Mon Sep 17 00:00:00 2001
+From 741a4e8fca9cadcb5b3fbb7fdaeed139577d8792 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c967098a4c0aafa0cb244ab9423fdea3d943d1ab ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 719eb68847..822853a008 100644
+index 60e85c33f1..524764e1f7 100644
@@ -26 +27 @@
-@@ -4275,6 +4275,8 @@ reset:
+@@ -4300,6 +4300,8 @@ reset:

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

* [dpdk-stable] patch 'raw/ntb: check SPAD user index' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (7 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: prevent device access in error state' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'raw/ntb: check memory allocations' " Christian Ehrhardt
                   ` (10 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Min Hu, Xiaoyun Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/777c463e37ee055eb60f11b315d3b44d3c0ce20d

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 777c463e37ee055eb60f11b315d3b44d3c0ce20d Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Wed, 21 Apr 2021 10:08:15 +0800
Subject: [PATCH] raw/ntb: check SPAD user index

[ upstream commit 586f12881dc0fc37720e55f59c8a11a9e184388d ]

This patch adds checking spad user index validity when set or get attr.

Fixes: 277310027965 ("raw/ntb: introduce NTB raw device driver")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
 drivers/raw/ntb/ntb.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index dd0b72f8c5..6ac794037b 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -1051,6 +1051,10 @@ ntb_attr_set(struct rte_rawdev *dev, const char *attr_name,
 		if (hw->ntb_ops->spad_write == NULL)
 			return -ENOTSUP;
 		index = atoi(&attr_name[NTB_SPAD_USER_LEN]);
+		if (index < 0 || index >= NTB_SPAD_USER_MAX_NUM) {
+			NTB_LOG(ERR, "Invalid attribute (%s)", attr_name);
+			return -EINVAL;
+		}
 		(*hw->ntb_ops->spad_write)(dev, hw->spad_user_list[index],
 					   1, attr_value);
 		NTB_LOG(DEBUG, "Set attribute (%s) Value (%" PRIu64 ")",
@@ -1145,6 +1149,10 @@ ntb_attr_get(struct rte_rawdev *dev, const char *attr_name,
 		if (hw->ntb_ops->spad_read == NULL)
 			return -ENOTSUP;
 		index = atoi(&attr_name[NTB_SPAD_USER_LEN]);
+		if (index < 0 || index >= NTB_SPAD_USER_MAX_NUM) {
+			NTB_LOG(ERR, "Attribute (%s) out of range", attr_name);
+			return -EINVAL;
+		}
 		*attr_value = (*hw->ntb_ops->spad_read)(dev,
 				hw->spad_user_list[index], 0);
 		NTB_LOG(DEBUG, "Attribute (%s) Value (%" PRIu64 ")",
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.165618718 +0200
+++ 0199-raw-ntb-check-SPAD-user-index.patch	2021-05-17 17:40:29.575812657 +0200
@@ -1 +1 @@
-From 586f12881dc0fc37720e55f59c8a11a9e184388d Mon Sep 17 00:00:00 2001
+From 777c463e37ee055eb60f11b315d3b44d3c0ce20d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 586f12881dc0fc37720e55f59c8a11a9e184388d ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 6dd213ef6e..0f0e3f27a0 100644
+index dd0b72f8c5..6ac794037b 100644
@@ -22 +23 @@
-@@ -1080,6 +1080,10 @@ ntb_attr_set(struct rte_rawdev *dev, const char *attr_name,
+@@ -1051,6 +1051,10 @@ ntb_attr_set(struct rte_rawdev *dev, const char *attr_name,
@@ -33 +34 @@
-@@ -1174,6 +1178,10 @@ ntb_attr_get(struct rte_rawdev *dev, const char *attr_name,
+@@ -1145,6 +1149,10 @@ ntb_attr_get(struct rte_rawdev *dev, const char *attr_name,

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

* [dpdk-stable] patch 'raw/ntb: check memory allocations' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (8 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'raw/ntb: check SPAD user index' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'ipc: check malloc sync reply result' " Christian Ehrhardt
                   ` (9 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Min Hu, Xiaoyun Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/3ebb07801c117f3807df26fccee4ac6c304c33a1

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 3ebb07801c117f3807df26fccee4ac6c304c33a1 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Wed, 21 Apr 2021 10:08:16 +0800
Subject: [PATCH] raw/ntb: check memory allocations

[ upstream commit 403f21feb87fc9e0e2f61c1e4576cc1b9300ed4b ]

This patch adds checking for rte_zmalloc() result when init Intel ntb
device, also fix the same bug when start ntb device.

Fixes: 034c328eb025 ("raw/ntb: support Intel NTB")
Fixes: c39d1e082a4b ("raw/ntb: setup queues")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
 drivers/raw/ntb/ntb.c          | 5 +++++
 drivers/raw/ntb/ntb_hw_intel.c | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index 6ac794037b..0f0f5c785c 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -894,6 +894,11 @@ ntb_dev_start(struct rte_rawdev *dev)
 
 	hw->peer_mw_base = rte_zmalloc("ntb_peer_mw_base", hw->mw_cnt *
 					sizeof(uint64_t), 0);
+	if (hw->peer_mw_base == NULL) {
+		NTB_LOG(ERR, "Cannot allocate memory for peer mw base.");
+		ret = -ENOMEM;
+		goto err_q_init;
+	}
 
 	if (hw->ntb_ops->spad_read == NULL) {
 		ret = -ENOTSUP;
diff --git a/drivers/raw/ntb/ntb_hw_intel.c b/drivers/raw/ntb/ntb_hw_intel.c
index e7f8667cd7..88fe6a3794 100644
--- a/drivers/raw/ntb/ntb_hw_intel.c
+++ b/drivers/raw/ntb/ntb_hw_intel.c
@@ -79,6 +79,11 @@ intel_ntb_dev_init(const struct rte_rawdev *dev)
 
 	hw->mw_size = rte_zmalloc("ntb_mw_size",
 				  hw->mw_cnt * sizeof(uint64_t), 0);
+	if (hw->mw_size == NULL) {
+		NTB_LOG(ERR, "Cannot allocate memory for mw size.");
+		return -ENOMEM;
+	}
+
 	for (i = 0; i < hw->mw_cnt; i++) {
 		bar = intel_ntb_bar[i];
 		hw->mw_size[i] = hw->pci_dev->mem_resource[bar].len;
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.198540556 +0200
+++ 0200-raw-ntb-check-memory-allocations.patch	2021-05-17 17:40:29.579812690 +0200
@@ -1 +1 @@
-From 403f21feb87fc9e0e2f61c1e4576cc1b9300ed4b Mon Sep 17 00:00:00 2001
+From 3ebb07801c117f3807df26fccee4ac6c304c33a1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 403f21feb87fc9e0e2f61c1e4576cc1b9300ed4b ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 0f0e3f27a0..6703bb5d08 100644
+index 6ac794037b..0f0f5c785c 100644
@@ -25 +26 @@
-@@ -923,6 +923,11 @@ ntb_dev_start(struct rte_rawdev *dev)
+@@ -894,6 +894,11 @@ ntb_dev_start(struct rte_rawdev *dev)
@@ -38 +39 @@
-index 4427e11458..a742e8fbb9 100644
+index e7f8667cd7..88fe6a3794 100644
@@ -41 +42 @@
-@@ -148,6 +148,11 @@ intel_ntb_dev_init(const struct rte_rawdev *dev)
+@@ -79,6 +79,11 @@ intel_ntb_dev_init(const struct rte_rawdev *dev)

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

* [dpdk-stable] patch 'ipc: check malloc sync reply result' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (9 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'raw/ntb: check memory allocations' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'eal: fix service core list parsing' " Christian Ehrhardt
                   ` (8 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/1ffdb5c35ebd1675a971a1ff159cd9791754d9a5

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 1ffdb5c35ebd1675a971a1ff159cd9791754d9a5 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Wed, 5 May 2021 12:10:06 +0800
Subject: [PATCH] ipc: check malloc sync reply result

[ upstream commit 76b49dcbd2cd2b7436fd196e01c04576c4feaa99 ]

This patch adds checking for mp reply result in handle_sync().

Fixes: 07dcbfe0101f ("malloc: support multiprocess memory hotplug")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
 lib/librte_eal/common/malloc_mp.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/lib/librte_eal/common/malloc_mp.c b/lib/librte_eal/common/malloc_mp.c
index 1f212f8349..dd814ef53a 100644
--- a/lib/librte_eal/common/malloc_mp.c
+++ b/lib/librte_eal/common/malloc_mp.c
@@ -170,9 +170,7 @@ handle_sync(const struct rte_mp_msg *msg, const void *peer)
 	resp->id = req->id;
 	resp->result = ret == 0 ? REQ_RESULT_SUCCESS : REQ_RESULT_FAIL;
 
-	rte_mp_reply(&reply, peer);
-
-	return 0;
+	return rte_mp_reply(&reply, peer);
 }
 
 static int
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.235230276 +0200
+++ 0201-ipc-check-malloc-sync-reply-result.patch	2021-05-17 17:40:29.579812690 +0200
@@ -1 +1 @@
-From 76b49dcbd2cd2b7436fd196e01c04576c4feaa99 Mon Sep 17 00:00:00 2001
+From 1ffdb5c35ebd1675a971a1ff159cd9791754d9a5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 76b49dcbd2cd2b7436fd196e01c04576c4feaa99 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -14 +15 @@
- lib/eal/common/malloc_mp.c | 4 +---
+ lib/librte_eal/common/malloc_mp.c | 4 +---
@@ -17,5 +18,5 @@
-diff --git a/lib/eal/common/malloc_mp.c b/lib/eal/common/malloc_mp.c
-index c7101b32d3..2e597a17a2 100644
---- a/lib/eal/common/malloc_mp.c
-+++ b/lib/eal/common/malloc_mp.c
-@@ -171,9 +171,7 @@ handle_sync(const struct rte_mp_msg *msg, const void *peer)
+diff --git a/lib/librte_eal/common/malloc_mp.c b/lib/librte_eal/common/malloc_mp.c
+index 1f212f8349..dd814ef53a 100644
+--- a/lib/librte_eal/common/malloc_mp.c
++++ b/lib/librte_eal/common/malloc_mp.c
+@@ -170,9 +170,7 @@ handle_sync(const struct rte_mp_msg *msg, const void *peer)

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

* [dpdk-stable] patch 'eal: fix service core list parsing' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (10 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'ipc: check malloc sync reply result' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'app/bbdev: fix HARQ error messages' " Christian Ehrhardt
                   ` (7 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Min Hu, Harry van Haaren, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/a6a7ec2b229ae7d0e7a9112a00afc35f53ad773d

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From a6a7ec2b229ae7d0e7a9112a00afc35f53ad773d Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Wed, 5 May 2021 12:10:07 +0800
Subject: [PATCH] eal: fix service core list parsing

[ upstream commit 97ca1e786b25182199877393978decbed6608a78 ]

This patch adds checking for service core index validity when parsing
service corelist.

Fixes: 7dbd7a6413ef ("service: add -S corelist option")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
---
 lib/librte_eal/common/eal_common_options.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index f791e9671d..7dd4d90cf7 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -499,10 +499,10 @@ static int
 eal_parse_service_corelist(const char *corelist)
 {
 	struct rte_config *cfg = rte_eal_get_configuration();
-	int i, idx = 0;
+	int i;
 	unsigned count = 0;
 	char *end = NULL;
-	int min, max;
+	uint32_t min, max, idx;
 	uint32_t taken_lcore_count = 0;
 
 	if (corelist == NULL)
@@ -526,6 +526,8 @@ eal_parse_service_corelist(const char *corelist)
 		idx = strtoul(corelist, &end, 10);
 		if (errno || end == NULL)
 			return -1;
+		if (idx >= RTE_MAX_LCORE)
+			return -1;
 		while (isblank(*end))
 			end++;
 		if (*end == '-') {
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.269540237 +0200
+++ 0202-eal-fix-service-core-list-parsing.patch	2021-05-17 17:40:29.579812690 +0200
@@ -1 +1 @@
-From 97ca1e786b25182199877393978decbed6608a78 Mon Sep 17 00:00:00 2001
+From a6a7ec2b229ae7d0e7a9112a00afc35f53ad773d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 97ca1e786b25182199877393978decbed6608a78 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- lib/eal/common/eal_common_options.c | 6 ++++--
+ lib/librte_eal/common/eal_common_options.c | 6 ++++--
@@ -19,5 +20,5 @@
-diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
-index 66f9114715..97ab6e00fd 100644
---- a/lib/eal/common/eal_common_options.c
-+++ b/lib/eal/common/eal_common_options.c
-@@ -758,10 +758,10 @@ static int
+diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
+index f791e9671d..7dd4d90cf7 100644
+--- a/lib/librte_eal/common/eal_common_options.c
++++ b/lib/librte_eal/common/eal_common_options.c
+@@ -499,10 +499,10 @@ static int
@@ -36 +37 @@
-@@ -785,6 +785,8 @@ eal_parse_service_corelist(const char *corelist)
+@@ -526,6 +526,8 @@ eal_parse_service_corelist(const char *corelist)

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

* [dpdk-stable] patch 'app/bbdev: fix HARQ error messages' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (11 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'eal: fix service core list parsing' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'common/qat: increase IM buffer size for GEN3' " Christian Ehrhardt
                   ` (6 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Min Hu (Connor); +Cc: Nicolas Chautru, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/b17c2a8498ece59c0e9ecdb11f1bd132ae42a682

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From b17c2a8498ece59c0e9ecdb11f1bd132ae42a682 Mon Sep 17 00:00:00 2001
From: "Min Hu (Connor)" <humin29@huawei.com>
Date: Mon, 26 Apr 2021 08:56:59 +0800
Subject: [PATCH] app/bbdev: fix HARQ error messages

[ upstream commit 49ca9e5a256b7db55af71923ce827c1fa480b473 ]

The logging should show context by printing the two variables which
compared to each other. 'nb_harq_inputs', not 'nb_hard_outputs';
'nb_harq_outputs', not 'nb_hard_outputs'.

This patch corrected misused variable.

Fixes: d819c08327f3 ("app/bbdev: update for 5GNR")

Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 app/test-bbdev/test_bbdev_perf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c
index d8db58ea00..d6da21ca48 100644
--- a/app/test-bbdev/test_bbdev_perf.c
+++ b/app/test-bbdev/test_bbdev_perf.c
@@ -327,14 +327,14 @@ check_dev_cap(const struct rte_bbdev_info *dev_info)
 			if (nb_harq_inputs > cap->num_buffers_hard_out) {
 				printf(
 					"Too many HARQ inputs defined: %u, max: %u\n",
-					nb_hard_outputs,
+					nb_harq_inputs,
 					cap->num_buffers_hard_out);
 				return TEST_FAILED;
 			}
 			if (nb_harq_outputs > cap->num_buffers_hard_out) {
 				printf(
 					"Too many HARQ outputs defined: %u, max: %u\n",
-					nb_hard_outputs,
+					nb_harq_outputs,
 					cap->num_buffers_hard_out);
 				return TEST_FAILED;
 			}
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.306189578 +0200
+++ 0203-app-bbdev-fix-HARQ-error-messages.patch	2021-05-17 17:40:29.583812721 +0200
@@ -1 +1 @@
-From 49ca9e5a256b7db55af71923ce827c1fa480b473 Mon Sep 17 00:00:00 2001
+From b17c2a8498ece59c0e9ecdb11f1bd132ae42a682 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 49ca9e5a256b7db55af71923ce827c1fa480b473 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index f94e2a94d0..469597b8b3 100644
+index d8db58ea00..d6da21ca48 100644
@@ -25 +26 @@
-@@ -372,14 +372,14 @@ check_dev_cap(const struct rte_bbdev_info *dev_info)
+@@ -327,14 +327,14 @@ check_dev_cap(const struct rte_bbdev_info *dev_info)

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

* [dpdk-stable] patch 'common/qat: increase IM buffer size for GEN3' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (12 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'app/bbdev: fix HARQ error messages' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'compress/qat: enable compression on " Christian Ehrhardt
                   ` (5 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Adam Dybkowski; +Cc: Fan Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/15c45bf8695ec22db999dd56a0a1594555709dcb

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 15c45bf8695ec22db999dd56a0a1594555709dcb Mon Sep 17 00:00:00 2001
From: Adam Dybkowski <adamx.dybkowski@intel.com>
Date: Wed, 28 Apr 2021 15:41:41 +0100
Subject: [PATCH] common/qat: increase IM buffer size for GEN3

[ upstream commit cd218e52c49600039c42d3b57b42704683e41a0f ]

This patch increases the intermediate buffer size used for the
compression on QAT GEN3 to accommodate new hardware versions.

Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
---
 drivers/common/qat/qat_device.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/common/qat/qat_device.h b/drivers/common/qat/qat_device.h
index c3f5ae8990..7460dfd852 100644
--- a/drivers/common/qat/qat_device.h
+++ b/drivers/common/qat/qat_device.h
@@ -29,7 +29,7 @@ struct qat_dev_cmd_param {
 enum qat_comp_num_im_buffers {
 	QAT_NUM_INTERM_BUFS_GEN1 = 12,
 	QAT_NUM_INTERM_BUFS_GEN2 = 20,
-	QAT_NUM_INTERM_BUFS_GEN3 = 20
+	QAT_NUM_INTERM_BUFS_GEN3 = 64
 };
 
 struct qat_device_info {
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.341967983 +0200
+++ 0204-common-qat-increase-IM-buffer-size-for-GEN3.patch	2021-05-17 17:40:29.583812721 +0200
@@ -1 +1 @@
-From cd218e52c49600039c42d3b57b42704683e41a0f Mon Sep 17 00:00:00 2001
+From 15c45bf8695ec22db999dd56a0a1594555709dcb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit cd218e52c49600039c42d3b57b42704683e41a0f ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index e6337c688d..9c6a3ca4e6 100644
+index c3f5ae8990..7460dfd852 100644

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

* [dpdk-stable] patch 'compress/qat: enable compression on GEN3' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (13 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'common/qat: increase IM buffer size for GEN3' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'test/crypto: fix auth-cipher compare length in OOP' " Christian Ehrhardt
                   ` (4 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Adam Dybkowski; +Cc: Fan Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/0f1d70e943e766b18407106d191608866bbce151

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 0f1d70e943e766b18407106d191608866bbce151 Mon Sep 17 00:00:00 2001
From: Adam Dybkowski <adamx.dybkowski@intel.com>
Date: Wed, 28 Apr 2021 15:41:42 +0100
Subject: [PATCH] compress/qat: enable compression on GEN3

[ upstream commit da573c0e4205d818cd602eaa27c720896f3b6f1c ]

This patch enables the compression on QAT GEN3 (on hardware
versions that support it) and changes the error message shown
on older hardware versions that don't support the compression.

It also fixes the crash that happened on IM buffer allocation
failure (not enough memory) during the PMD cleaning phase.

Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")
Fixes: 352332744c3a ("compress/qat: add dynamic SGL allocation")

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
---
 drivers/compress/qat/qat_comp.c     |   7 +-
 drivers/compress/qat/qat_comp_pmd.c | 111 +++++++++++++++++++---------
 2 files changed, 79 insertions(+), 39 deletions(-)

diff --git a/drivers/compress/qat/qat_comp.c b/drivers/compress/qat/qat_comp.c
index 533e34f6bb..cd06809463 100644
--- a/drivers/compress/qat/qat_comp.c
+++ b/drivers/compress/qat/qat_comp.c
@@ -68,8 +68,8 @@ qat_comp_build_request(void *in_op, uint8_t *out_msg,
 					ICP_QAT_FW_COMP_EOP
 				      : ICP_QAT_FW_COMP_NOT_EOP,
 				ICP_QAT_FW_COMP_NOT_BFINAL,
-				ICP_QAT_FW_COMP_NO_CNV,
-				ICP_QAT_FW_COMP_NO_CNV_RECOVERY);
+				ICP_QAT_FW_COMP_CNV,
+				ICP_QAT_FW_COMP_CNV_RECOVERY);
 	}
 
 	if (likely(qat_xform->qat_comp_request_type ==
@@ -286,7 +286,8 @@ qat_comp_process_response(void **op, uint8_t *resp, void *op_cookie,
 			rx_op->status = RTE_COMP_OP_STATUS_ERROR;
 			rx_op->debug_status = ERR_CODE_QAT_COMP_WRONG_FW;
 			*op = (void *)rx_op;
-			QAT_DP_LOG(ERR, "QAT has wrong firmware");
+			QAT_DP_LOG(ERR,
+					"This QAT hardware doesn't support compression operation");
 			++(*dequeue_err_count);
 			return 0;
 		}
diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c
index 5cdabadef7..dafd3da317 100644
--- a/drivers/compress/qat/qat_comp_pmd.c
+++ b/drivers/compress/qat/qat_comp_pmd.c
@@ -82,13 +82,13 @@ qat_comp_qp_release(struct rte_compressdev *dev, uint16_t queue_pair_id)
 	qat_private->qat_dev->qps_in_use[QAT_SERVICE_COMPRESSION][queue_pair_id]
 						= NULL;
 
-	for (i = 0; i < qp->nb_descriptors; i++) {
-
-		struct qat_comp_op_cookie *cookie = qp->op_cookies[i];
+	if (qp != NULL)
+		for (i = 0; i < qp->nb_descriptors; i++) {
+			struct qat_comp_op_cookie *cookie = qp->op_cookies[i];
 
-		rte_free(cookie->qat_sgl_src_d);
-		rte_free(cookie->qat_sgl_dst_d);
-	}
+			rte_free(cookie->qat_sgl_src_d);
+			rte_free(cookie->qat_sgl_dst_d);
+		}
 
 	return qat_qp_release((struct qat_qp **)
 			&(dev->data->queue_pairs[queue_pair_id]));
@@ -196,7 +196,7 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
 	struct array_of_ptrs *array_of_pointers;
 	int size_of_ptr_array;
 	uint32_t full_size;
-	uint32_t offset_of_sgls, offset_of_flat_buffs = 0;
+	uint32_t offset_of_flat_buffs;
 	int i;
 	int num_im_sgls = qat_gen_config[
 		comp_dev->qat_dev->qat_dev_gen].comp_num_im_bufs_required;
@@ -211,31 +211,31 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
 		return memzone;
 	}
 
-	/* Create a memzone to hold intermediate buffers and associated
-	 * meta-data needed by the firmware. The memzone contains 3 parts:
+	/* Create multiple memzones to hold intermediate buffers and associated
+	 * meta-data needed by the firmware.
+	 * The first memzone contains:
 	 *  - a list of num_im_sgls physical pointers to sgls
-	 *  - the num_im_sgl sgl structures, each pointing to
-	 *    QAT_NUM_BUFS_IN_IM_SGL flat buffers
-	 *  - the flat buffers: num_im_sgl * QAT_NUM_BUFS_IN_IM_SGL
-	 *    buffers, each of buff_size
+	 * All other memzones contain:
+	 *  - the sgl structure, pointing to QAT_NUM_BUFS_IN_IM_SGL flat buffers
+	 *  - the flat buffers: QAT_NUM_BUFS_IN_IM_SGL buffers,
+	 *    each of buff_size
 	 * num_im_sgls depends on the hardware generation of the device
 	 * buff_size comes from the user via the config file
 	 */
 
 	size_of_ptr_array = num_im_sgls * sizeof(phys_addr_t);
-	offset_of_sgls = (size_of_ptr_array + (~QAT_64_BYTE_ALIGN_MASK))
-			& QAT_64_BYTE_ALIGN_MASK;
-	offset_of_flat_buffs =
-	    offset_of_sgls + num_im_sgls * sizeof(struct qat_inter_sgl);
+	offset_of_flat_buffs = sizeof(struct qat_inter_sgl);
 	full_size = offset_of_flat_buffs +
-			num_im_sgls * buff_size * QAT_NUM_BUFS_IN_IM_SGL;
+			buff_size * QAT_NUM_BUFS_IN_IM_SGL;
 
-	memzone = rte_memzone_reserve_aligned(inter_buff_mz_name, full_size,
+	memzone = rte_memzone_reserve_aligned(inter_buff_mz_name,
+			size_of_ptr_array,
 			comp_dev->compressdev->data->socket_id,
 			RTE_MEMZONE_IOVA_CONTIG, QAT_64_BYTE_ALIGN);
 	if (memzone == NULL) {
-		QAT_LOG(ERR, "Can't allocate intermediate buffers"
-				" for device %s", comp_dev->qat_dev->name);
+		QAT_LOG(ERR,
+				"Can't allocate intermediate buffers for device %s",
+				comp_dev->qat_dev->name);
 		return NULL;
 	}
 
@@ -244,17 +244,50 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
 	QAT_LOG(DEBUG, "Memzone %s: addr = %p, phys = 0x%"PRIx64
 			", size required %d, size created %zu",
 			inter_buff_mz_name, mz_start, mz_start_phys,
-			full_size, memzone->len);
+			size_of_ptr_array, memzone->len);
 
 	array_of_pointers = (struct array_of_ptrs *)mz_start;
 	for (i = 0; i < num_im_sgls; i++) {
-		uint32_t curr_sgl_offset =
-		    offset_of_sgls + i * sizeof(struct qat_inter_sgl);
-		struct qat_inter_sgl *sgl =
-		    (struct qat_inter_sgl *)(mz_start +	curr_sgl_offset);
+		const struct rte_memzone *mz;
+		struct qat_inter_sgl *sgl;
 		int lb;
-		array_of_pointers->pointer[i] = mz_start_phys + curr_sgl_offset;
 
+		snprintf(inter_buff_mz_name, RTE_MEMZONE_NAMESIZE,
+				"%s_inter_buff_%d", comp_dev->qat_dev->name, i);
+		mz = rte_memzone_lookup(inter_buff_mz_name);
+		if (mz == NULL) {
+			mz = rte_memzone_reserve_aligned(inter_buff_mz_name,
+					full_size,
+					comp_dev->compressdev->data->socket_id,
+					RTE_MEMZONE_IOVA_CONTIG,
+					QAT_64_BYTE_ALIGN);
+			if (mz == NULL) {
+				QAT_LOG(ERR,
+						"Can't allocate intermediate buffers for device %s",
+						comp_dev->qat_dev->name);
+				while (--i >= 0) {
+					snprintf(inter_buff_mz_name,
+							RTE_MEMZONE_NAMESIZE,
+							"%s_inter_buff_%d",
+							comp_dev->qat_dev->name,
+							i);
+					rte_memzone_free(
+							rte_memzone_lookup(
+							inter_buff_mz_name));
+				}
+				rte_memzone_free(memzone);
+				return NULL;
+			}
+		}
+
+		QAT_LOG(DEBUG, "Memzone %s: addr = %p, phys = 0x%"PRIx64
+				", size required %d, size created %zu",
+				inter_buff_mz_name, mz->addr, mz->iova,
+				full_size, mz->len);
+
+		array_of_pointers->pointer[i] = mz->iova;
+
+		sgl = (struct qat_inter_sgl *) mz->addr;
 		sgl->num_bufs = QAT_NUM_BUFS_IN_IM_SGL;
 		sgl->num_mapped_bufs = 0;
 		sgl->resrvd = 0;
@@ -266,8 +299,8 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
 #endif
 		for (lb = 0; lb < QAT_NUM_BUFS_IN_IM_SGL; lb++) {
 			sgl->buffers[lb].addr =
-			  mz_start_phys + offset_of_flat_buffs +
-			  (((i * QAT_NUM_BUFS_IN_IM_SGL) + lb) * buff_size);
+					mz->iova + offset_of_flat_buffs +
+					lb * buff_size;
 			sgl->buffers[lb].len = buff_size;
 			sgl->buffers[lb].resrvd = 0;
 #if QAT_IM_BUFFER_DEBUG
@@ -279,7 +312,7 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
 	}
 #if QAT_IM_BUFFER_DEBUG
 	QAT_DP_HEXDUMP_LOG(DEBUG,  "IM buffer memzone start:",
-			mz_start, offset_of_flat_buffs + 32);
+			memzone->addr, size_of_ptr_array);
 #endif
 	return memzone;
 }
@@ -442,6 +475,16 @@ _qat_comp_dev_config_clear(struct qat_comp_dev_private *comp_dev)
 {
 	/* Free intermediate buffers */
 	if (comp_dev->interm_buff_mz) {
+		char mz_name[RTE_MEMZONE_NAMESIZE];
+		int i = qat_gen_config[
+		      comp_dev->qat_dev->qat_dev_gen].comp_num_im_bufs_required;
+
+		while (--i >= 0) {
+			snprintf(mz_name, RTE_MEMZONE_NAMESIZE,
+					"%s_inter_buff_%d",
+					comp_dev->qat_dev->name, i);
+			rte_memzone_free(rte_memzone_lookup(mz_name));
+		}
 		rte_memzone_free(comp_dev->interm_buff_mz);
 		comp_dev->interm_buff_mz = NULL;
 	}
@@ -619,7 +662,8 @@ qat_comp_pmd_dequeue_frst_op_burst(void *qp, struct rte_comp_op **ops,
 
 			tmp_qp->qat_dev->comp_dev->compressdev->dev_ops =
 					&compress_qat_dummy_ops;
-			QAT_LOG(ERR, "QAT PMD detected wrong FW version !");
+			QAT_LOG(ERR,
+					"This QAT hardware doesn't support compression operation");
 
 		} else {
 			tmp_qp->qat_dev->comp_dev->compressdev->dequeue_burst =
@@ -667,11 +711,6 @@ qat_comp_dev_create(struct qat_pci_device *qat_pci_dev,
 	int i = 0;
 	struct qat_device_info *qat_dev_instance =
 			&qat_pci_devs[qat_pci_dev->qat_dev_id];
-	if (qat_pci_dev->qat_dev_gen == QAT_GEN3) {
-		QAT_LOG(ERR, "Compression PMD not supported on QAT c4xxx");
-		return 0;
-	}
-
 	struct rte_compressdev_pmd_init_params init_params = {
 		.name = "",
 		.socket_id = qat_dev_instance->pci_dev->device.numa_node,
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.376292689 +0200
+++ 0205-compress-qat-enable-compression-on-GEN3.patch	2021-05-17 17:40:29.583812721 +0200
@@ -1 +1 @@
-From da573c0e4205d818cd602eaa27c720896f3b6f1c Mon Sep 17 00:00:00 2001
+From 0f1d70e943e766b18407106d191608866bbce151 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit da573c0e4205d818cd602eaa27c720896f3b6f1c ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 3a064ec3b2..7ac25a3b4c 100644
+index 533e34f6bb..cd06809463 100644
@@ -28 +29 @@
-@@ -191,8 +191,8 @@ qat_comp_build_request(void *in_op, uint8_t *out_msg,
+@@ -68,8 +68,8 @@ qat_comp_build_request(void *in_op, uint8_t *out_msg,
@@ -38,2 +39,2 @@
- 	/* common for sgl and flat buffers */
-@@ -603,7 +603,8 @@ qat_comp_process_response(void **op, uint8_t *resp, void *op_cookie,
+ 	if (likely(qat_xform->qat_comp_request_type ==
+@@ -286,7 +286,8 @@ qat_comp_process_response(void **op, uint8_t *resp, void *op_cookie,
@@ -47 +48 @@
- 			return 1;
+ 			return 0;
@@ -50 +51 @@
-index 18ecb34ba7..8de41f6b6e 100644
+index 5cdabadef7..dafd3da317 100644
@@ -73 +74 @@
-@@ -198,7 +198,7 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
+@@ -196,7 +196,7 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
@@ -82 +83 @@
-@@ -213,31 +213,31 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
+@@ -211,31 +211,31 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
@@ -128 +129 @@
-@@ -246,17 +246,50 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
+@@ -244,17 +244,50 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
@@ -185 +186 @@
-@@ -268,8 +301,8 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
+@@ -266,8 +299,8 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
@@ -196 +197 @@
-@@ -281,7 +314,7 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
+@@ -279,7 +312,7 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
@@ -205 +206 @@
-@@ -444,6 +477,16 @@ _qat_comp_dev_config_clear(struct qat_comp_dev_private *comp_dev)
+@@ -442,6 +475,16 @@ _qat_comp_dev_config_clear(struct qat_comp_dev_private *comp_dev)
@@ -222 +223 @@
-@@ -607,7 +650,8 @@ qat_comp_pmd_dequeue_first_op_burst(void *qp, struct rte_comp_op **ops,
+@@ -619,7 +662,8 @@ qat_comp_pmd_dequeue_frst_op_burst(void *qp, struct rte_comp_op **ops,
@@ -232 +233 @@
-@@ -656,11 +700,6 @@ qat_comp_dev_create(struct qat_pci_device *qat_pci_dev,
+@@ -667,11 +711,6 @@ qat_comp_dev_create(struct qat_pci_device *qat_pci_dev,

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

* [dpdk-stable] patch 'test/crypto: fix auth-cipher compare length in OOP' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (14 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'compress/qat: enable compression on " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'crypto/dpaa_sec: affine the thread portal affinity' " Christian Ehrhardt
                   ` (3 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Kai Ji; +Cc: Damian Nowak, Fan Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/cafd5fe393a6fc547ea9d1b493147c85303d99be

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From cafd5fe393a6fc547ea9d1b493147c85303d99be Mon Sep 17 00:00:00 2001
From: Kai Ji <kai.ji@intel.com>
Date: Tue, 4 May 2021 15:19:41 +0100
Subject: [PATCH] test/crypto: fix auth-cipher compare length in OOP

[ upstream commit 91317c0155662fcf188fac2152f33c79f90c6433 ]

For out-of-place operations, comparing expected ciphertext with
the operation result should skip cipher_offset bytes, as those
will not be copied from source to the destination buffer, making
the tests fail.

Fixes: 02ed7b3871d6 ("test/crypto: add SNOW3G test cases for auth-cipher")

Signed-off-by: Kai Ji <kai.ji@intel.com>
Signed-off-by: Damian Nowak <damianx.nowak@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
---
 app/test/test_cryptodev.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index a852040ec2..84666b5b23 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -4761,16 +4761,20 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata,
 
 	/* Validate obuf */
 	if (verify) {
-		TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT(
+		TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT_OFFSET(
 			plaintext,
 			tdata->plaintext.data,
-			tdata->plaintext.len >> 3,
+			(tdata->plaintext.len - tdata->cipher.offset_bits -
+			 (tdata->digest.len << 3)),
+			tdata->cipher.offset_bits,
 			"SNOW 3G Plaintext data not as expected");
 	} else {
-		TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT(
+		TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT_OFFSET(
 			ciphertext,
 			tdata->ciphertext.data,
-			tdata->validDataLenInBits.len,
+			(tdata->validDataLenInBits.len -
+			 tdata->cipher.offset_bits),
+			tdata->cipher.offset_bits,
 			"SNOW 3G Ciphertext data not as expected");
 
 		TEST_ASSERT_BUFFERS_ARE_EQUAL(
@@ -4945,16 +4949,20 @@ test_snow3g_auth_cipher_sgl(const struct snow3g_test_data *tdata,
 
 	/* Validate obuf */
 	if (verify) {
-		TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT(
+		TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT_OFFSET(
 			plaintext,
 			tdata->plaintext.data,
-			tdata->plaintext.len >> 3,
+			(tdata->plaintext.len - tdata->cipher.offset_bits -
+			 (tdata->digest.len << 3)),
+			tdata->cipher.offset_bits,
 			"SNOW 3G Plaintext data not as expected");
 	} else {
-		TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT(
+		TEST_ASSERT_BUFFERS_ARE_EQUAL_BIT_OFFSET(
 			ciphertext,
 			tdata->ciphertext.data,
-			tdata->validDataLenInBits.len,
+			(tdata->validDataLenInBits.len -
+			 tdata->cipher.offset_bits),
+			tdata->cipher.offset_bits,
 			"SNOW 3G Ciphertext data not as expected");
 
 		TEST_ASSERT_BUFFERS_ARE_EQUAL(
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.414624486 +0200
+++ 0206-test-crypto-fix-auth-cipher-compare-length-in-OOP.patch	2021-05-17 17:40:29.595812816 +0200
@@ -1 +1 @@
-From 91317c0155662fcf188fac2152f33c79f90c6433 Mon Sep 17 00:00:00 2001
+From cafd5fe393a6fc547ea9d1b493147c85303d99be Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 91317c0155662fcf188fac2152f33c79f90c6433 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 32e64e2dd1..a677a21e36 100644
+index a852040ec2..84666b5b23 100644
@@ -25 +26 @@
-@@ -4671,16 +4671,20 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata,
+@@ -4761,16 +4761,20 @@ test_snow3g_auth_cipher(const struct snow3g_test_data *tdata,
@@ -50 +51 @@
-@@ -4882,16 +4886,20 @@ test_snow3g_auth_cipher_sgl(const struct snow3g_test_data *tdata,
+@@ -4945,16 +4949,20 @@ test_snow3g_auth_cipher_sgl(const struct snow3g_test_data *tdata,

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

* [dpdk-stable] patch 'crypto/dpaa_sec: affine the thread portal affinity' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (15 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'test/crypto: fix auth-cipher compare length in OOP' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'crypto/dpaa2_sec: fix close and uninit functions' " Christian Ehrhardt
                   ` (2 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/3439157d98e7d73d51dc4829aeeb4a32858cef1d

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 3439157d98e7d73d51dc4829aeeb4a32858cef1d Mon Sep 17 00:00:00 2001
From: Hemant Agrawal <hemant.agrawal@nxp.com>
Date: Mon, 3 May 2021 14:09:53 +0530
Subject: [PATCH] crypto/dpaa_sec: affine the thread portal affinity

[ upstream commit 22629f05f8832358d01872414e0e30c2c81e43d4 ]

DPAA requires the I/O shall be done in a HW portal context only.
The portal affinity is currently only being done in session create
and config APIs with the assumption that same thread will be used
for IO. This is causing issue.
This patch add support during I/O to check the HW portal affinity
and affine portal- if not affined already.

Fixes: 9a984458f755 ("crypto/dpaa_sec: rewrite Rx/Tx path")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/crypto/dpaa_sec/dpaa_sec.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index a650313cdb..021c8db847 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -1690,6 +1690,13 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
 	uint32_t index, flags[DPAA_SEC_BURST] = {0};
 	struct qman_fq *inq[DPAA_SEC_BURST];
 
+	if (unlikely(!DPAA_PER_LCORE_PORTAL)) {
+		if (rte_dpaa_portal_init((void *)0)) {
+			DPAA_SEC_ERR("Failure in affining portal");
+			return 0;
+		}
+	}
+
 	while (nb_ops) {
 		frames_to_send = (nb_ops > DPAA_SEC_BURST) ?
 				DPAA_SEC_BURST : nb_ops;
@@ -1890,6 +1897,13 @@ dpaa_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops,
 	uint16_t num_rx;
 	struct dpaa_sec_qp *dpaa_qp = (struct dpaa_sec_qp *)qp;
 
+	if (unlikely(!DPAA_PER_LCORE_PORTAL)) {
+		if (rte_dpaa_portal_init((void *)0)) {
+			DPAA_SEC_ERR("Failure in affining portal");
+			return 0;
+		}
+	}
+
 	num_rx = dpaa_sec_deq(dpaa_qp, ops, nb_ops);
 
 	dpaa_qp->rx_pkts += num_rx;
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.462109590 +0200
+++ 0207-crypto-dpaa_sec-affine-the-thread-portal-affinity.patch	2021-05-17 17:40:29.595812816 +0200
@@ -1 +1 @@
-From 22629f05f8832358d01872414e0e30c2c81e43d4 Mon Sep 17 00:00:00 2001
+From 3439157d98e7d73d51dc4829aeeb4a32858cef1d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 22629f05f8832358d01872414e0e30c2c81e43d4 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 43363ba6ba..19d4684e24 100644
+index a650313cdb..021c8db847 100644
@@ -25 +26 @@
-@@ -1717,6 +1717,13 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
+@@ -1690,6 +1690,13 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
@@ -39 +40 @@
-@@ -1917,6 +1924,13 @@ dpaa_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops,
+@@ -1890,6 +1897,13 @@ dpaa_sec_dequeue_burst(void *qp, struct rte_crypto_op **ops,

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

* [dpdk-stable] patch 'crypto/dpaa2_sec: fix close and uninit functions' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (16 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'crypto/dpaa_sec: affine the thread portal affinity' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'test/crypto: copy offset data to OOP destination buffer' " Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'doc: fix build with Sphinx 4' " Christian Ehrhardt
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: Gagandeep Singh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/a9c927d25419188b8d4f989dcc187ac6c0c0b215

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From a9c927d25419188b8d4f989dcc187ac6c0c0b215 Mon Sep 17 00:00:00 2001
From: Hemant Agrawal <hemant.agrawal@nxp.com>
Date: Wed, 5 May 2021 17:46:52 +0530
Subject: [PATCH] crypto/dpaa2_sec: fix close and uninit functions

[ upstream commit 394b4e118e503e80ba86388d5f59f89331cf53c5 ]

The init function was calling the dpseci_open
while dpseci_close was called by the open function.
This is a mismatch un-init shall clean the init configurations and
close shall clear the configure function settings.

This was causing issue with recent changes in test framework, where
the close was being called and causing DPAA2 SEC to fail in configure

Fixes: e5cbdfc53765 ("crypto/dpaa2_sec: add basic operations")

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 50 ++++++++++-----------
 1 file changed, 24 insertions(+), 26 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 8df915e610..f0fa9f0fad 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3423,32 +3423,10 @@ dpaa2_sec_dev_stop(struct rte_cryptodev *dev)
 }
 
 static int
-dpaa2_sec_dev_close(struct rte_cryptodev *dev)
+dpaa2_sec_dev_close(struct rte_cryptodev *dev __rte_unused)
 {
-	struct dpaa2_sec_dev_private *priv = dev->data->dev_private;
-	struct fsl_mc_io *dpseci = (struct fsl_mc_io *)priv->hw;
-	int ret;
-
 	PMD_INIT_FUNC_TRACE();
 
-	/* Function is reverse of dpaa2_sec_dev_init.
-	 * It does the following:
-	 * 1. Detach a DPSECI from attached resources i.e. buffer pools, dpbp_id
-	 * 2. Close the DPSECI device
-	 * 3. Free the allocated resources.
-	 */
-
-	/*Close the device at underlying layer*/
-	ret = dpseci_close(dpseci, CMD_PRI_LOW, priv->token);
-	if (ret) {
-		DPAA2_SEC_ERR("Failure closing dpseci device: err(%d)", ret);
-		return -1;
-	}
-
-	/*Free the allocated memory for ethernet private data and dpseci*/
-	priv->hw = NULL;
-	rte_free(dpseci);
-
 	return 0;
 }
 
@@ -3704,11 +3682,31 @@ static const struct rte_security_ops dpaa2_sec_security_ops = {
 static int
 dpaa2_sec_uninit(const struct rte_cryptodev *dev)
 {
-	struct dpaa2_sec_dev_private *internals = dev->data->dev_private;
+	struct dpaa2_sec_dev_private *priv = dev->data->dev_private;
+	struct fsl_mc_io *dpseci = (struct fsl_mc_io *)priv->hw;
+	int ret;
 
-	rte_free(dev->security_ctx);
+	PMD_INIT_FUNC_TRACE();
+
+	/* Function is reverse of dpaa2_sec_dev_init.
+	 * It does the following:
+	 * 1. Detach a DPSECI from attached resources i.e. buffer pools, dpbp_id
+	 * 2. Close the DPSECI device
+	 * 3. Free the allocated resources.
+	 */
 
-	rte_mempool_free(internals->fle_pool);
+	/*Close the device at underlying layer*/
+	ret = dpseci_close(dpseci, CMD_PRI_LOW, priv->token);
+	if (ret) {
+		DPAA2_SEC_ERR("Failure closing dpseci device: err(%d)", ret);
+		return -1;
+	}
+
+	/*Free the allocated memory for ethernet private data and dpseci*/
+	priv->hw = NULL;
+	rte_free(dpseci);
+	rte_free(dev->security_ctx);
+	rte_mempool_free(priv->fle_pool);
 
 	DPAA2_SEC_INFO("Closing DPAA2_SEC device %s on numa socket %u",
 		       dev->data->name, rte_socket_id());
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.497919538 +0200
+++ 0208-crypto-dpaa2_sec-fix-close-and-uninit-functions.patch	2021-05-17 17:40:29.599812846 +0200
@@ -1 +1 @@
-From 394b4e118e503e80ba86388d5f59f89331cf53c5 Mon Sep 17 00:00:00 2001
+From a9c927d25419188b8d4f989dcc187ac6c0c0b215 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 394b4e118e503e80ba86388d5f59f89331cf53c5 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 05b194ccff..1ccead3641 100644
+index 8df915e610..f0fa9f0fad 100644
@@ -27 +28 @@
-@@ -3564,32 +3564,10 @@ dpaa2_sec_dev_stop(struct rte_cryptodev *dev)
+@@ -3423,32 +3423,10 @@ dpaa2_sec_dev_stop(struct rte_cryptodev *dev)
@@ -61 +62 @@
-@@ -3849,11 +3827,31 @@ static const struct rte_security_ops dpaa2_sec_security_ops = {
+@@ -3704,11 +3682,31 @@ static const struct rte_security_ops dpaa2_sec_security_ops = {

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

* [dpdk-stable] patch 'test/crypto: copy offset data to OOP destination buffer' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (17 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'crypto/dpaa2_sec: fix close and uninit functions' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  2021-05-17 16:21 ` [dpdk-stable] patch 'doc: fix build with Sphinx 4' " Christian Ehrhardt
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Kai Ji; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/ad6c4ac6d2917021ee4c5d922b85736230bb845f

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From ad6c4ac6d2917021ee4c5d922b85736230bb845f Mon Sep 17 00:00:00 2001
From: Kai Ji <kai.ji@intel.com>
Date: Wed, 5 May 2021 15:45:13 +0100
Subject: [PATCH] test/crypto: copy offset data to OOP destination buffer

[ upstream commit e19deb5af6edab846197dbd4f3cbbb2b83b3784f ]

Copy over the offset data required for auth in out-of-place op
when auth offset and cipher offset are not aligned.

Fixes: e847fc512817 ("test/crypto: add encrypted digest case for AES-CTR-CMAC")

Signed-off-by: Kai Ji <kai.ji@intel.com>
---
 app/test/test_cryptodev.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 84666b5b23..58be85a216 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -3047,6 +3047,21 @@ create_wireless_algo_cipher_hash_operation(const uint8_t *auth_tag,
 	iv_ptr += cipher_iv_len;
 	rte_memcpy(iv_ptr, auth_iv, auth_iv_len);
 
+	/* Only copy over the offset data needed from src to dst in OOP,
+	 * if the auth and cipher offsets are not aligned
+	 */
+	if (op_mode == OUT_OF_PLACE) {
+		if (cipher_offset > auth_offset)
+			rte_memcpy(
+				rte_pktmbuf_mtod_offset(
+					sym_op->m_dst,
+					uint8_t *, auth_offset >> 3),
+				rte_pktmbuf_mtod_offset(
+					sym_op->m_src,
+					uint8_t *, auth_offset >> 3),
+				((cipher_offset >> 3) - (auth_offset >> 3)));
+	}
+
 	if (cipher_algo == RTE_CRYPTO_CIPHER_SNOW3G_UEA2 ||
 		cipher_algo == RTE_CRYPTO_CIPHER_KASUMI_F8 ||
 		cipher_algo == RTE_CRYPTO_CIPHER_ZUC_EEA3) {
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.534951572 +0200
+++ 0209-test-crypto-copy-offset-data-to-OOP-destination-buff.patch	2021-05-17 17:40:29.611812942 +0200
@@ -1 +1 @@
-From e19deb5af6edab846197dbd4f3cbbb2b83b3784f Mon Sep 17 00:00:00 2001
+From ad6c4ac6d2917021ee4c5d922b85736230bb845f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e19deb5af6edab846197dbd4f3cbbb2b83b3784f ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index a677a21e36..2bd4ff96cb 100644
+index 84666b5b23..58be85a216 100644
@@ -21 +22 @@
-@@ -2629,6 +2629,21 @@ create_wireless_algo_auth_cipher_operation(
+@@ -3047,6 +3047,21 @@ create_wireless_algo_cipher_hash_operation(const uint8_t *auth_tag,

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

* [dpdk-stable] patch 'doc: fix build with Sphinx 4' has been queued to stable release 19.11.9
  2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
                   ` (18 preceding siblings ...)
  2021-05-17 16:21 ` [dpdk-stable] patch 'test/crypto: copy offset data to OOP destination buffer' " Christian Ehrhardt
@ 2021-05-17 16:21 ` Christian Ehrhardt
  19 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:21 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: Bruce Richardson, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/99df2c2aa1857b5fc4199dc52be3c636f8d1fc73

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 99df2c2aa1857b5fc4199dc52be3c636f8d1fc73 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Mon, 10 May 2021 22:45:37 +0200
Subject: [PATCH] doc: fix build with Sphinx 4

[ upstream commit 86ff0663639417f9d25907d09343a5c231e32a51 ]

Sphinx 4.0 became stricter with permalink configuration:
"
html_add_permalinks has been deprecated since v3.5.0.
Please use html_permalinks and html_permalinks_icon instead.
"

The new variable is used while keeping compatibility
with older Sphinx versions.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/conf.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/doc/guides/conf.py b/doc/guides/conf.py
index be02c2ba20..279b830d7b 100644
--- a/doc/guides/conf.py
+++ b/doc/guides/conf.py
@@ -33,7 +33,10 @@ except:
 project = 'Data Plane Development Kit'
 html_logo = '../logo/DPDK_logo_vertical_rev_small.png'
 latex_logo = '../logo/DPDK_logo_horizontal_tag.png'
-html_add_permalinks = ""
+if LooseVersion(sphinx_version) >= LooseVersion('3.5'):
+    html_permalinks = False
+else:
+    html_add_permalinks = ""
 html_show_copyright = False
 highlight_language = 'none'
 
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:37.580815026 +0200
+++ 0210-doc-fix-build-with-Sphinx-4.patch	2021-05-17 17:40:29.611812942 +0200
@@ -1 +1 @@
-From 86ff0663639417f9d25907d09343a5c231e32a51 Mon Sep 17 00:00:00 2001
+From 99df2c2aa1857b5fc4199dc52be3c636f8d1fc73 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 86ff0663639417f9d25907d09343a5c231e32a51 ]
+
@@ -15,2 +16,0 @@
-Cc: stable@dpdk.org
-
@@ -25 +25 @@
-index ec59aeae7e..c22caaa247 100644
+index be02c2ba20..279b830d7b 100644
@@ -28 +28 @@
-@@ -31,7 +31,10 @@ stop_on_error = ('-W' in argv)
+@@ -33,7 +33,10 @@ except:

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

* [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9
  2021-05-17 16:07 [dpdk-stable] patch 'vfio: do not merge contiguous areas' " Christian Ehrhardt
@ 2021-05-17 16:10 ` Christian Ehrhardt
  0 siblings, 0 replies; 22+ messages in thread
From: Christian Ehrhardt @ 2021-05-17 16:10 UTC (permalink / raw)
  To: Stanislaw Kardach; +Cc: David Hunt, Lukasz Wojciechowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 19.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/19/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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/4157d0d7306fbd2fdd20a2654128aff02113a528

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From 4157d0d7306fbd2fdd20a2654128aff02113a528 Mon Sep 17 00:00:00 2001
From: Stanislaw Kardach <kda@semihalf.com>
Date: Wed, 28 Apr 2021 16:25:53 +0200
Subject: [PATCH] test/distributor: fix burst flush on worker quit

[ upstream commit 6cda39af86ffc629732aac79058207cb4044e952 ]

While working on RISC-V port I have encountered a situation where worker
threads get stuck in the rte_distributor_return_pkt() function in the
burst test.
Investigation showed some of the threads enter this function with
flag RTE_DISTRIB_GET_BUF set in the d->retptr64[0]. At the same time the
main thread has already passed rte_distributor_process() so nobody will
clear this flag and hence workers can't return.

What I've noticed is that adding a flush just after the last _process(),
similarly to how quit_workers() function is written in the
test_distributor.c fixes the issue.
Lukasz Wojciechowski reproduced the same issue on x86 using a VM with 32
emulated CPU cores to force some lcores not to be woken up.

Fixes: 7c3287a10535 ("test/distributor: add performance test for burst mode")

Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
Acked-by: David Hunt <david.hunt@intel.com>
Tested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Reviewed-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
---
 app/test/test_distributor_perf.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/test/test_distributor_perf.c b/app/test/test_distributor_perf.c
index 0f3c3d84c1..1f5db4c533 100644
--- a/app/test/test_distributor_perf.c
+++ b/app/test/test_distributor_perf.c
@@ -196,6 +196,7 @@ quit_workers(struct rte_distributor *d, struct rte_mempool *p)
 	rte_mempool_put_bulk(p, (void *)bufs, num_workers);
 
 	rte_distributor_process(d, NULL, 0);
+	rte_distributor_flush(d);
 	rte_eal_mp_wait_lcore();
 	quit = 0;
 	worker_idx = 0;
-- 
2.31.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-05-17 17:40:36.832215134 +0200
+++ 0190-test-distributor-fix-burst-flush-on-worker-quit.patch	2021-05-17 17:40:29.547812436 +0200
@@ -1 +1 @@
-From 6cda39af86ffc629732aac79058207cb4044e952 Mon Sep 17 00:00:00 2001
+From 4157d0d7306fbd2fdd20a2654128aff02113a528 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6cda39af86ffc629732aac79058207cb4044e952 ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org
@@ -32 +33 @@
-index 371a14ba4c..fdbeae6d2f 100644
+index 0f3c3d84c1..1f5db4c533 100644

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

end of thread, other threads:[~2021-05-17 16:22 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-17 16:21 [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' has been queued to stable release 19.11.9 Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'net/virtio: fix vectorized Rx queue rearm' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: refactor multi-queue Rx configuration' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix Rx timestamp when FIFO pending bit is set' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix dynamic VNIC count' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix single PF per port check' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: fix mismatched type comparison in MAC restore' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: check PCI config read' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'net/bnxt: prevent device access in error state' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'raw/ntb: check SPAD user index' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'raw/ntb: check memory allocations' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'ipc: check malloc sync reply result' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'eal: fix service core list parsing' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'app/bbdev: fix HARQ error messages' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'common/qat: increase IM buffer size for GEN3' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'compress/qat: enable compression on " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'test/crypto: fix auth-cipher compare length in OOP' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'crypto/dpaa_sec: affine the thread portal affinity' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'crypto/dpaa2_sec: fix close and uninit functions' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'test/crypto: copy offset data to OOP destination buffer' " Christian Ehrhardt
2021-05-17 16:21 ` [dpdk-stable] patch 'doc: fix build with Sphinx 4' " Christian Ehrhardt
  -- strict thread matches above, loose matches on Subject: below --
2021-05-17 16:07 [dpdk-stable] patch 'vfio: do not merge contiguous areas' " Christian Ehrhardt
2021-05-17 16:10 ` [dpdk-stable] patch 'test/distributor: fix burst flush on worker quit' " Christian Ehrhardt

patches for DPDK stable branches

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/stable/0 stable/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 stable stable/ https://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git