patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1
@ 2018-11-20 19:11 Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'mk: disable OcteonTx for buggy compilers only on arm64' " Kevin Traynor
                   ` (60 more replies)
  0 siblings, 61 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Neil Horman; +Cc: Nikhil Rao, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From fa1b0fa75a272dacd6b1c2298d5cc72a64a01471 Mon Sep 17 00:00:00 2001
From: Neil Horman <nhorman@tuxdriver.com>
Date: Thu, 16 Aug 2018 07:08:01 -0400
Subject: [PATCH] devtools: relax rule for identifying symbol section

[ upstream commit 7281cf520f890a5e779596c872e2440af7131eae ]

It was reported recently that some patches that add symbols to an
existing EXPERIMENTAL section of a version map file generate errors
because the check-symbol-change script was identifying the section as
"@@" rather than EXPERIMENTAL.  This was fairly clearly due to the fact
that the rule identifying the version section expected the whole section
to be added, rather than having it already exist, with only new symbols
being added to the existing section. This led the match rule to misread
the format of that line and pull the wrong word out of it.

The fix is to relax the rule slightly.  Rather than assume that the
section must exist on a line that was added, allow the section name to
be set by any line that ends in a '{', which should be correct, given
our coding practices.  The section name is then extracted as the next to
the last word on the line ( $(NF-1) ).

Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")

Reported-by: Nikhil Rao <nikhil.rao@intel.com>
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Tested-by: Nikhil Rao <nikhil.rao@intel.com>
---
 devtools/check-symbol-change.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh
index daaf45e14..cf9cfc745 100755
--- a/devtools/check-symbol-change.sh
+++ b/devtools/check-symbol-change.sh
@@ -26,12 +26,12 @@ build_map_changes()
 		/[-+] a\/.*\.^(map)/ {in_map=0}
 
-		# Triggering this rule, which starts a line with a + and ends it
+		# Triggering this rule, which starts a line and ends it
 		# with a { identifies a versioned section.  The section name is
 		# the rest of the line with the + and { symbols remvoed.
 		# Triggering this rule sets in_sec to 1, which actives the
 		# symbol rule below
-		/+.*{/ {gsub("+","");
+		/^.*{/ {
 			if (in_map == 1) {
-				sec=$1; in_sec=1;
+				sec=$(NF-1); in_sec=1;
 			}
 		}
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.509182348 +0000
+++ 0001-devtools-relax-rule-for-identifying-symbol-section.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 7281cf520f890a5e779596c872e2440af7131eae Mon Sep 17 00:00:00 2001
+From fa1b0fa75a272dacd6b1c2298d5cc72a64a01471 Mon Sep 17 00:00:00 2001
 From: Neil Horman <nhorman@tuxdriver.com>
 Date: Thu, 16 Aug 2018 07:08:01 -0400
 Subject: [PATCH] devtools: relax rule for identifying symbol section
 
+[ upstream commit 7281cf520f890a5e779596c872e2440af7131eae ]
+
 It was reported recently that some patches that add symbols to an
 existing EXPERIMENTAL section of a version map file generate errors
 because the check-symbol-change script was identifying the section as
@@ -19,7 +21,6 @@
 the last word on the line ( $(NF-1) ).
 
 Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
-Cc: stable@dpdk.org
 
 Reported-by: Nikhil Rao <nikhil.rao@intel.com>
 Signed-off-by: Neil Horman <nhorman@tuxdriver.com>

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

* [dpdk-stable] patch 'mk: disable OcteonTx for buggy compilers only on arm64' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
@ 2018-11-20 19:11 ` Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' " Kevin Traynor
                   ` (59 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Jerin Jacob; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From d8fe9387cdb33b2cb5b27e4b14b3d3d87dd3a622 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Mon, 3 Sep 2018 15:01:10 +0530
Subject: [PATCH] mk: disable OcteonTx for buggy compilers only on arm64

[ upstream commit f3af3e44a444cdfe3fa7b3e2c042be351401eb23 ]

Disable octeontx for gcc 4.8.5 as the compiler is emitting "internal
compiler error" for aarch64. The GCC "internal compiler error" was
observed only for arm64 architecture so disable the PMD only
for arm64.

Fixes: 4f760550a093 ("mk: disable OcteonTx for buggy compilers")

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 mk/toolchain/gcc/rte.toolchain-compat.mk | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/mk/toolchain/gcc/rte.toolchain-compat.mk b/mk/toolchain/gcc/rte.toolchain-compat.mk
index 1e4434fa9..44904295c 100644
--- a/mk/toolchain/gcc/rte.toolchain-compat.mk
+++ b/mk/toolchain/gcc/rte.toolchain-compat.mk
@@ -80,5 +80,6 @@ else
 	endif
 
-	# Disable octeontx event PMD for gcc < 4.8.6
+	# Disable octeontx event PMD for gcc < 4.8.6 & ARCH=arm64
+	ifeq ($(CONFIG_RTE_ARCH), arm64)
 	ifeq ($(shell test $(GCC_VERSION)$(GCC_PATCHLEVEL) -lt 486 && echo 1), 1)
 		CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF=d
@@ -86,4 +87,5 @@ else
 		CONFIG_RTE_LIBRTE_OCTEONTX_PMD=d
 	endif
+	endif
 
 endif
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.529736432 +0000
+++ 0002-mk-disable-OcteonTx-for-buggy-compilers-only-on-arm6.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,15 +1,16 @@
-From f3af3e44a444cdfe3fa7b3e2c042be351401eb23 Mon Sep 17 00:00:00 2001
+From d8fe9387cdb33b2cb5b27e4b14b3d3d87dd3a622 Mon Sep 17 00:00:00 2001
 From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
 Date: Mon, 3 Sep 2018 15:01:10 +0530
 Subject: [PATCH] mk: disable OcteonTx for buggy compilers only on arm64
 
+[ upstream commit f3af3e44a444cdfe3fa7b3e2c042be351401eb23 ]
+
 Disable octeontx for gcc 4.8.5 as the compiler is emitting "internal
 compiler error" for aarch64. The GCC "internal compiler error" was
 observed only for arm64 architecture so disable the PMD only
 for arm64.
 
 Fixes: 4f760550a093 ("mk: disable OcteonTx for buggy compilers")
-Cc: stable@dpdk.org
 
 Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
 Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>

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

* [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'mk: disable OcteonTx for buggy compilers only on arm64' " Kevin Traynor
@ 2018-11-20 19:11 ` Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'malloc: fix potential null pointer dereference' " Kevin Traynor
                   ` (58 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Honnappa Nagarahalli
  Cc: Raslan Darawsheh, Thomas F Herbert, Phil Yang, Gavin Hu,
	Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From c968864af7328c22849e40c2b7bac93359077804 Mon Sep 17 00:00:00 2001
From: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Date: Sun, 2 Sep 2018 13:35:28 -0500
Subject: [PATCH] build: enable ARM NEON flag when __aarch64__ defined

[ upstream commit 68acaa86ae639e3cdd94e419f546045a1b0ce6ca ]

GCC version 4.8.5 does not pre-define __ARM_NEON. NEON is not
optional for ArmV8. Hence NEON related code can be enabled
when __aarch64__ is defined.

Bugzilla ID: 82

Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Reported-by: Thomas F Herbert <therbert@redhat.com>
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
 config/arm/meson.build | 3 ++-
 mk/rte.cpuflags.mk     | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/config/arm/meson.build b/config/arm/meson.build
index 40dbc87f7..94cca490e 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -158,5 +158,6 @@ endif
 message(machine_args)
 
-if cc.get_define('__ARM_NEON', args: machine_args) != ''
+if (cc.get_define('__ARM_NEON', args: machine_args) != '' or
+    cc.get_define('__aarch64__', args: machine_args) != '')
 	dpdk_conf.set('RTE_MACHINE_CPUFLAG_NEON', 1)
 	compile_time_cpuflags += ['RTE_CPUFLAG_NEON']
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
index 60713137d..43ed84155 100644
--- a/mk/rte.cpuflags.mk
+++ b/mk/rte.cpuflags.mk
@@ -90,5 +90,5 @@ endif
 
 # ARM flags
-ifneq ($(filter $(AUTO_CPUFLAGS),__ARM_NEON),)
+ifneq ($(filter __ARM_NEON __aarch64__,$(AUTO_CPUFLAGS)),)
 CPUFLAGS += NEON
 endif
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.551337834 +0000
+++ 0003-build-enable-ARM-NEON-flag-when-__aarch64__-defined.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,14 +1,15 @@
-From 68acaa86ae639e3cdd94e419f546045a1b0ce6ca Mon Sep 17 00:00:00 2001
+From c968864af7328c22849e40c2b7bac93359077804 Mon Sep 17 00:00:00 2001
 From: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
 Date: Sun, 2 Sep 2018 13:35:28 -0500
 Subject: [PATCH] build: enable ARM NEON flag when __aarch64__ defined
 
+[ upstream commit 68acaa86ae639e3cdd94e419f546045a1b0ce6ca ]
+
 GCC version 4.8.5 does not pre-define __ARM_NEON. NEON is not
 optional for ArmV8. Hence NEON related code can be enabled
 when __aarch64__ is defined.
 
 Bugzilla ID: 82
-Cc: stable@dpdk.org
 
 Reported-by: Raslan Darawsheh <rasland@mellanox.com>
 Reported-by: Thomas F Herbert <therbert@redhat.com>

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

* [dpdk-stable] patch 'malloc: fix potential null pointer dereference' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'mk: disable OcteonTx for buggy compilers only on arm64' " Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' " Kevin Traynor
@ 2018-11-20 19:11 ` Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'bus/vdev: fix error log on secondary device scan' " Kevin Traynor
                   ` (57 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 39c49c0cb3b7ce8307d31155c0ae2bf9ce754577 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 15 Aug 2018 15:20:15 +0800
Subject: [PATCH] malloc: fix potential null pointer dereference

[ upstream commit dde37a8fb86dd66b81378255f2c9dfe0c9b2cec9 ]

We need to do the NULL pointer check first after malloc().

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

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/common/malloc_heap.c | 4 +---
 lib/librte_eal/common/malloc_mp.c   | 4 +---
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c
index 12aaf2d72..ac7bbb3ba 100644
--- a/lib/librte_eal/common/malloc_heap.c
+++ b/lib/librte_eal/common/malloc_heap.c
@@ -327,9 +327,7 @@ try_expand_heap_primary(struct malloc_heap *heap, uint64_t pg_sz,
 	/* we can't know in advance how many pages we'll need, so we malloc */
 	ms = malloc(sizeof(*ms) * n_segs);
-
-	memset(ms, 0, sizeof(*ms) * n_segs);
-
 	if (ms == NULL)
 		return -1;
+	memset(ms, 0, sizeof(*ms) * n_segs);
 
 	elem = alloc_pages_on_heap(heap, pg_sz, elt_size, socket, flags, align,
diff --git a/lib/librte_eal/common/malloc_mp.c b/lib/librte_eal/common/malloc_mp.c
index 931c14bc5..5f2d4e0be 100644
--- a/lib/librte_eal/common/malloc_mp.c
+++ b/lib/librte_eal/common/malloc_mp.c
@@ -195,11 +195,9 @@ handle_alloc_request(const struct malloc_mp_req *m,
 	/* we can't know in advance how many pages we'll need, so we malloc */
 	ms = malloc(sizeof(*ms) * n_segs);
-
-	memset(ms, 0, sizeof(*ms) * n_segs);
-
 	if (ms == NULL) {
 		RTE_LOG(ERR, EAL, "Couldn't allocate memory for request state\n");
 		goto fail;
 	}
+	memset(ms, 0, sizeof(*ms) * n_segs);
 
 	elem = alloc_pages_on_heap(heap, ar->page_sz, ar->elt_size, ar->socket,
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.574301709 +0000
+++ 0004-malloc-fix-potential-null-pointer-dereference.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,12 +1,13 @@
-From dde37a8fb86dd66b81378255f2c9dfe0c9b2cec9 Mon Sep 17 00:00:00 2001
+From 39c49c0cb3b7ce8307d31155c0ae2bf9ce754577 Mon Sep 17 00:00:00 2001
 From: Tiwei Bie <tiwei.bie@intel.com>
 Date: Wed, 15 Aug 2018 15:20:15 +0800
 Subject: [PATCH] malloc: fix potential null pointer dereference
 
+[ upstream commit dde37a8fb86dd66b81378255f2c9dfe0c9b2cec9 ]
+
 We need to do the NULL pointer check first after malloc().
 
 Fixes: 07dcbfe0101f ("malloc: support multiprocess memory hotplug")
-Cc: stable@dpdk.org
 
 Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
 Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>

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

* [dpdk-stable] patch 'bus/vdev: fix error log on secondary device scan' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (2 preceding siblings ...)
  2018-11-20 19:11 ` [dpdk-stable] patch 'malloc: fix potential null pointer dereference' " Kevin Traynor
@ 2018-11-20 19:11 ` Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Kevin Traynor
                   ` (56 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Gage Eads, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From dd10e7513a547b11f2ac8b84a87ce3e5e9aaa913 Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Mon, 3 Sep 2018 16:49:29 +0800
Subject: [PATCH] bus/vdev: fix error log on secondary device scan

[ upstream commit 23f1c424599008a990bfcdf283a0c935bf5b3cdf ]

When a secondary process handles VDEV_SCAN_ONE mp action, it is possible
the device is already be inserted. This happens when we have multiple
secondary processes which cause multiple broadcasts from primary during
bus->scan. So we don't need to log any error for -EEXIST.

Bugzilla ID: 84
Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel")

Reported-by: Gage Eads <gage.eads@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Gage Eads <gage.eads@intel.com>
---
 drivers/bus/vdev/vdev.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index 6139dd551..69dee89a8 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -347,4 +347,5 @@ vdev_action(const struct rte_mp_msg *mp_msg, const void *peer)
 	const char *devname;
 	int num;
+	int ret;
 
 	strlcpy(mp_resp.name, VDEV_MP_KEY, sizeof(mp_resp.name));
@@ -381,5 +382,8 @@ vdev_action(const struct rte_mp_msg *mp_msg, const void *peer)
 	case VDEV_SCAN_ONE:
 		VDEV_LOG(INFO, "receive vdev, %s", in->name);
-		if (insert_vdev(in->name, NULL, NULL) < 0)
+		ret = insert_vdev(in->name, NULL, NULL);
+		if (ret == -EEXIST)
+			VDEV_LOG(DEBUG, "device already exist, %s", in->name);
+		else if (ret < 0)
 			VDEV_LOG(ERR, "failed to add vdev, %s", in->name);
 		break;
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.596477640 +0000
+++ 0005-bus-vdev-fix-error-log-on-secondary-device-scan.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 23f1c424599008a990bfcdf283a0c935bf5b3cdf Mon Sep 17 00:00:00 2001
+From dd10e7513a547b11f2ac8b84a87ce3e5e9aaa913 Mon Sep 17 00:00:00 2001
 From: Qi Zhang <qi.z.zhang@intel.com>
 Date: Mon, 3 Sep 2018 16:49:29 +0800
 Subject: [PATCH] bus/vdev: fix error log on secondary device scan
 
+[ upstream commit 23f1c424599008a990bfcdf283a0c935bf5b3cdf ]
+
 When a secondary process handles VDEV_SCAN_ONE mp action, it is possible
 the device is already be inserted. This happens when we have multiple
 secondary processes which cause multiple broadcasts from primary during
@@ -10,7 +12,6 @@
 
 Bugzilla ID: 84
 Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel")
-Cc: stable@dpdk.org
 
 Reported-by: Gage Eads <gage.eads@intel.com>
 Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>

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

* [dpdk-stable] patch 'acl: forbid rule with priority zero' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (3 preceding siblings ...)
  2018-11-20 19:11 ` [dpdk-stable] patch 'bus/vdev: fix error log on secondary device scan' " Kevin Traynor
@ 2018-11-20 19:11 ` Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Kevin Traynor
                   ` (55 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Konstantin Ananyev; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 092b3294a61c625de69ecfad3e2e938111bfdd97 Mon Sep 17 00:00:00 2001
From: Konstantin Ananyev <konstantin.ananyev@intel.com>
Date: Fri, 24 Aug 2018 17:47:06 +0100
Subject: [PATCH] acl: forbid rule with priority zero

[ upstream commit 53945477981cf75cf8d66e67a098b486e37df167 ]

If user specifies priority=0 for some of ACL rules
that can cause rte_acl_classify to return wrong results.
The reason is that priority zero is used internally for no-match nodes.
See more details at: https://bugs.dpdk.org/show_bug.cgi?id=79.
The simplest way to overcome the issue is just not allow zero
to be a valid priority for the rule.

Fixes: dc276b5780c2 ("acl: new library")

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
 lib/librte_acl/rte_acl.h |  2 +-
 test/test/test_acl.h     | 18 ++++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/lib/librte_acl/rte_acl.h b/lib/librte_acl/rte_acl.h
index 34c3b9c6a..aa22e70c6 100644
--- a/lib/librte_acl/rte_acl.h
+++ b/lib/librte_acl/rte_acl.h
@@ -89,5 +89,5 @@ enum {
 	RTE_ACL_MAX_INDEX = RTE_LEN2MASK(RTE_ACL_TYPE_SHIFT, uint32_t),
 	RTE_ACL_MAX_PRIORITY = RTE_ACL_MAX_INDEX,
-	RTE_ACL_MIN_PRIORITY = 0,
+	RTE_ACL_MIN_PRIORITY = 1,
 };
 
diff --git a/test/test/test_acl.h b/test/test/test_acl.h
index c4811c8f5..bbb0447a8 100644
--- a/test/test/test_acl.h
+++ b/test/test/test_acl.h
@@ -81,10 +81,12 @@ struct rte_acl_ipv4vlan_rule invalid_layout_rules[] = {
 		/* test src and dst address */
 		{
-				.data = {.userdata = 1, .category_mask = 1},
+				.data = {.userdata = 1, .category_mask = 1,
+					.priority = 1},
 				.src_addr = IPv4(10,0,0,0),
 				.src_mask_len = 24,
 		},
 		{
-				.data = {.userdata = 2, .category_mask = 1},
+				.data = {.userdata = 2, .category_mask = 1,
+					.priority = 1},
 				.dst_addr = IPv4(10,0,0,0),
 				.dst_mask_len = 24,
@@ -92,10 +94,12 @@ struct rte_acl_ipv4vlan_rule invalid_layout_rules[] = {
 		/* test src and dst ports */
 		{
-				.data = {.userdata = 3, .category_mask = 1},
+				.data = {.userdata = 3, .category_mask = 1,
+					.priority = 1},
 				.dst_port_low = 100,
 				.dst_port_high = 100,
 		},
 		{
-				.data = {.userdata = 4, .category_mask = 1},
+				.data = {.userdata = 4, .category_mask = 1,
+					.priority = 1},
 				.src_port_low = 100,
 				.src_port_high = 100,
@@ -103,10 +107,12 @@ struct rte_acl_ipv4vlan_rule invalid_layout_rules[] = {
 		/* test proto */
 		{
-				.data = {.userdata = 5, .category_mask = 1},
+				.data = {.userdata = 5, .category_mask = 1,
+					.priority = 1},
 				.proto = 0xf,
 				.proto_mask = 0xf
 		},
 		{
-				.data = {.userdata = 6, .category_mask = 1},
+				.data = {.userdata = 6, .category_mask = 1,
+					.priority = 1},
 				.dst_port_low = 0xf,
 				.dst_port_high = 0xf,
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.618425495 +0000
+++ 0006-acl-forbid-rule-with-priority-zero.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 53945477981cf75cf8d66e67a098b486e37df167 Mon Sep 17 00:00:00 2001
+From 092b3294a61c625de69ecfad3e2e938111bfdd97 Mon Sep 17 00:00:00 2001
 From: Konstantin Ananyev <konstantin.ananyev@intel.com>
 Date: Fri, 24 Aug 2018 17:47:06 +0100
 Subject: [PATCH] acl: forbid rule with priority zero
 
+[ upstream commit 53945477981cf75cf8d66e67a098b486e37df167 ]
+
 If user specifies priority=0 for some of ACL rules
 that can cause rte_acl_classify to return wrong results.
 The reason is that priority zero is used internally for no-match nodes.
@@ -11,7 +13,6 @@
 to be a valid priority for the rule.
 
 Fixes: dc276b5780c2 ("acl: new library")
-Cc: stable@dpdk.org
 
 Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
 ---

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

* [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (4 preceding siblings ...)
  2018-11-20 19:11 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Kevin Traynor
@ 2018-11-20 19:11 ` Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'net/netvsc: fix chimney buffer size error handling' " Kevin Traynor
                   ` (54 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Yunjian Wang; +Cc: Chas Williams, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From c33339ca9652a2c702fd52b343d660d5c85c465e Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Tue, 7 Aug 2018 16:10:46 +0800
Subject: [PATCH] net/bonding: support matching QinQ ethertype

[ upstream commit 763e450ae24d88b87f1eb86643a2897b141d9c07 ]

We assume VLAN ethtertype is 0x8100 in get_vlan_offset() function,
but it could be 0x88A8 if QinQ is supported.

Fixes: 06fe78b98ccd ("bond: add mode 6")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Chas Williams <chas3@att.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 58f7377c6..441742258 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -38,5 +38,6 @@ get_vlan_offset(struct ether_hdr *eth_hdr, uint16_t *proto)
 	size_t vlan_offset = 0;
 
-	if (rte_cpu_to_be_16(ETHER_TYPE_VLAN) == *proto) {
+	if (rte_cpu_to_be_16(ETHER_TYPE_VLAN) == *proto ||
+		rte_cpu_to_be_16(ETHER_TYPE_QINQ) == *proto) {
 		struct vlan_hdr *vlan_hdr = (struct vlan_hdr *)(eth_hdr + 1);
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.640817490 +0000
+++ 0007-net-bonding-support-matching-QinQ-ethertype.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From 763e450ae24d88b87f1eb86643a2897b141d9c07 Mon Sep 17 00:00:00 2001
+From c33339ca9652a2c702fd52b343d660d5c85c465e Mon Sep 17 00:00:00 2001
 From: Yunjian Wang <wangyunjian@huawei.com>
 Date: Tue, 7 Aug 2018 16:10:46 +0800
 Subject: [PATCH] net/bonding: support matching QinQ ethertype
 
+[ upstream commit 763e450ae24d88b87f1eb86643a2897b141d9c07 ]
+
 We assume VLAN ethtertype is 0x8100 in get_vlan_offset() function,
 but it could be 0x88A8 if QinQ is supported.
 
 Fixes: 06fe78b98ccd ("bond: add mode 6")
-Cc: stable@dpdk.org
 
 Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
 Acked-by: Chas Williams <chas3@att.com>

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

* [dpdk-stable] patch 'net/netvsc: fix chimney buffer size error handling' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (5 preceding siblings ...)
  2018-11-20 19:11 ` [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Kevin Traynor
@ 2018-11-20 19:11 ` Kevin Traynor
  2018-11-20 19:11 ` [dpdk-stable] patch 'net/netvsc: resize event buffer as needed' " Kevin Traynor
                   ` (53 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 66b526bffe5b09d7991e6ac5449b1e1336197489 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <sthemmin@microsoft.com>
Date: Thu, 9 Aug 2018 10:50:05 -0700
Subject: [PATCH] net/netvsc: fix chimney buffer size error handling

[ upstream commit 99e3d0e72f0bf34a39bf57d4b363730994eb5a59 ]

Fix the error handling in setting up transmit buffer.
If setting up chimney buffer fails, then it is not connected so
no need to send disconnect.

Allow for some unused area if full area is not used.

Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 drivers/net/netvsc/hn_nvs.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/net/netvsc/hn_nvs.c b/drivers/net/netvsc/hn_nvs.c
index 77d3b839f..a458bb720 100644
--- a/drivers/net/netvsc/hn_nvs.c
+++ b/drivers/net/netvsc/hn_nvs.c
@@ -280,5 +280,5 @@ hn_nvs_conn_chim(struct hn_data *hv)
 	if (error) {
 		PMD_DRV_LOG(ERR, "exec nvs chim conn failed");
-		goto cleanup;
+		return error;
 	}
 
@@ -286,6 +286,5 @@ hn_nvs_conn_chim(struct hn_data *hv)
 		PMD_DRV_LOG(ERR, "nvs chim conn failed: %x",
 			    resp.status);
-		error = -EIO;
-		goto cleanup;
+		return -EIO;
 	}
 
@@ -296,5 +295,6 @@ hn_nvs_conn_chim(struct hn_data *hv)
 			    "invalid chimney sending buffer section size: %u",
 			    sectsz);
-		return 0;
+		error = -EINVAL;
+		goto cleanup;
 	}
 
@@ -305,9 +305,4 @@ hn_nvs_conn_chim(struct hn_data *hv)
 		    len, hv->chim_szmax, hv->chim_cnt);
 
-	if (len % hv->chim_szmax != 0) {
-		PMD_DRV_LOG(NOTICE,
-			    "chimney sending sections are not properly aligned");
-	}
-
 	/* Done! */
 	return 0;
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.665777909 +0000
+++ 0008-net-netvsc-fix-chimney-buffer-size-error-handling.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 99e3d0e72f0bf34a39bf57d4b363730994eb5a59 Mon Sep 17 00:00:00 2001
+From 66b526bffe5b09d7991e6ac5449b1e1336197489 Mon Sep 17 00:00:00 2001
 From: Stephen Hemminger <sthemmin@microsoft.com>
 Date: Thu, 9 Aug 2018 10:50:05 -0700
 Subject: [PATCH] net/netvsc: fix chimney buffer size error handling
 
+[ upstream commit 99e3d0e72f0bf34a39bf57d4b363730994eb5a59 ]
+
 Fix the error handling in setting up transmit buffer.
 If setting up chimney buffer fails, then it is not connected so
 no need to send disconnect.
@@ -10,7 +12,6 @@
 Allow for some unused area if full area is not used.
 
 Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")
-Cc: stable@dpdk.org
 
 Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
 ---

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

* [dpdk-stable] patch 'net/netvsc: resize event buffer as needed' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (6 preceding siblings ...)
  2018-11-20 19:11 ` [dpdk-stable] patch 'net/netvsc: fix chimney buffer size error handling' " Kevin Traynor
@ 2018-11-20 19:11 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/octeontx: fix packet corruption on Tx' " Kevin Traynor
                   ` (52 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:11 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 9b56b30a66a8005f3eba80dd953d2d388a88fa44 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <sthemmin@microsoft.com>
Date: Tue, 14 Aug 2018 09:45:25 -0700
Subject: [PATCH] net/netvsc: resize event buffer as needed

[ upstream commit 1f2766b7ee02c434b554513193c2a2be6664601d ]

The event buffer was changed to be a fixed size value,
had a couple of issues. The big one is that rte_free was still
being called for a pointer that was not setup with rte_malloc().

The event buffer was also too small to handle heavy receive
traffic; and running the event buffer out would crash
the application.

Fix by going back to a dynamically resized event buffer.
And grow it by 25% to avoid lots of realloc's.

Fixes: 530af95a7849 ("bus/vmbus: avoid signalling host on read")

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 drivers/net/netvsc/hn_rxtx.c | 50 ++++++++++++++++++++++++++----------
 drivers/net/netvsc/hn_var.h  |  2 +-
 2 files changed, 38 insertions(+), 14 deletions(-)

diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c
index 02ef27e36..9b394d261 100644
--- a/drivers/net/netvsc/hn_rxtx.c
+++ b/drivers/net/netvsc/hn_rxtx.c
@@ -11,4 +11,5 @@
 #include <unistd.h>
 #include <strings.h>
+#include <malloc.h>
 
 #include <rte_ethdev.h>
@@ -719,14 +720,22 @@ struct hn_rx_queue *hn_rx_queue_alloc(struct hn_data *hv,
 	struct hn_rx_queue *rxq;
 
-	rxq = rte_zmalloc_socket("HN_RXQ",
-				 sizeof(*rxq) + HN_RXQ_EVENT_DEFAULT,
+	rxq = rte_zmalloc_socket("HN_RXQ", sizeof(*rxq),
 				 RTE_CACHE_LINE_SIZE, socket_id);
-	if (rxq) {
-		rxq->hv = hv;
-		rxq->chan = hv->channels[queue_id];
-		rte_spinlock_init(&rxq->ring_lock);
-		rxq->port_id = hv->port_id;
-		rxq->queue_id = queue_id;
+	if (!rxq)
+		return NULL;
+
+	rxq->hv = hv;
+	rxq->chan = hv->channels[queue_id];
+	rte_spinlock_init(&rxq->ring_lock);
+	rxq->port_id = hv->port_id;
+	rxq->queue_id = queue_id;
+	rxq->event_sz = HN_RXQ_EVENT_DEFAULT;
+	rxq->event_buf = rte_malloc_socket("HN_EVENTS", HN_RXQ_EVENT_DEFAULT,
+					   RTE_CACHE_LINE_SIZE, socket_id);
+	if (!rxq->event_buf) {
+		rte_free(rxq);
+		return NULL;
 	}
+
 	return rxq;
 }
@@ -854,17 +863,32 @@ void hn_process_events(struct hn_data *hv, uint16_t queue_id)
 	for (;;) {
 		const struct vmbus_chanpkt_hdr *pkt;
-		uint32_t len = HN_RXQ_EVENT_DEFAULT;
+		uint32_t len = rxq->event_sz;
 		const void *data;
 
+retry:
 		ret = rte_vmbus_chan_recv_raw(rxq->chan, rxq->event_buf, &len);
 		if (ret == -EAGAIN)
 			break;	/* ring is empty */
 
-		else if (ret == -ENOBUFS)
-			rte_exit(EXIT_FAILURE, "event buffer not big enough (%u < %u)",
-				 HN_RXQ_EVENT_DEFAULT, len);
-		else if (ret <= 0)
+		if (unlikely(ret == -ENOBUFS)) {
+			/* event buffer not large enough to read ring */
+
+			PMD_DRV_LOG(DEBUG,
+				    "event buffer expansion (need %u)", len);
+			rxq->event_sz = len + len / 4;
+			rxq->event_buf = rte_realloc(rxq->event_buf, rxq->event_sz,
+						     RTE_CACHE_LINE_SIZE);
+			if (rxq->event_buf)
+				goto retry;
+			/* out of memory, no more events now */
+			rxq->event_sz = 0;
+			break;
+		}
+
+		if (unlikely(ret <= 0)) {
+			/* This indicates a failure to communicate (or worse) */
 			rte_exit(EXIT_FAILURE,
 				 "vmbus ring buffer error: %d", ret);
+		}
 
 		bytes_read += ret;
diff --git a/drivers/net/netvsc/hn_var.h b/drivers/net/netvsc/hn_var.h
index f7ff8585b..0430f450c 100644
--- a/drivers/net/netvsc/hn_var.h
+++ b/drivers/net/netvsc/hn_var.h
@@ -78,5 +78,5 @@ struct hn_rx_queue {
 	uint64_t ring_full;
 
-	uint8_t	event_buf[];
+	void *event_buf;
 };
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.687552366 +0000
+++ 0009-net-netvsc-resize-event-buffer-as-needed.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 1f2766b7ee02c434b554513193c2a2be6664601d Mon Sep 17 00:00:00 2001
+From 9b56b30a66a8005f3eba80dd953d2d388a88fa44 Mon Sep 17 00:00:00 2001
 From: Stephen Hemminger <sthemmin@microsoft.com>
 Date: Tue, 14 Aug 2018 09:45:25 -0700
 Subject: [PATCH] net/netvsc: resize event buffer as needed
 
+[ upstream commit 1f2766b7ee02c434b554513193c2a2be6664601d ]
+
 The event buffer was changed to be a fixed size value,
 had a couple of issues. The big one is that rte_free was still
 being called for a pointer that was not setup with rte_malloc().
@@ -15,7 +17,6 @@
 And grow it by 25% to avoid lots of realloc's.
 
 Fixes: 530af95a7849 ("bus/vmbus: avoid signalling host on read")
-Cc: stable@dpdk.org
 
 Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
 ---
@@ -24,7 +25,7 @@
  2 files changed, 38 insertions(+), 14 deletions(-)
 
 diff --git a/drivers/net/netvsc/hn_rxtx.c b/drivers/net/netvsc/hn_rxtx.c
-index 24abc2a91..cb5bc6029 100644
+index 02ef27e36..9b394d261 100644
 --- a/drivers/net/netvsc/hn_rxtx.c
 +++ b/drivers/net/netvsc/hn_rxtx.c
 @@ -11,4 +11,5 @@
@@ -64,7 +65,7 @@
 +
  	return rxq;
  }
-@@ -864,17 +873,32 @@ uint32_t hn_process_events(struct hn_data *hv, uint16_t queue_id,
+@@ -854,17 +863,32 @@ void hn_process_events(struct hn_data *hv, uint16_t queue_id)
  	for (;;) {
  		const struct vmbus_chanpkt_hdr *pkt;
 -		uint32_t len = HN_RXQ_EVENT_DEFAULT;
@@ -103,10 +104,10 @@
  
  		bytes_read += ret;
 diff --git a/drivers/net/netvsc/hn_var.h b/drivers/net/netvsc/hn_var.h
-index fec8d7c40..b42bd97b9 100644
+index f7ff8585b..0430f450c 100644
 --- a/drivers/net/netvsc/hn_var.h
 +++ b/drivers/net/netvsc/hn_var.h
-@@ -81,5 +81,5 @@ struct hn_rx_queue {
+@@ -78,5 +78,5 @@ struct hn_rx_queue {
  	uint64_t ring_full;
  
 -	uint8_t	event_buf[];

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

* [dpdk-stable] patch 'net/octeontx: fix packet corruption on Tx' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (7 preceding siblings ...)
  2018-11-20 19:11 ` [dpdk-stable] patch 'net/netvsc: resize event buffer as needed' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'doc: fix style and syntax in flow API guide' " Kevin Traynor
                   ` (51 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Jerin Jacob; +Cc: Vikas Aggarwal, Santosh Shukla, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 84348f7544c863d670138449a0c285406829572c Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Fri, 17 Aug 2018 20:00:22 +0530
Subject: [PATCH] net/octeontx: fix packet corruption on Tx

[ upstream commit 9f92552eb997819d8af80b0634849070075cce2a ]

LMTST does not guarantee packet content get synced with L2C when
HW access the packet for transmitting.

Adding coherent IO write barrier will make sure HW sees the correct
packet if its modified.

Fixes: 9e747589bd4c ("net/octeontx: add packet transmit burst function")

Reported-by: Vikas Aggarwal <vikas.aggarwal@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
---
 drivers/net/octeontx/octeontx_rxtx.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/octeontx/octeontx_rxtx.c b/drivers/net/octeontx/octeontx_rxtx.c
index a9149b4e1..f861313e6 100644
--- a/drivers/net/octeontx/octeontx_rxtx.c
+++ b/drivers/net/octeontx/octeontx_rxtx.c
@@ -64,4 +64,5 @@ octeontx_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 	count = 0;
 
+	rte_cio_wmb();
 	while (count < nb_pkts) {
 		res = __octeontx_xmit_pkts(dq->lmtline_va, dq->ioreg_va,
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.710126248 +0000
+++ 0010-net-octeontx-fix-packet-corruption-on-Tx.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 9f92552eb997819d8af80b0634849070075cce2a Mon Sep 17 00:00:00 2001
+From 84348f7544c863d670138449a0c285406829572c Mon Sep 17 00:00:00 2001
 From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
 Date: Fri, 17 Aug 2018 20:00:22 +0530
 Subject: [PATCH] net/octeontx: fix packet corruption on Tx
 
+[ upstream commit 9f92552eb997819d8af80b0634849070075cce2a ]
+
 LMTST does not guarantee packet content get synced with L2C when
 HW access the packet for transmitting.
 
@@ -10,7 +12,6 @@
 packet if its modified.
 
 Fixes: 9e747589bd4c ("net/octeontx: add packet transmit burst function")
-Cc: stable@dpdk.org
 
 Reported-by: Vikas Aggarwal <vikas.aggarwal@caviumnetworks.com>
 Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

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

* [dpdk-stable] patch 'doc: fix style and syntax in flow API guide' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (8 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/octeontx: fix packet corruption on Tx' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix artificial L4 limitation on switch flow rules' " Kevin Traynor
                   ` (50 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Ilya Maximets; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 36107fc61e8d157e0ff4f8a960e48bd96bedaf6a Mon Sep 17 00:00:00 2001
From: Ilya Maximets <i.maximets@samsung.com>
Date: Thu, 23 Aug 2018 11:05:54 +0300
Subject: [PATCH] doc: fix style and syntax in flow API guide

[ upstream commit 1334586b669c1d27aec2bffd0b1ed9f542cd7d19 ]

Fixes: 3e0ceb9f17ff ("doc: add basic howto for flow API")

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 doc/guides/howto/rte_flow.rst | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/doc/guides/howto/rte_flow.rst b/doc/guides/howto/rte_flow.rst
index caa4e1afd..c71152161 100644
--- a/doc/guides/howto/rte_flow.rst
+++ b/doc/guides/howto/rte_flow.rst
@@ -33,5 +33,5 @@ Code
 
   /* create the attribute structure */
-  struct rte_flow_attr attr = {.ingress = 1};
+  struct rte_flow_attr attr = { .ingress = 1 };
   struct rte_flow_item pattern[MAX_PATTERN_IN_FLOW];
   struct rte_flow_action actions[MAX_ACTIONS_IN_FLOW];
@@ -63,6 +63,6 @@ Code
 
   /* validate and create the flow rule */
-  if (!rte_flow_validate(port_id, &attr, pattern, actions, &error)
-      flow = rte_flow_create(port_id, &attr, pattern, actions, &error)
+  if (!rte_flow_validate(port_id, &attr, pattern, actions, &error))
+      flow = rte_flow_create(port_id, &attr, pattern, actions, &error);
 
 Output
@@ -121,5 +121,5 @@ clarity)::
   tpmd> flow create 0 ingress pattern eth / vlan /
                     ipv4 dst spec 192.168.3.0 dst mask 255.255.255.0 /
-	            end actions drop / end
+                    end actions drop / end
 
 Code
@@ -161,6 +161,6 @@ Code
 
   /* validate and create the flow rule */
-  if (!rte_flow_validate(port_id, &attr, pattern, actions, &error)
-      flow = rte_flow_create(port_id, &attr, pattern, actions, &error)
+  if (!rte_flow_validate(port_id, &attr, pattern, actions, &error))
+      flow = rte_flow_create(port_id, &attr, pattern, actions, &error);
 
 Output
@@ -228,5 +228,5 @@ Code
 .. code-block:: c
 
-  struct rte_flow_attr attr = {.ingress = 1};
+  struct rte_flow_attr attr = { .ingress = 1 };
   struct rte_flow_item pattern[MAX_PATTERN_IN_FLOW];
   struct rte_flow_action actions[MAX_ACTIONS_IN_FLOW];
@@ -251,10 +251,10 @@ Code
   /* create the queue action */
   actions[0].type = RTE_FLOW_ACTION_TYPE_QUEUE;
-  actions[0].conf = &queue
+  actions[0].conf = &queue;
   actions[1].type = RTE_FLOW_ACTION_TYPE_END;
 
   /* validate and create the flow rule */
-  if (!rte_flow_validate(port_id, &attr, pattern, actions, &error)
-      flow = rte_flow_create(port_id, &attr, pattern, actions, &error)
+  if (!rte_flow_validate(port_id, &attr, pattern, actions, &error))
+      flow = rte_flow_create(port_id, &attr, pattern, actions, &error);
 
 Output
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.731985720 +0000
+++ 0011-doc-fix-style-and-syntax-in-flow-API-guide.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,10 +1,11 @@
-From 1334586b669c1d27aec2bffd0b1ed9f542cd7d19 Mon Sep 17 00:00:00 2001
+From 36107fc61e8d157e0ff4f8a960e48bd96bedaf6a Mon Sep 17 00:00:00 2001
 From: Ilya Maximets <i.maximets@samsung.com>
 Date: Thu, 23 Aug 2018 11:05:54 +0300
 Subject: [PATCH] doc: fix style and syntax in flow API guide
 
+[ upstream commit 1334586b669c1d27aec2bffd0b1ed9f542cd7d19 ]
+
 Fixes: 3e0ceb9f17ff ("doc: add basic howto for flow API")
-Cc: stable@dpdk.org
 
 Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
 Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>

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

* [dpdk-stable] patch 'net/mlx5: fix artificial L4 limitation on switch flow rules' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (9 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'doc: fix style and syntax in flow API guide' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' " Kevin Traynor
                   ` (49 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Adrien Mazarguil; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 472fb2561be430b32da30a5c29d37a65afd697e9 Mon Sep 17 00:00:00 2001
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Date: Mon, 6 Aug 2018 16:25:42 +0200
Subject: [PATCH] net/mlx5: fix artificial L4 limitation on switch flow rules

[ upstream commit dce1e4c2044d0e197eee29182cdb93454a0dc3d5 ]

Partial bit-masks are in fact supported on TCP/UDP source/destination
ports. Remove unnecessary check.

Fixes: 2bfc777e07 ("net/mlx5: add L2-L4 pattern items to switch flow rules")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 drivers/net/mlx5/mlx5_nl_flow.c | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_nl_flow.c b/drivers/net/mlx5/mlx5_nl_flow.c
index a1c8c340b..beb03c911 100644
--- a/drivers/net/mlx5/mlx5_nl_flow.c
+++ b/drivers/net/mlx5/mlx5_nl_flow.c
@@ -800,14 +800,4 @@ trans:
 		}
 		spec.tcp = item->spec;
-		if ((mask.tcp->hdr.src_port &&
-		     mask.tcp->hdr.src_port != RTE_BE16(0xffff)) ||
-		    (mask.tcp->hdr.dst_port &&
-		     mask.tcp->hdr.dst_port != RTE_BE16(0xffff)))
-			return rte_flow_error_set
-				(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ITEM_MASK,
-				 mask.tcp,
-				 "no support for partial masks on"
-				 " \"hdr.src_port\" and \"hdr.dst_port\""
-				 " fields");
 		if ((mask.tcp->hdr.src_port &&
 		     (!mnl_attr_put_u16_check(buf, size,
@@ -847,14 +837,4 @@ trans:
 		}
 		spec.udp = item->spec;
-		if ((mask.udp->hdr.src_port &&
-		     mask.udp->hdr.src_port != RTE_BE16(0xffff)) ||
-		    (mask.udp->hdr.dst_port &&
-		     mask.udp->hdr.dst_port != RTE_BE16(0xffff)))
-			return rte_flow_error_set
-				(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ITEM_MASK,
-				 mask.udp,
-				 "no support for partial masks on"
-				 " \"hdr.src_port\" and \"hdr.dst_port\""
-				 " fields");
 		if ((mask.udp->hdr.src_port &&
 		     (!mnl_attr_put_u16_check(buf, size,
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.753183034 +0000
+++ 0012-net-mlx5-fix-artificial-L4-limitation-on-switch-flow.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From dce1e4c2044d0e197eee29182cdb93454a0dc3d5 Mon Sep 17 00:00:00 2001
+From 472fb2561be430b32da30a5c29d37a65afd697e9 Mon Sep 17 00:00:00 2001
 From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
 Date: Mon, 6 Aug 2018 16:25:42 +0200
 Subject: [PATCH] net/mlx5: fix artificial L4 limitation on switch flow rules
 
+[ upstream commit dce1e4c2044d0e197eee29182cdb93454a0dc3d5 ]
+
 Partial bit-masks are in fact supported on TCP/UDP source/destination
 ports. Remove unnecessary check.
 
 Fixes: 2bfc777e07 ("net/mlx5: add L2-L4 pattern items to switch flow rules")
-Cc: stable@dpdk.org
 
 Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
 ---

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

* [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (10 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix artificial L4 limitation on switch flow rules' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix RSS flow action hash type selection' " Kevin Traynor
                   ` (48 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Shahaf Shuler; +Cc: Yongseok Koh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 6ffff221711e179459a9b1e2549d2e1d29d35d8f Mon Sep 17 00:00:00 2001
From: Shahaf Shuler <shahafs@mellanox.com>
Date: Mon, 13 Aug 2018 09:47:57 +0300
Subject: [PATCH] net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default

[ upstream commit f9de87187b7f233cc5b1ea964c05311dfeed951a ]

On ConnectX-4 Lx the Multi Packet Send (MPW) feature is considered
un-secure, as on some cases were the application provides incorrect mbufs
on the Tx burst the host or NIC can get stuck.

Hence, disabling the feature by default for this specific NIC.
Users can still enable this feature and enjoy the performance gain
(mostly for low number of cores) by using the txq_mpw_en devarg.

This patch will impact the out of the box performance of some application
using ConnectX-4 Lx for the sack of security and robustness.

Since we need different defaults based on the underlying device the mpw
field in the configuration struct was extended to contain also the
MLX5_ARG_UNSET option.

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
---
 doc/guides/nics/mlx5.rst |  7 ++++++-
 drivers/net/mlx5/mlx5.c  | 20 +++++++++++---------
 drivers/net/mlx5/mlx5.h  |  2 +-
 3 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 52e1213cf..dbdb90b59 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -340,5 +340,10 @@ Run-time configuration
 
   It is currently only supported on the ConnectX-4 Lx, ConnectX-5 and Bluefield
-  families of adapters. Enabled by default.
+  families of adapters.
+  On ConnectX-4 Lx the MPW is considered un-secure hence disabled by default.
+  Users which enable the MPW should be aware that application which provides incorrect
+  mbuf descriptors in the Tx burst can lead to serious errors in the host including, on some cases,
+  NIC to get stuck.
+  On ConnectX-5 and Bluefield the MPW is secure and enabled by default.
 
 - ``txq_mpw_hdr_dseg_en`` parameter [int]
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index ec63bc6e2..30d4e70a7 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -478,5 +478,5 @@ mlx5_args_check(const char *key, const char *val, void *opaque)
 		config->txqs_inline = tmp;
 	} else if (strcmp(MLX5_TXQ_MPW_EN, key) == 0) {
-		config->mps = !!tmp ? config->mps : 0;
+		config->mps = !!tmp;
 	} else if (strcmp(MLX5_TXQ_MPW_HDR_DSEG_EN, key) == 0) {
 		config->mpw_hdr_dseg = !!tmp;
@@ -703,4 +703,5 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
 	struct mlx5_dev_config config = {
 		.vf = !!vf,
+		.mps = MLX5_ARG_UNSET,
 		.tx_vec_en = 1,
 		.rx_vec_en = 1,
@@ -792,5 +793,4 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
 		mps = MLX5_MPW_DISABLED;
 	}
-	config.mps = mps;
 #ifdef HAVE_IBV_MLX5_MOD_SWP
 	if (dv_attr.comp_mask & MLX5DV_CONTEXT_MASK_SWP)
@@ -1036,11 +1036,13 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
 	if (config.tso)
 		config.tso_max_payload_sz = attr.tso_caps.max_tso;
-	if (config.mps && !mps) {
-		DRV_LOG(ERR,
-			"multi-packet send not supported on this device"
-			" (" MLX5_TXQ_MPW_EN ")");
-		err = ENOTSUP;
-		goto error;
-	}
+	/*
+	 * MPW is disabled by default, while the Enhanced MPW is enabled
+	 * by default.
+	 */
+	if (config.mps == MLX5_ARG_UNSET)
+		config.mps = (mps == MLX5_MPW_ENHANCED) ? MLX5_MPW_ENHANCED :
+							  MLX5_MPW_DISABLED;
+	else
+		config.mps = config.mps ? mps : MLX5_MPW_DISABLED;
 	DRV_LOG(INFO, "%sMPS is %s",
 		config.mps == MLX5_MPW_ENHANCED ? "enhanced " : "",
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index a3a34cffd..35a196e76 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -100,5 +100,4 @@ struct mlx5_dev_config {
 	unsigned int hw_padding:1; /* End alignment padding is supported. */
 	unsigned int vf:1; /* This is a VF. */
-	unsigned int mps:2; /* Multi-packet send supported mode. */
 	unsigned int tunnel_en:1;
 	/* Whether tunnel stateless offloads are supported. */
@@ -123,4 +122,5 @@ struct mlx5_dev_config {
 		/* Rx queue count threshold to enable MPRQ. */
 	} mprq; /* Configurations for Multi-Packet RQ. */
+	int mps; /* Multi-packet send supported mode. */
 	unsigned int flow_prio; /* Number of flow priorities. */
 	unsigned int tso_max_payload_sz; /* Maximum TCP payload for TSO. */
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.775337119 +0000
+++ 0013-net-mlx5-disable-ConnectX-4-Lx-Multi-Packet-Send-by-.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From f9de87187b7f233cc5b1ea964c05311dfeed951a Mon Sep 17 00:00:00 2001
+From 6ffff221711e179459a9b1e2549d2e1d29d35d8f Mon Sep 17 00:00:00 2001
 From: Shahaf Shuler <shahafs@mellanox.com>
 Date: Mon, 13 Aug 2018 09:47:57 +0300
 Subject: [PATCH] net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default
 
+[ upstream commit f9de87187b7f233cc5b1ea964c05311dfeed951a ]
+
 On ConnectX-4 Lx the Multi Packet Send (MPW) feature is considered
 un-secure, as on some cases were the application provides incorrect mbufs
 on the Tx burst the host or NIC can get stuck.
@@ -18,8 +20,6 @@
 field in the configuration struct was extended to contain also the
 MLX5_ARG_UNSET option.
 
-Cc: stable@dpdk.org
-
 Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
 Acked-by: Yongseok Koh <yskoh@mellanox.com>
 ---

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

* [dpdk-stable] patch 'net/mlx5: fix RSS flow action hash type selection' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (11 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mvpp2: fix array initialization' " Kevin Traynor
                   ` (47 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Shahaf Shuler; +Cc: Yaroslav Brustinov, Yongseok Koh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From faf304b4e6a64deb7ac6cf57cacb35ce4cdf4c83 Mon Sep 17 00:00:00 2001
From: Shahaf Shuler <shahafs@mellanox.com>
Date: Tue, 14 Aug 2018 14:17:21 +0300
Subject: [PATCH] net/mlx5: fix RSS flow action hash type selection

[ upstream commit b8ac090835339d69e23208360a9b43f39c4016eb ]

On the code after the below commits, the criteria to select the IPV4 or
IPV6 hash functions was the existence of some ETH_RSS_IPV4 RSS types on
the flow rule.

The check is wrong. For example ETH_RSS_NONFRAG_IPV4_TCP will not select
the IPV4 hash which will cause the packet to be spread in a bad way.

Fix it by adding the corresponding types needed for each hash selection.

Fixes: 592f05b29a25 ("net/mlx5: add RSS flow action")
Fixes: fd0b70316bca ("net/mlx5: support inner RSS computation")

Reported-by: Yaroslav Brustinov <ybrustin@cisco.com>
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index ca4625b69..3f548a9a4 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -1054,4 +1054,6 @@ mlx5_flow_item_ipv4(const struct rte_flow_item *item, struct rte_flow *flow,
 			(flow, tunnel,
 			 (ETH_RSS_IPV4 | ETH_RSS_FRAG_IPV4 |
+			  ETH_RSS_NONFRAG_IPV4_TCP |
+			  ETH_RSS_NONFRAG_IPV4_UDP |
 			  ETH_RSS_NONFRAG_IPV4_OTHER),
 			 (IBV_RX_HASH_SRC_IPV4 | IBV_RX_HASH_DST_IPV4));
@@ -1189,5 +1191,8 @@ mlx5_flow_item_ipv6(const struct rte_flow_item *item, struct rte_flow *flow,
 		mlx5_flow_verbs_hashfields_adjust
 			(flow, tunnel,
-			 (ETH_RSS_IPV6 | ETH_RSS_NONFRAG_IPV6_OTHER),
+			 (ETH_RSS_IPV6 | ETH_RSS_FRAG_IPV6 |
+			  ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_NONFRAG_IPV6_UDP |
+			  ETH_RSS_NONFRAG_IPV6_OTHER | ETH_RSS_IPV6_EX |
+			  ETH_RSS_IPV6_TCP_EX | ETH_RSS_IPV6_UDP_EX),
 			 (IBV_RX_HASH_SRC_IPV6 | IBV_RX_HASH_DST_IPV6));
 		flow->cur_verbs->attr->priority = MLX5_PRIORITY_MAP_L3;
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.799988070 +0000
+++ 0014-net-mlx5-fix-RSS-flow-action-hash-type-selection.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From b8ac090835339d69e23208360a9b43f39c4016eb Mon Sep 17 00:00:00 2001
+From faf304b4e6a64deb7ac6cf57cacb35ce4cdf4c83 Mon Sep 17 00:00:00 2001
 From: Shahaf Shuler <shahafs@mellanox.com>
 Date: Tue, 14 Aug 2018 14:17:21 +0300
 Subject: [PATCH] net/mlx5: fix RSS flow action hash type selection
 
+[ upstream commit b8ac090835339d69e23208360a9b43f39c4016eb ]
+
 On the code after the below commits, the criteria to select the IPV4 or
 IPV6 hash functions was the existence of some ETH_RSS_IPV4 RSS types on
 the flow rule.
@@ -14,7 +16,6 @@
 
 Fixes: 592f05b29a25 ("net/mlx5: add RSS flow action")
 Fixes: fd0b70316bca ("net/mlx5: support inner RSS computation")
-Cc: stable@dpdk.org
 
 Reported-by: Yaroslav Brustinov <ybrustin@cisco.com>
 Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>

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

* [dpdk-stable] patch 'net/mvpp2: fix array initialization' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (12 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix RSS flow action hash type selection' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mvpp2: fix comments and error messages' " Kevin Traynor
                   ` (46 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Tomasz Duszynski; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 0751c74a1eb92c8e8fbcd38d568c863d2977bc46 Mon Sep 17 00:00:00 2001
From: Tomasz Duszynski <tdu@semihalf.com>
Date: Fri, 24 Aug 2018 20:30:00 +0200
Subject: [PATCH] net/mvpp2: fix array initialization

[ upstream commit fe37bf0f7d43ceab88a3b71ef1b13d509c1b7bb9 ]

Fix used_bpools array initialization by using range initializer.
This way all necessary variables are properly initialized regardless
of PP2_NUM_PKT_PROC value.

Fixes: 0ddc9b815b11 ("net/mrvl: add net PMD skeleton")

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
---
 drivers/net/mvpp2/mrvl_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c
index a2d0576eb..610c3c40d 100644
--- a/drivers/net/mvpp2/mrvl_ethdev.c
+++ b/drivers/net/mvpp2/mrvl_ethdev.c
@@ -87,6 +87,5 @@ static int used_hifs = MRVL_MUSDK_HIFS_RESERVED;
 static struct pp2_hif *hifs[RTE_MAX_LCORE];
 static int used_bpools[PP2_NUM_PKT_PROC] = {
-	MRVL_MUSDK_BPOOLS_RESERVED,
-	MRVL_MUSDK_BPOOLS_RESERVED
+	[0 ... PP2_NUM_PKT_PROC - 1] = MRVL_MUSDK_BPOOLS_RESERVED
 };
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.824029244 +0000
+++ 0015-net-mvpp2-fix-array-initialization.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,14 +1,15 @@
-From fe37bf0f7d43ceab88a3b71ef1b13d509c1b7bb9 Mon Sep 17 00:00:00 2001
+From 0751c74a1eb92c8e8fbcd38d568c863d2977bc46 Mon Sep 17 00:00:00 2001
 From: Tomasz Duszynski <tdu@semihalf.com>
 Date: Fri, 24 Aug 2018 20:30:00 +0200
 Subject: [PATCH] net/mvpp2: fix array initialization
 
+[ upstream commit fe37bf0f7d43ceab88a3b71ef1b13d509c1b7bb9 ]
+
 Fix used_bpools array initialization by using range initializer.
 This way all necessary variables are properly initialized regardless
 of PP2_NUM_PKT_PROC value.
 
 Fixes: 0ddc9b815b11 ("net/mrvl: add net PMD skeleton")
-Cc: stable@dpdk.org
 
 Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
 ---
@@ -16,10 +17,10 @@
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c
-index 8e1a32f41..fdf416b04 100644
+index a2d0576eb..610c3c40d 100644
 --- a/drivers/net/mvpp2/mrvl_ethdev.c
 +++ b/drivers/net/mvpp2/mrvl_ethdev.c
-@@ -85,6 +85,5 @@ static int used_hifs = MRVL_MUSDK_HIFS_RESERVED;
+@@ -87,6 +87,5 @@ static int used_hifs = MRVL_MUSDK_HIFS_RESERVED;
  static struct pp2_hif *hifs[RTE_MAX_LCORE];
  static int used_bpools[PP2_NUM_PKT_PROC] = {
 -	MRVL_MUSDK_BPOOLS_RESERVED,

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

* [dpdk-stable] patch 'net/mvpp2: fix comments and error messages' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (13 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mvpp2: fix array initialization' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix MAC changes when live change not supported' " Kevin Traynor
                   ` (45 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Natalie Samsonov; +Cc: Liron Himi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 2f6a186d75f7d038728a9c311eb8cd40561d10ea Mon Sep 17 00:00:00 2001
From: Natalie Samsonov <nsamsono@marvell.com>
Date: Fri, 24 Aug 2018 20:30:01 +0200
Subject: [PATCH] net/mvpp2: fix comments and error messages

[ upstream commit 63e0f0170405385551d52d983ddb8c5227178f51 ]

Fix comments and error messages.

Fixes: 7235341d7517 ("net/mrvl: support classifier")

Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Reviewed-by: Liron Himi <lironh@marvell.com>
---
 drivers/net/mvpp2/mrvl_flow.c | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/drivers/net/mvpp2/mrvl_flow.c b/drivers/net/mvpp2/mrvl_flow.c
index ecc34192a..13295e653 100644
--- a/drivers/net/mvpp2/mrvl_flow.c
+++ b/drivers/net/mvpp2/mrvl_flow.c
@@ -395,5 +395,6 @@ mrvl_parse_init(const struct rte_flow_item *item,
  * @param spec Pointer to the specific flow item.
  * @param mask Pointer to the specific flow item's mask.
- * @param mask Pointer to the flow.
+ * @param parse_dst Parse either destination or source mac address.
+ * @param flow Pointer to the flow.
  * @return 0 in case of success, negative error value otherwise.
  */
@@ -614,4 +615,5 @@ mrvl_parse_ip4_dscp(const struct rte_flow_item_ipv4 *spec,
  * @param spec Pointer to the specific flow item.
  * @param mask Pointer to the specific flow item's mask.
+ * @param parse_dst Parse either destination or source ip address.
  * @param flow Pointer to the flow.
  * @return 0 in case of success, negative error value otherwise.
@@ -727,4 +729,5 @@ mrvl_parse_ip4_proto(const struct rte_flow_item_ipv4 *spec,
  * @param spec Pointer to the specific flow item.
  * @param mask Pointer to the specific flow item's mask.
+ * @param parse_dst Parse either destination or source ipv6 address.
  * @param flow Pointer to the flow.
  * @return 0 in case of success, negative error value otherwise.
@@ -875,4 +878,5 @@ mrvl_parse_ip6_next_hdr(const struct rte_flow_item_ipv6 *spec,
  * @param spec Pointer to the specific flow item.
  * @param mask Pointer to the specific flow item's mask.
+ * @param parse_dst Parse either destination or source port.
  * @param flow Pointer to the flow.
  * @return 0 in case of success, negative error value otherwise.
@@ -950,4 +954,5 @@ mrvl_parse_tcp_dport(const struct rte_flow_item_tcp *spec,
  * @param spec Pointer to the specific flow item.
  * @param mask Pointer to the specific flow item's mask.
+ * @param parse_dst Parse either destination or source port.
  * @param flow Pointer to the flow.
  * @return 0 in case of success, negative error value otherwise.
@@ -1023,5 +1028,4 @@ mrvl_parse_udp_dport(const struct rte_flow_item_udp *spec,
  * @param flow Pointer to the flow.
  * @param error Pointer to the flow error.
- * @param fields Pointer to the parsed parsed fields enum.
  * @returns 0 on success, negative value otherwise.
  */
@@ -1074,5 +1078,4 @@ out:
  * @param flow Pointer to the flow.
  * @param error Pointer to the flow error.
- * @param fields Pointer to the parsed parsed fields enum.
  * @returns 0 on success, negative value otherwise.
  */
@@ -1140,5 +1143,4 @@ out:
  * @param flow Pointer to the flow.
  * @param error Pointer to the flow error.
- * @param fields Pointer to the parsed parsed fields enum.
  * @returns 0 on success, negative value otherwise.
  */
@@ -1206,5 +1208,4 @@ out:
  * @param flow Pointer to the flow.
  * @param error Pointer to the flow error.
- * @param fields Pointer to the parsed parsed fields enum.
  * @returns 0 on success, negative value otherwise.
  */
@@ -1277,5 +1278,4 @@ out:
  * @param flow Pointer to the flow.
  * @param error Pointer to the flow error.
- * @param fields Pointer to the parsed parsed fields enum.
  * @returns 0 on success, negative value otherwise.
  */
@@ -1333,5 +1333,4 @@ out:
  * @param flow Pointer to the flow.
  * @param error Pointer to the flow error.
- * @param fields Pointer to the parsed parsed fields enum.
  * @returns 0 on success, negative value otherwise.
  */
@@ -1982,4 +1981,5 @@ mrvl_parse_pattern_ip6_tcp(const struct rte_flow_item pattern[],
  * @param flow Pointer to the flow.
  * @param error Pointer to the flow error.
+ * @param ip6 1 to parse ip6 item, 0 to parse ip4 item.
  * @returns 0 in case of success, negative value otherwise.
  */
@@ -2351,4 +2351,10 @@ mrvl_flow_parse(struct mrvl_priv *priv, const struct rte_flow_attr *attr,
 }
 
+/**
+ * Get engine type for the given flow.
+ *
+ * @param field Pointer to the flow.
+ * @returns The type of the engine.
+ */
 static inline enum pp2_cls_tbl_type
 mrvl_engine_type(const struct rte_flow *flow)
@@ -2370,4 +2376,11 @@ mrvl_engine_type(const struct rte_flow *flow)
 }
 
+/**
+ * Create classifier table.
+ *
+ * @param dev Pointer to the device.
+ * @param flow Pointer to the very first flow.
+ * @returns 0 in case of success, negative value otherwise.
+ */
 static int
 mrvl_create_cls_table(struct rte_eth_dev *dev, struct rte_flow *first_flow)
@@ -2656,5 +2669,5 @@ mrvl_flow_remove(struct mrvl_priv *priv, struct rte_flow *flow,
  * DPDK flow destroy callback called when flow is to be removed.
  *
- * @param priv Pointer to the port's private data.
+ * @param dev Pointer to the device.
  * @param flow Pointer to the flow.
  * @param error Pointer to the flow error.
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.847373770 +0000
+++ 0016-net-mvpp2-fix-comments-and-error-messages.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,12 +1,13 @@
-From 63e0f0170405385551d52d983ddb8c5227178f51 Mon Sep 17 00:00:00 2001
+From 2f6a186d75f7d038728a9c311eb8cd40561d10ea Mon Sep 17 00:00:00 2001
 From: Natalie Samsonov <nsamsono@marvell.com>
 Date: Fri, 24 Aug 2018 20:30:01 +0200
 Subject: [PATCH] net/mvpp2: fix comments and error messages
 
+[ upstream commit 63e0f0170405385551d52d983ddb8c5227178f51 ]
+
 Fix comments and error messages.
 
 Fixes: 7235341d7517 ("net/mrvl: support classifier")
-Cc: stable@dpdk.org
 
 Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
 Reviewed-by: Liron Himi <lironh@marvell.com>

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

* [dpdk-stable] patch 'ethdev: fix MAC changes when live change not supported' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (14 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mvpp2: fix comments and error messages' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/nfp: fix live MAC changes " Kevin Traynor
                   ` (44 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Alejandro Lucero; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 4ca56b114fb6516355cffde286c157353b45c5cf Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Fri, 24 Aug 2018 15:25:35 +0100
Subject: [PATCH] ethdev: fix MAC changes when live change not supported

[ upstream commit 1e5e3d2e72c6bfdb3553be26015b7ee5bbf745c1 ]

Current code assumes a MAC change can occur when the port has been
started. In fact, there are some NICs which require this port state
for being successful, but other NICs not always support MAC change
in that case.

This patch supports a new device flag for a device advertising this
limitation, and if the flag is set, the MAC is changed before the
port starts.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 lib/librte_ethdev/rte_ethdev.c | 28 +++++++++++++++++++---------
 lib/librte_ethdev/rte_ethdev.h |  6 ++++++
 2 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 4c3202505..ee6bb0552 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -1220,8 +1220,7 @@ _rte_eth_dev_reset(struct rte_eth_dev *dev)
 
 static void
-rte_eth_dev_config_restore(uint16_t port_id)
+rte_eth_dev_mac_restore(struct rte_eth_dev *dev,
+			struct rte_eth_dev_info *dev_info)
 {
-	struct rte_eth_dev *dev;
-	struct rte_eth_dev_info dev_info;
 	struct ether_addr *addr;
 	uint16_t i;
@@ -1229,8 +1228,4 @@ rte_eth_dev_config_restore(uint16_t port_id)
 	uint64_t pool_mask;
 
-	dev = &rte_eth_devices[port_id];
-
-	rte_eth_dev_info_get(port_id, &dev_info);
-
 	/* replay MAC address configuration including default MAC */
 	addr = &dev->data->mac_addrs[0];
@@ -1241,5 +1236,5 @@ rte_eth_dev_config_restore(uint16_t port_id)
 
 	if (*dev->dev_ops->mac_addr_add != NULL) {
-		for (i = 1; i < dev_info.max_mac_addrs; i++) {
+		for (i = 1; i < dev_info->max_mac_addrs; i++) {
 			addr = &dev->data->mac_addrs[i];
 
@@ -1260,4 +1255,12 @@ rte_eth_dev_config_restore(uint16_t port_id)
 		}
 	}
+}
+
+static void
+rte_eth_dev_config_restore(struct rte_eth_dev *dev,
+			   struct rte_eth_dev_info *dev_info, uint16_t port_id)
+{
+	if (!(*dev_info->dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR))
+		rte_eth_dev_mac_restore(dev, dev_info);
 
 	/* replay promiscuous configuration */
@@ -1278,4 +1281,5 @@ rte_eth_dev_start(uint16_t port_id)
 {
 	struct rte_eth_dev *dev;
+	struct rte_eth_dev_info dev_info;
 	int diag;
 
@@ -1293,4 +1297,10 @@ rte_eth_dev_start(uint16_t port_id)
 	}
 
+	rte_eth_dev_info_get(port_id, &dev_info);
+
+	/* Lets restore MAC now if device does not support live change */
+	if (*dev_info.dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR)
+		rte_eth_dev_mac_restore(dev, &dev_info);
+
 	diag = (*dev->dev_ops->dev_start)(dev);
 	if (diag == 0)
@@ -1299,5 +1309,5 @@ rte_eth_dev_start(uint16_t port_id)
 		return eth_err(port_id, diag);
 
-	rte_eth_dev_config_restore(port_id);
+	rte_eth_dev_config_restore(dev, &dev_info, port_id);
 
 	if (dev->data->dev_conf.intr_conf.lsc == 0) {
diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 7070e9ab4..fa2812bca 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -1269,4 +1269,6 @@ struct rte_eth_dev_owner {
 /** Device is port representor */
 #define RTE_ETH_DEV_REPRESENTOR  0x0010
+/** Device does not support MAC change after started */
+#define RTE_ETH_DEV_NOLIVE_MAC_ADDR  0x0020
 
 /**
@@ -1751,4 +1753,8 @@ int rte_eth_dev_tx_queue_stop(uint16_t port_id, uint16_t tx_queue_id);
  * offload features and in starting the transmit and the receive units of the
  * device.
+ *
+ * Device RTE_ETH_DEV_NOLIVE_MAC_ADDR flag causes MAC address to be set before
+ * PMD port start callback function is invoked.
+ *
  * On success, all basic functions exported by the Ethernet API (link status,
  * receive/transmit, and so on) can be invoked.
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.870997566 +0000
+++ 0017-ethdev-fix-MAC-changes-when-live-change-not-supporte.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 1e5e3d2e72c6bfdb3553be26015b7ee5bbf745c1 Mon Sep 17 00:00:00 2001
+From 4ca56b114fb6516355cffde286c157353b45c5cf Mon Sep 17 00:00:00 2001
 From: Alejandro Lucero <alejandro.lucero@netronome.com>
 Date: Fri, 24 Aug 2018 15:25:35 +0100
 Subject: [PATCH] ethdev: fix MAC changes when live change not supported
 
+[ upstream commit 1e5e3d2e72c6bfdb3553be26015b7ee5bbf745c1 ]
+
 Current code assumes a MAC change can occur when the port has been
 started. In fact, there are some NICs which require this port state
 for being successful, but other NICs not always support MAC change
@@ -13,33 +15,16 @@
 port starts.
 
 Fixes: af75078fece3 ("first public release")
-Cc: stable@dpdk.org
 
 Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
 Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
 ---
- doc/guides/rel_notes/release_18_11.rst |  6 ++++++
- lib/librte_ethdev/rte_ethdev.c         | 28 +++++++++++++++++---------
- lib/librte_ethdev/rte_ethdev.h         |  6 ++++++
- 3 files changed, 31 insertions(+), 9 deletions(-)
-
-diff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst
-index 3ae6b3f58..24204e67b 100644
---- a/doc/guides/rel_notes/release_18_11.rst
-+++ b/doc/guides/rel_notes/release_18_11.rst
-@@ -69,4 +69,10 @@ API Changes
-    =========================================================
- 
-+* A new device flag, RTE_ETH_DEV_NOLIVE_MAC_ADDR, changes the order of
-+  actions inside rte_eth_dev_start regarding MAC set. Some NICs do not
-+  support MAC changes once the port has started and with this new device
-+  flag the MAC can be properly configured in any case. This is particularly
-+  important for bonding.
-+
- 
- ABI Changes
+ lib/librte_ethdev/rte_ethdev.c | 28 +++++++++++++++++++---------
+ lib/librte_ethdev/rte_ethdev.h |  6 ++++++
+ 2 files changed, 25 insertions(+), 9 deletions(-)
+
 diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
-index f32722f36..16825bf3c 100644
+index 4c3202505..ee6bb0552 100644
 --- a/lib/librte_ethdev/rte_ethdev.c
 +++ b/lib/librte_ethdev/rte_ethdev.c
 @@ -1220,8 +1220,7 @@ _rte_eth_dev_reset(struct rte_eth_dev *dev)

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

* [dpdk-stable] patch 'net/nfp: fix live MAC changes not supported' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (15 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix MAC changes when live change not supported' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix port ownership logs' " Kevin Traynor
                   ` (43 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Alejandro Lucero; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 41173dafb949dd68e4bb590fd63a1612dac55242 Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Fri, 24 Aug 2018 15:25:36 +0100
Subject: [PATCH] net/nfp: fix live MAC changes not supported

[ upstream commit 7712a1c660661005225c3f7ccbca09a6296e2751 ]

Some NFP firmwares support live changes to the MAC address, but
this is not always true and the firmware advertises it accordingly.

This patch checks if firmware does not support live changes and
sets RTE_ETH_DEV_NOLIVE_MAC_ADDR in that case.

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
 drivers/net/nfp/nfp_net.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index 6e5e305f1..ee743e975 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -2887,4 +2887,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
 			&eth_dev->data->mac_addrs[0]);
 
+	if (!(hw->cap & NFP_NET_CFG_CTRL_LIVE_ADDR))
+		eth_dev->data->dev_flags |= RTE_ETH_DEV_NOLIVE_MAC_ADDR;
+
 	PMD_INIT_LOG(INFO, "port %d VendorID=0x%x DeviceID=0x%x "
 		     "mac=%02x:%02x:%02x:%02x:%02x:%02x",
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.902358310 +0000
+++ 0018-net-nfp-fix-live-MAC-changes-not-supported.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,16 +1,16 @@
-From 7712a1c660661005225c3f7ccbca09a6296e2751 Mon Sep 17 00:00:00 2001
+From 41173dafb949dd68e4bb590fd63a1612dac55242 Mon Sep 17 00:00:00 2001
 From: Alejandro Lucero <alejandro.lucero@netronome.com>
 Date: Fri, 24 Aug 2018 15:25:36 +0100
 Subject: [PATCH] net/nfp: fix live MAC changes not supported
 
+[ upstream commit 7712a1c660661005225c3f7ccbca09a6296e2751 ]
+
 Some NFP firmwares support live changes to the MAC address, but
 this is not always true and the firmware advertises it accordingly.
 
 This patch checks if firmware does not support live changes and
 sets RTE_ETH_DEV_NOLIVE_MAC_ADDR in that case.
 
-Cc: stable@dpdk.org
-
 Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
 ---
  drivers/net/nfp/nfp_net.c | 3 +++

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

* [dpdk-stable] patch 'ethdev: fix port ownership logs' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (16 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/nfp: fix live MAC changes " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: fix buffer corruption in packets' " Kevin Traynor
                   ` (42 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 255637fd67dc81bdbe6f3047d24b5efb48f6ef4f Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 16 Aug 2018 15:37:14 -0700
Subject: [PATCH] ethdev: fix port ownership logs

[ upstream commit 40d96ffbd1f61533a19f2df5673f378d166ff11a ]

The rte_eth_dev_owner_unset function always generates a log
message because the unset value for owner id is 0.

Also, when rte_eth_dev_owner_delete is called with a valid
owner id, the log message should be at NOTICE not ERROR
severity.

Fixes: 5b7ba31148a8 ("ethdev: add port ownership")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Matan Azrad <matan@mellanox.com>
---
 lib/librte_ethdev/rte_ethdev.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index ee6bb0552..850d0c1b5 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -394,9 +394,6 @@ rte_eth_is_valid_owner_id(uint64_t owner_id)
 {
 	if (owner_id == RTE_ETH_DEV_NO_OWNER ||
-	    rte_eth_dev_shared_data->next_owner_id <= owner_id) {
-		RTE_ETHDEV_LOG(ERR, "Invalid owner_id=%016"PRIx64"\n",
-			owner_id);
+	    rte_eth_dev_shared_data->next_owner_id <= owner_id)
 		return 0;
-	}
 	return 1;
 }
@@ -445,6 +442,10 @@ _rte_eth_dev_owner_set(const uint16_t port_id, const uint64_t old_owner_id,
 
 	if (!rte_eth_is_valid_owner_id(new_owner->id) &&
-	    !rte_eth_is_valid_owner_id(old_owner_id))
+	    !rte_eth_is_valid_owner_id(old_owner_id)) {
+		RTE_ETHDEV_LOG(ERR,
+			"Invalid owner old_id=%016"PRIx64" new_id=%016"PRIx64"\n",
+		       old_owner_id, new_owner->id);
 		return -EINVAL;
+	}
 
 	port_owner = &rte_eth_devices[port_id].data->owner;
@@ -517,7 +518,11 @@ rte_eth_dev_owner_delete(const uint64_t owner_id)
 				memset(&rte_eth_devices[port_id].data->owner, 0,
 				       sizeof(struct rte_eth_dev_owner));
-		RTE_ETHDEV_LOG(ERR,
+		RTE_ETHDEV_LOG(NOTICE,
 			"All port owners owned by %016"PRIx64" identifier have removed\n",
 			owner_id);
+	} else {
+		RTE_ETHDEV_LOG(ERR,
+			       "Invalid owner id=%016"PRIx64"\n",
+			       owner_id);
 	}
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.926145657 +0000
+++ 0019-ethdev-fix-port-ownership-logs.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 40d96ffbd1f61533a19f2df5673f378d166ff11a Mon Sep 17 00:00:00 2001
+From 255637fd67dc81bdbe6f3047d24b5efb48f6ef4f Mon Sep 17 00:00:00 2001
 From: Stephen Hemminger <stephen@networkplumber.org>
 Date: Thu, 16 Aug 2018 15:37:14 -0700
 Subject: [PATCH] ethdev: fix port ownership logs
 
+[ upstream commit 40d96ffbd1f61533a19f2df5673f378d166ff11a ]
+
 The rte_eth_dev_owner_unset function always generates a log
 message because the unset value for owner id is 0.
 
@@ -11,7 +13,6 @@
 severity.
 
 Fixes: 5b7ba31148a8 ("ethdev: add port ownership")
-Cc: stable@dpdk.org
 
 Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
 Acked-by: Matan Azrad <matan@mellanox.com>
@@ -20,7 +21,7 @@
  1 file changed, 11 insertions(+), 6 deletions(-)
 
 diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
-index 16825bf3c..3f8de9341 100644
+index ee6bb0552..850d0c1b5 100644
 --- a/lib/librte_ethdev/rte_ethdev.c
 +++ b/lib/librte_ethdev/rte_ethdev.c
 @@ -394,9 +394,6 @@ rte_eth_is_valid_owner_id(uint64_t owner_id)

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

* [dpdk-stable] patch 'net/bonding: fix buffer corruption in packets' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (17 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix port ownership logs' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/e1000: fix Tx offload capability typos' " Kevin Traynor
                   ` (41 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Jia Yu; +Cc: Chas Williams, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 6e4c82467cdef208fb4c0404e920e7f090d4bb30 Mon Sep 17 00:00:00 2001
From: Jia Yu <jyu@vmware.com>
Date: Sun, 19 Aug 2018 22:18:45 -0700
Subject: [PATCH] net/bonding: fix buffer corruption in packets

[ upstream commit 6b2a47de074a0a6abc9a7c8d1aaa2a66898b7b48 ]

When bond slave devices cannot transmit all packets in bufs array,
tx_burst callback shall merge the un-transmitted packets back to
bufs array. Recent merge logic introduced a bug which causes
invalid mbuf addresses being written to bufs array.
When caller frees the un-transmitted packets, due to invalid addresses,
application will crash.

The fix is avoid shifting mbufs, and directly write un-transmitted
packets back to bufs array.

Fixes: 09150784a776 ("net/bonding: burst mode hash calculation")

Signed-off-by: Jia Yu <jyu@vmware.com>
Acked-by: Chas Williams <chas3@att.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 116 +++++--------------------
 1 file changed, 23 insertions(+), 93 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 441742258..b84f32263 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -302,8 +302,8 @@ bond_ethdev_tx_burst_8023ad_fast_queue(void *queue, struct rte_mbuf **bufs,
 	uint16_t bufs_slave_port_idxs[RTE_MAX_ETHPORTS] = { 0 };
 
-	uint16_t slave_tx_count, slave_tx_fail_count[RTE_MAX_ETHPORTS] = { 0 };
+	uint16_t slave_tx_count;
 	uint16_t total_tx_count = 0, total_tx_fail_count = 0;
 
-	uint16_t i, j;
+	uint16_t i;
 
 	if (unlikely(nb_bufs == 0))
@@ -360,32 +360,10 @@ bond_ethdev_tx_burst_8023ad_fast_queue(void *queue, struct rte_mbuf **bufs,
 		/* If tx burst fails move packets to end of bufs */
 		if (unlikely(slave_tx_count < slave_nb_bufs[i])) {
-			slave_tx_fail_count[i] = slave_nb_bufs[i] -
+			int slave_tx_fail_count = slave_nb_bufs[i] -
 					slave_tx_count;
-			total_tx_fail_count += slave_tx_fail_count[i];
-
-			/*
-			 * Shift bufs to beginning of array to allow reordering
-			 * later
-			 */
-			for (j = 0; j < slave_tx_fail_count[i]; j++) {
-				slave_bufs[i][j] =
-					slave_bufs[i][(slave_tx_count - 1) + j];
-			}
-		}
-	}
-
-	/*
-	 * If there are tx burst failures we move packets to end of bufs to
-	 * preserve expected PMD behaviour of all failed transmitted being
-	 * at the end of the input mbuf array
-	 */
-	if (unlikely(total_tx_fail_count > 0)) {
-		int bufs_idx = nb_bufs - total_tx_fail_count - 1;
-
-		for (i = 0; i < slave_count; i++) {
-			if (slave_tx_fail_count[i] > 0) {
-				for (j = 0; j < slave_tx_fail_count[i]; j++)
-					bufs[bufs_idx++] = slave_bufs[i][j];
-			}
+			total_tx_fail_count += slave_tx_fail_count;
+			memcpy(&bufs[nb_bufs - total_tx_fail_count],
+			       &slave_bufs[i][slave_tx_count],
+			       slave_tx_fail_count * sizeof(bufs[0]));
 		}
 	}
@@ -717,6 +695,6 @@ bond_ethdev_tx_burst_round_robin(void *queue, struct rte_mbuf **bufs,
 
 				memcpy(&bufs[nb_pkts - tx_fail_total],
-						&slave_bufs[i][num_tx_slave],
-						tx_fail_slave * sizeof(bufs[0]));
+				       &slave_bufs[i][num_tx_slave],
+				       tx_fail_slave * sizeof(bufs[0]));
 			}
 			num_tx_total += num_tx_slave;
@@ -1223,8 +1201,8 @@ bond_ethdev_tx_burst_balance(void *queue, struct rte_mbuf **bufs,
 	uint16_t bufs_slave_port_idxs[nb_bufs];
 
-	uint16_t slave_tx_count, slave_tx_fail_count[RTE_MAX_ETHPORTS] = { 0 };
+	uint16_t slave_tx_count;
 	uint16_t total_tx_count = 0, total_tx_fail_count = 0;
 
-	uint16_t i, j;
+	uint16_t i;
 
 	if (unlikely(nb_bufs == 0))
@@ -1267,32 +1245,10 @@ bond_ethdev_tx_burst_balance(void *queue, struct rte_mbuf **bufs,
 		/* If tx burst fails move packets to end of bufs */
 		if (unlikely(slave_tx_count < slave_nb_bufs[i])) {
-			slave_tx_fail_count[i] = slave_nb_bufs[i] -
+			int slave_tx_fail_count = slave_nb_bufs[i] -
 					slave_tx_count;
-			total_tx_fail_count += slave_tx_fail_count[i];
-
-			/*
-			 * Shift bufs to beginning of array to allow reordering
-			 * later
-			 */
-			for (j = 0; j < slave_tx_fail_count[i]; j++) {
-				slave_bufs[i][j] =
-					slave_bufs[i][(slave_tx_count - 1) + j];
-			}
-		}
-	}
-
-	/*
-	 * If there are tx burst failures we move packets to end of bufs to
-	 * preserve expected PMD behaviour of all failed transmitted being
-	 * at the end of the input mbuf array
-	 */
-	if (unlikely(total_tx_fail_count > 0)) {
-		int bufs_idx = nb_bufs - total_tx_fail_count - 1;
-
-		for (i = 0; i < slave_count; i++) {
-			if (slave_tx_fail_count[i] > 0) {
-				for (j = 0; j < slave_tx_fail_count[i]; j++)
-					bufs[bufs_idx++] = slave_bufs[i][j];
-			}
+			total_tx_fail_count += slave_tx_fail_count;
+			memcpy(&bufs[nb_bufs - total_tx_fail_count],
+			       &slave_bufs[i][slave_tx_count],
+			       slave_tx_fail_count * sizeof(bufs[0]));
 		}
 	}
@@ -1321,8 +1277,8 @@ bond_ethdev_tx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
 	uint16_t bufs_slave_port_idxs[RTE_MAX_ETHPORTS] = { 0 };
 
-	uint16_t slave_tx_count, slave_tx_fail_count[RTE_MAX_ETHPORTS] = { 0 };
+	uint16_t slave_tx_count;
 	uint16_t total_tx_count = 0, total_tx_fail_count = 0;
 
-	uint16_t i, j;
+	uint16_t i;
 
 	if (unlikely(nb_bufs == 0))
@@ -1382,37 +1338,11 @@ bond_ethdev_tx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
 			/* If tx burst fails move packets to end of bufs */
 			if (unlikely(slave_tx_count < slave_nb_bufs[i])) {
-				slave_tx_fail_count[i] = slave_nb_bufs[i] -
+				int slave_tx_fail_count = slave_nb_bufs[i] -
 						slave_tx_count;
-				total_tx_fail_count += slave_tx_fail_count[i];
+				total_tx_fail_count += slave_tx_fail_count;
 
-				/*
-				 * Shift bufs to beginning of array to allow
-				 * reordering later
-				 */
-				for (j = 0; j < slave_tx_fail_count[i]; j++)
-					slave_bufs[i][j] =
-						slave_bufs[i]
-							[(slave_tx_count - 1)
-							+ j];
-			}
-		}
-
-		/*
-		 * If there are tx burst failures we move packets to end of
-		 * bufs to preserve expected PMD behaviour of all failed
-		 * transmitted being at the end of the input mbuf array
-		 */
-		if (unlikely(total_tx_fail_count > 0)) {
-			int bufs_idx = nb_bufs - total_tx_fail_count - 1;
-
-			for (i = 0; i < slave_count; i++) {
-				if (slave_tx_fail_count[i] > 0) {
-					for (j = 0;
-						j < slave_tx_fail_count[i];
-						j++) {
-						bufs[bufs_idx++] =
-							slave_bufs[i][j];
-					}
-				}
+				memcpy(&bufs[nb_bufs - total_tx_fail_count],
+				       &slave_bufs[i][slave_tx_count],
+				       slave_tx_fail_count * sizeof(bufs[0]));
 			}
 		}
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.950719862 +0000
+++ 0020-net-bonding-fix-buffer-corruption-in-packets.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 6b2a47de074a0a6abc9a7c8d1aaa2a66898b7b48 Mon Sep 17 00:00:00 2001
+From 6e4c82467cdef208fb4c0404e920e7f090d4bb30 Mon Sep 17 00:00:00 2001
 From: Jia Yu <jyu@vmware.com>
 Date: Sun, 19 Aug 2018 22:18:45 -0700
 Subject: [PATCH] net/bonding: fix buffer corruption in packets
 
+[ upstream commit 6b2a47de074a0a6abc9a7c8d1aaa2a66898b7b48 ]
+
 When bond slave devices cannot transmit all packets in bufs array,
 tx_burst callback shall merge the un-transmitted packets back to
 bufs array. Recent merge logic introduced a bug which causes
@@ -14,7 +16,6 @@
 packets back to bufs array.
 
 Fixes: 09150784a776 ("net/bonding: burst mode hash calculation")
-Cc: stable@dpdk.org
 
 Signed-off-by: Jia Yu <jyu@vmware.com>
 Acked-by: Chas Williams <chas3@att.com>

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

* [dpdk-stable] patch 'net/e1000: fix Tx offload capability typos' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (18 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: fix buffer corruption in packets' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/cxgbe: fix memory access when parsing flow match items' " Kevin Traynor
                   ` (40 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Yaroslav Brustinov; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 02f25b4214d362f19b265066c71c2b1d2204f834 Mon Sep 17 00:00:00 2001
From: Yaroslav Brustinov <ybrustin@cisco.com>
Date: Wed, 8 Aug 2018 12:45:21 +0300
Subject: [PATCH] net/e1000: fix Tx offload capability typos

[ upstream commit daa3b0833f086c520696433e056b3c97a570370a ]

Fix rx/tx typos in igb_get_tx_port_offloads_capa and
igb_get_tx_queue_offloads_capa.

Fixes: e5c05e6590ea ("net/e1000: convert to new Tx offloads API")

Signed-off-by: Yaroslav Brustinov <ybrustin@cisco.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/e1000/igb_rxtx.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index b955068a8..8aefd976a 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -1453,8 +1453,8 @@ uint64_t
 igb_get_tx_port_offloads_capa(struct rte_eth_dev *dev)
 {
-	uint64_t rx_offload_capa;
+	uint64_t tx_offload_capa;
 
 	RTE_SET_USED(dev);
-	rx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT |
+	tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT |
 			  DEV_TX_OFFLOAD_IPV4_CKSUM  |
 			  DEV_TX_OFFLOAD_UDP_CKSUM   |
@@ -1464,5 +1464,5 @@ igb_get_tx_port_offloads_capa(struct rte_eth_dev *dev)
 			  DEV_TX_OFFLOAD_MULTI_SEGS;
 
-	return rx_offload_capa;
+	return tx_offload_capa;
 }
 
@@ -1470,9 +1470,9 @@ uint64_t
 igb_get_tx_queue_offloads_capa(struct rte_eth_dev *dev)
 {
-	uint64_t rx_queue_offload_capa;
+	uint64_t tx_queue_offload_capa;
 
-	rx_queue_offload_capa = igb_get_tx_port_offloads_capa(dev);
+	tx_queue_offload_capa = igb_get_tx_port_offloads_capa(dev);
 
-	return rx_queue_offload_capa;
+	return tx_queue_offload_capa;
 }
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.974567986 +0000
+++ 0021-net-e1000-fix-Tx-offload-capability-typos.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From daa3b0833f086c520696433e056b3c97a570370a Mon Sep 17 00:00:00 2001
+From 02f25b4214d362f19b265066c71c2b1d2204f834 Mon Sep 17 00:00:00 2001
 From: Yaroslav Brustinov <ybrustin@cisco.com>
 Date: Wed, 8 Aug 2018 12:45:21 +0300
 Subject: [PATCH] net/e1000: fix Tx offload capability typos
 
+[ upstream commit daa3b0833f086c520696433e056b3c97a570370a ]
+
 Fix rx/tx typos in igb_get_tx_port_offloads_capa and
 igb_get_tx_queue_offloads_capa.
 
 Fixes: e5c05e6590ea ("net/e1000: convert to new Tx offloads API")
-Cc: stable@dpdk.org
 
 Signed-off-by: Yaroslav Brustinov <ybrustin@cisco.com>
 Acked-by: Qi Zhang <qi.z.zhang@intel.com>

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

* [dpdk-stable] patch 'net/cxgbe: fix memory access when parsing flow match items' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (19 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/e1000: fix Tx offload capability typos' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/ixgbe: do not return internal code' " Kevin Traynor
                   ` (39 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Shagun Agrawal; +Cc: Rahul Lakkireddy, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From bee23facb8194fdbbfd08884cc1b0227a69a7ada Mon Sep 17 00:00:00 2001
From: Shagun Agrawal <shaguna@chelsio.com>
Date: Mon, 27 Aug 2018 18:23:31 +0530
Subject: [PATCH] net/cxgbe: fix memory access when parsing flow match items

[ upstream commit 450f99ce7b34cb27f6727cea478292428b328a70 ]

Coverity issue: 293096
Fixes: ee61f5113b17 ("net/cxgbe: parse and validate flows")

Signed-off-by: Shagun Agrawal <shaguna@chelsio.com>
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
---
 drivers/net/cxgbe/cxgbe_flow.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/cxgbe/cxgbe_flow.c b/drivers/net/cxgbe/cxgbe_flow.c
index 01c945f1b..038d479d6 100644
--- a/drivers/net/cxgbe/cxgbe_flow.c
+++ b/drivers/net/cxgbe/cxgbe_flow.c
@@ -455,8 +455,8 @@ cxgbe_rtef_parse_items(struct rte_flow *flow,
 
 	for (i = items; i->type != RTE_FLOW_ITEM_TYPE_END; i++) {
-		struct chrte_fparse *idx = &flow->item_parser[i->type];
+		struct chrte_fparse *idx;
 		int ret;
 
-		if (i->type > ARRAY_SIZE(parseitem))
+		if (i->type >= ARRAY_SIZE(parseitem))
 			return rte_flow_error_set(e, ENOTSUP,
 						  RTE_FLOW_ERROR_TYPE_ITEM,
@@ -479,4 +479,5 @@ cxgbe_rtef_parse_items(struct rte_flow *flow,
 				return ret;
 
+			idx = &flow->item_parser[i->type];
 			if (!idx || !idx->fptr) {
 				return rte_flow_error_set(e, ENOTSUP,
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:07.999631124 +0000
+++ 0022-net-cxgbe-fix-memory-access-when-parsing-flow-match-.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,11 +1,12 @@
-From 450f99ce7b34cb27f6727cea478292428b328a70 Mon Sep 17 00:00:00 2001
+From bee23facb8194fdbbfd08884cc1b0227a69a7ada Mon Sep 17 00:00:00 2001
 From: Shagun Agrawal <shaguna@chelsio.com>
 Date: Mon, 27 Aug 2018 18:23:31 +0530
 Subject: [PATCH] net/cxgbe: fix memory access when parsing flow match items
 
+[ upstream commit 450f99ce7b34cb27f6727cea478292428b328a70 ]
+
 Coverity issue: 293096
 Fixes: ee61f5113b17 ("net/cxgbe: parse and validate flows")
-Cc: stable@dpdk.org
 
 Signed-off-by: Shagun Agrawal <shaguna@chelsio.com>
 Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>

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

* [dpdk-stable] patch 'net/ixgbe: do not return internal code' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (20 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/cxgbe: fix memory access when parsing flow match items' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix interrupt completion queue index wrapping' " Kevin Traynor
                   ` (38 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Luca Boccassi; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 9972726126c75a95009675f3cff505c3c0e010a3 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Mon, 3 Sep 2018 15:18:11 +0100
Subject: [PATCH] net/ixgbe: do not return internal code

[ upstream commit 8fd55a07941a3297208b7820fc8e544431fc5150 ]

In case of a temporary failure the ixgbe driver can return the internal
error IXGBE_ERR_RESET_FAILED to the application. Instead, return
-EAGAIN as per the public API specification.

Fixes: cddaf87a1ecb ("lib: fix unused values")

Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 26b192737..eab9e2e7e 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1620,5 +1620,10 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 	if ((diag != IXGBE_SUCCESS) && (diag != IXGBE_ERR_INVALID_MAC_ADDR)) {
 		PMD_INIT_LOG(ERR, "VF Initialization Failure: %d", diag);
-		return diag;
+		/*
+		 * This error code will be propagated to the app by
+		 * rte_eth_dev_reset, so use a public error code rather than
+		 * the internal-only IXGBE_ERR_RESET_FAILED
+		 */
+		return -EAGAIN;
 	}
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.021733559 +0000
+++ 0023-net-ixgbe-do-not-return-internal-code.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,14 +1,15 @@
-From 8fd55a07941a3297208b7820fc8e544431fc5150 Mon Sep 17 00:00:00 2001
+From 9972726126c75a95009675f3cff505c3c0e010a3 Mon Sep 17 00:00:00 2001
 From: Luca Boccassi <bluca@debian.org>
 Date: Mon, 3 Sep 2018 15:18:11 +0100
 Subject: [PATCH] net/ixgbe: do not return internal code
 
+[ upstream commit 8fd55a07941a3297208b7820fc8e544431fc5150 ]
+
 In case of a temporary failure the ixgbe driver can return the internal
 error IXGBE_ERR_RESET_FAILED to the application. Instead, return
 -EAGAIN as per the public API specification.
 
 Fixes: cddaf87a1ecb ("lib: fix unused values")
-Cc: stable@dpdk.org
 
 Signed-off-by: Luca Boccassi <bluca@debian.org>
 Acked-by: Qi Zhang <qi.z.zhang@intel.com>

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

* [dpdk-stable] patch 'net/mlx5: fix interrupt completion queue index wrapping' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (21 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/ixgbe: do not return internal code' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Kevin Traynor
                   ` (37 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Xueming Li; +Cc: Yongseok Koh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 6413f6c03f19d0ccac991997543a115217dee89c Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@mellanox.com>
Date: Fri, 24 Aug 2018 07:10:33 +0800
Subject: [PATCH] net/mlx5: fix interrupt completion queue index wrapping

[ upstream commit 3afdf157fcedba15167ad03b187746bd6c73811f ]

Rxq cq_ci was 16 bits while hardware is expecting to wrap
around 24 bits, this caused interrupt failure after burst of packets.

Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core")

Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
---
 drivers/net/mlx5/mlx5_rxtx.c | 2 +-
 drivers/net/mlx5/mlx5_rxtx.h | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index 2d14f8a6e..558e6b60a 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -2098,5 +2098,5 @@ mlx5_rx_burst_mprq(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
 	volatile struct mlx5_cqe *cqe = &(*rxq->cqes)[rxq->cq_ci & cq_mask];
 	unsigned int i = 0;
-	uint16_t rq_ci = rxq->rq_ci;
+	uint32_t rq_ci = rxq->rq_ci;
 	uint16_t consumed_strd = rxq->consumed_strd;
 	struct mlx5_mprq_buf *buf = (*rxq->mprq_bufs)[rq_ci & wq_mask];
diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h
index 48ed2b209..d225b9c27 100644
--- a/drivers/net/mlx5/mlx5_rxtx.h
+++ b/drivers/net/mlx5/mlx5_rxtx.h
@@ -98,8 +98,8 @@ struct mlx5_rxq_data {
 	volatile uint32_t *cq_db;
 	uint16_t port_id;
-	uint16_t rq_ci;
+	uint32_t rq_ci;
 	uint16_t consumed_strd; /* Number of consumed strides in WQE. */
-	uint16_t rq_pi;
-	uint16_t cq_ci;
+	uint32_t rq_pi;
+	uint32_t cq_ci;
 	struct mlx5_mr_ctrl mr_ctrl; /* MR control descriptor. */
 	uint16_t mprq_max_memcpy_len; /* Maximum size of packet to memcpy. */
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.050999251 +0000
+++ 0024-net-mlx5-fix-interrupt-completion-queue-index-wrappi.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From 3afdf157fcedba15167ad03b187746bd6c73811f Mon Sep 17 00:00:00 2001
+From 6413f6c03f19d0ccac991997543a115217dee89c Mon Sep 17 00:00:00 2001
 From: Xueming Li <xuemingl@mellanox.com>
 Date: Fri, 24 Aug 2018 07:10:33 +0800
 Subject: [PATCH] net/mlx5: fix interrupt completion queue index wrapping
 
+[ upstream commit 3afdf157fcedba15167ad03b187746bd6c73811f ]
+
 Rxq cq_ci was 16 bits while hardware is expecting to wrap
 around 24 bits, this caused interrupt failure after burst of packets.
 
 Fixes: 43e9d9794cde ("net/mlx5: support upstream rdma-core")
-Cc: stable@dpdk.org
 
 Signed-off-by: Xueming Li <xuemingl@mellanox.com>
 Acked-by: Yongseok Koh <yskoh@mellanox.com>

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

* [dpdk-stable] patch 'doc: fix wrong usage of bind command' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (22 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix interrupt completion queue index wrapping' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Kevin Traynor
                   ` (36 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Rami Rosen; +Cc: Zhiyong Yang, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 9316dae36fe574ac58dcffd0e636ce952297679c Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Fri, 24 Aug 2018 10:43:02 +0300
Subject: [PATCH] doc: fix wrong usage of bind command

[ upstream commit b733c60f68f12e064359b27e630305c541a3fbdf ]

This patch fixes wrong usage of bind command in vhost.rst.
Using "dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0" gives
an error of "unbind failed". It should be "-b uio_pci_generic" so
it will work correctly.

Fixes: a971c509a523 ("doc: update vhost sample guide")

Signed-off-by: Rami Rosen <ramirose@gmail.com>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 doc/guides/sample_app_ug/vhost.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/guides/sample_app_ug/vhost.rst b/doc/guides/sample_app_ug/vhost.rst
index fd42cb3f7..df4d6f9a0 100644
--- a/doc/guides/sample_app_ug/vhost.rst
+++ b/doc/guides/sample_app_ug/vhost.rst
@@ -79,5 +79,5 @@ could be done by:
 
    modprobe uio_pci_generic
-   $RTE_SDK/usertools/dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0
+   $RTE_SDK/usertools/dpdk-devbind.py -b uio_pci_generic 0000:00:04.0
 
 Then start testpmd for packet forwarding testing.
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.074644396 +0000
+++ 0025-doc-fix-wrong-usage-of-bind-command.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,15 +1,16 @@
-From b733c60f68f12e064359b27e630305c541a3fbdf Mon Sep 17 00:00:00 2001
+From 9316dae36fe574ac58dcffd0e636ce952297679c Mon Sep 17 00:00:00 2001
 From: Rami Rosen <ramirose@gmail.com>
 Date: Fri, 24 Aug 2018 10:43:02 +0300
 Subject: [PATCH] doc: fix wrong usage of bind command
 
+[ upstream commit b733c60f68f12e064359b27e630305c541a3fbdf ]
+
 This patch fixes wrong usage of bind command in vhost.rst.
 Using "dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0" gives
 an error of "unbind failed". It should be "-b uio_pci_generic" so
 it will work correctly.
 
 Fixes: a971c509a523 ("doc: update vhost sample guide")
-Cc: stable@dpdk.org
 
 Signed-off-by: Rami Rosen <ramirose@gmail.com>
 Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>

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

* [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (23 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix zmbufs array leak after NUMA realloc' " Kevin Traynor
                   ` (35 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Rami Rosen; +Cc: Tiwei Bie, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From bd6787fc946187bd4376162eb905e74272039974 Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Sat, 25 Aug 2018 22:22:40 +0300
Subject: [PATCH] examples/vhost: remove unnecessary constant

[ upstream commit b24ec9bc1c43f7cada0b16709043f84f52f2b895 ]

This patch removes an unnecessary definition of MAX_PRINT_BUFF
in examples/vhost/main.c, since it is no longer being used.

Fixes: 68363d85857d ("examples/vhost: remove the non-working zero copy code")

Signed-off-by: Rami Rosen <ramirose@gmail.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
---
 examples/vhost/main.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 2175c1186..5d28d03f6 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -59,7 +59,4 @@
 #define MAX_DEVICES 64
 
-/* Size of buffers used for snprintfs. */
-#define MAX_PRINT_BUFF 6072
-
 /* Maximum long option length for option parsing. */
 #define MAX_LONG_OPT_SZ 64
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.096147283 +0000
+++ 0026-examples-vhost-remove-unnecessary-constant.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From b24ec9bc1c43f7cada0b16709043f84f52f2b895 Mon Sep 17 00:00:00 2001
+From bd6787fc946187bd4376162eb905e74272039974 Mon Sep 17 00:00:00 2001
 From: Rami Rosen <ramirose@gmail.com>
 Date: Sat, 25 Aug 2018 22:22:40 +0300
 Subject: [PATCH] examples/vhost: remove unnecessary constant
 
+[ upstream commit b24ec9bc1c43f7cada0b16709043f84f52f2b895 ]
+
 This patch removes an unnecessary definition of MAX_PRINT_BUFF
 in examples/vhost/main.c, since it is no longer being used.
 
 Fixes: 68363d85857d ("examples/vhost: remove the non-working zero copy code")
-Cc: stable@dpdk.org
 
 Signed-off-by: Rami Rosen <ramirose@gmail.com>
 Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>

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

* [dpdk-stable] patch 'vhost: fix zmbufs array leak after NUMA realloc' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (24 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: check negotiated features before set' " Kevin Traynor
                   ` (34 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Ilya Maximets; +Cc: Tiwei Bie, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From c816d40a36af4341b05137dc064a29287abee12a Mon Sep 17 00:00:00 2001
From: Ilya Maximets <i.maximets@samsung.com>
Date: Wed, 15 Aug 2018 17:54:39 +0300
Subject: [PATCH] vhost: fix zmbufs array leak after NUMA realloc

[ upstream commit 28925156d91bedb8f4b85b10dd9f3303a4d9e759 ]

'numa_realloc()' allocates 'zmbufs' even if zero copy mode
is not configured. This leads to memory leak, because array
is freed only for zero copy case.

Fixes: 2651726defb7 ("vhost: do deep copy while reallocating queue")

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
---
 lib/librte_vhost/vhost_user.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index a2d4c9ffc..9aa1ce118 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -358,9 +358,11 @@ numa_realloc(struct virtio_net *dev, int index)
 		TAILQ_INIT(&vq->zmbuf_list);
 
-		new_zmbuf = rte_malloc_socket(NULL, vq->zmbuf_size *
-			sizeof(struct zcopy_mbuf), 0, newnode);
-		if (new_zmbuf) {
-			rte_free(vq->zmbufs);
-			vq->zmbufs = new_zmbuf;
+		if (dev->dequeue_zero_copy) {
+			new_zmbuf = rte_malloc_socket(NULL, vq->zmbuf_size *
+					sizeof(struct zcopy_mbuf), 0, newnode);
+			if (new_zmbuf) {
+				rte_free(vq->zmbufs);
+				vq->zmbufs = new_zmbuf;
+			}
 		}
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.118520121 +0000
+++ 0027-vhost-fix-zmbufs-array-leak-after-NUMA-realloc.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,14 +1,15 @@
-From 28925156d91bedb8f4b85b10dd9f3303a4d9e759 Mon Sep 17 00:00:00 2001
+From c816d40a36af4341b05137dc064a29287abee12a Mon Sep 17 00:00:00 2001
 From: Ilya Maximets <i.maximets@samsung.com>
 Date: Wed, 15 Aug 2018 17:54:39 +0300
 Subject: [PATCH] vhost: fix zmbufs array leak after NUMA realloc
 
+[ upstream commit 28925156d91bedb8f4b85b10dd9f3303a4d9e759 ]
+
 'numa_realloc()' allocates 'zmbufs' even if zero copy mode
 is not configured. This leads to memory leak, because array
 is freed only for zero copy case.
 
 Fixes: 2651726defb7 ("vhost: do deep copy while reallocating queue")
-CC: stable@dpdk.org
 
 Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
 Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>

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

* [dpdk-stable] patch 'net/virtio-user: check negotiated features before set' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (25 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix zmbufs array leak after NUMA realloc' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix vhost interrupt support' " Kevin Traynor
                   ` (33 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Eric Zhang; +Cc: Tiwei Bie, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 96906d293ca53a338201f5cecdc40b5148472f8c Mon Sep 17 00:00:00 2001
From: Eric Zhang <eric.zhang@windriver.com>
Date: Wed, 29 Aug 2018 11:55:21 -0400
Subject: [PATCH] net/virtio-user: check negotiated features before set

[ upstream commit 1db4d2330bc849a19b9f18479ae7a5a75bc01df2 ]

This patch checks negotiated features to see if necessary to offload
before set the tap device offload capabilities. It also checks if kernel
support the TUNSETOFFLOAD operation.

Fixes: 5e97e4202563 ("net/virtio-user: enable offloading")

Signed-off-by: Eric Zhang <eric.zhang@windriver.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
---
 drivers/net/virtio/virtio_user/vhost_kernel.c | 18 +++---
 .../net/virtio/virtio_user/vhost_kernel_tap.c | 56 ++++++++++++++-----
 .../net/virtio/virtio_user/vhost_kernel_tap.h |  2 +-
 3 files changed, 54 insertions(+), 22 deletions(-)

diff --git a/drivers/net/virtio/virtio_user/vhost_kernel.c b/drivers/net/virtio/virtio_user/vhost_kernel.c
index b2444096c..d1be82162 100644
--- a/drivers/net/virtio/virtio_user/vhost_kernel.c
+++ b/drivers/net/virtio/virtio_user/vhost_kernel.c
@@ -148,6 +148,6 @@ prepare_vhost_memory_kernel(void)
 	 (1ULL << VIRTIO_NET_F_CSUM))
 
-static int
-tap_supporte_mq(void)
+static unsigned int
+tap_support_features(void)
 {
 	int tapfd;
@@ -168,5 +168,5 @@ tap_supporte_mq(void)
 
 	close(tapfd);
-	return tap_features & IFF_MULTI_QUEUE;
+	return tap_features;
 }
 
@@ -182,4 +182,5 @@ vhost_kernel_ioctl(struct virtio_user_dev *dev,
 	int vhostfd;
 	unsigned int queue_sel;
+	unsigned int features;
 
 	PMD_DRV_LOG(INFO, "%s", vhost_msg_strings[req]);
@@ -235,15 +236,18 @@ vhost_kernel_ioctl(struct virtio_user_dev *dev,
 
 	if (!ret && req_kernel == VHOST_GET_FEATURES) {
+		features = tap_support_features();
 		/* with tap as the backend, all these features are supported
 		 * but not claimed by vhost-net, so we add them back when
 		 * reporting to upper layer.
 		 */
-		*((uint64_t *)arg) |= VHOST_KERNEL_GUEST_OFFLOADS_MASK;
-		*((uint64_t *)arg) |= VHOST_KERNEL_HOST_OFFLOADS_MASK;
+		if (features & IFF_VNET_HDR) {
+			*((uint64_t *)arg) |= VHOST_KERNEL_GUEST_OFFLOADS_MASK;
+			*((uint64_t *)arg) |= VHOST_KERNEL_HOST_OFFLOADS_MASK;
+		}
 
 		/* vhost_kernel will not declare this feature, but it does
 		 * support multi-queue.
 		 */
-		if (tap_supporte_mq())
+		if (features & IFF_MULTI_QUEUE)
 			*(uint64_t *)arg |= (1ull << VIRTIO_NET_F_MQ);
 	}
@@ -340,5 +344,5 @@ vhost_kernel_enable_queue_pair(struct virtio_user_dev *dev,
 
 	tapfd = vhost_kernel_open_tap(&dev->ifname, hdr_size, req_mq,
-			 (char *)dev->mac_addr);
+			 (char *)dev->mac_addr, dev->features);
 	if (tapfd < 0) {
 		PMD_DRV_LOG(ERR, "fail to open tap for vhost kernel");
diff --git a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
index 9ea7ade74..a3faf1d0c 100644
--- a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
+++ b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
@@ -17,8 +17,48 @@
 #include "vhost_kernel_tap.h"
 #include "../virtio_logs.h"
+#include "../virtio_pci.h"
+
+static int
+vhost_kernel_tap_set_offload(int fd, uint64_t features)
+{
+	unsigned int offload = 0;
+
+	if (features & (1ULL << VIRTIO_NET_F_GUEST_CSUM)) {
+		offload |= TUN_F_CSUM;
+		if (features & (1ULL << VIRTIO_NET_F_GUEST_TSO4))
+			offload |= TUN_F_TSO4;
+		if (features & (1ULL << VIRTIO_NET_F_GUEST_TSO6))
+			offload |= TUN_F_TSO6;
+		if (features & ((1ULL << VIRTIO_NET_F_GUEST_TSO4) |
+			(1ULL << VIRTIO_NET_F_GUEST_TSO6)) &&
+			(features & (1ULL << VIRTIO_NET_F_GUEST_ECN)))
+			offload |= TUN_F_TSO_ECN;
+		if (features & (1ULL << VIRTIO_NET_F_GUEST_UFO))
+			offload |= TUN_F_UFO;
+	}
+
+	if (offload != 0) {
+		/* Check if our kernel supports TUNSETOFFLOAD */
+		if (ioctl(fd, TUNSETOFFLOAD, 0) != 0 && errno == EINVAL) {
+			PMD_DRV_LOG(ERR, "Kernel does't support TUNSETOFFLOAD\n");
+			return -ENOTSUP;
+		}
+
+		if (ioctl(fd, TUNSETOFFLOAD, offload) != 0) {
+			offload &= ~TUN_F_UFO;
+			if (ioctl(fd, TUNSETOFFLOAD, offload) != 0) {
+				PMD_DRV_LOG(ERR, "TUNSETOFFLOAD ioctl() failed: %s\n",
+					strerror(errno));
+				return -1;
+			}
+		}
+	}
+
+	return 0;
+}
 
 int
 vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
-			 const char *mac)
+			 const char *mac, uint64_t features)
 {
 	unsigned int tap_features;
@@ -26,10 +66,4 @@ vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
 	struct ifreq ifr;
 	int tapfd;
-	unsigned int offload =
-			TUN_F_CSUM |
-			TUN_F_TSO4 |
-			TUN_F_TSO6 |
-			TUN_F_TSO_ECN |
-			TUN_F_UFO;
 
 	/* TODO:
@@ -91,11 +125,5 @@ vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
 	}
 
-	/* TODO: before set the offload capabilities, we'd better (1) check
-	 * negotiated features to see if necessary to offload; (2) query tap
-	 * to see if it supports the offload capabilities.
-	 */
-	if (ioctl(tapfd, TUNSETOFFLOAD, offload) != 0)
-		PMD_DRV_LOG(ERR, "TUNSETOFFLOAD ioctl() failed: %s",
-			   strerror(errno));
+	vhost_kernel_tap_set_offload(tapfd, features);
 
 	memset(&ifr, 0, sizeof(ifr));
diff --git a/drivers/net/virtio/virtio_user/vhost_kernel_tap.h b/drivers/net/virtio/virtio_user/vhost_kernel_tap.h
index 01a026f50..e0e95b4f5 100644
--- a/drivers/net/virtio/virtio_user/vhost_kernel_tap.h
+++ b/drivers/net/virtio/virtio_user/vhost_kernel_tap.h
@@ -37,3 +37,3 @@
 
 int vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
-			 const char *mac);
+			 const char *mac, uint64_t features);
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.142112656 +0000
+++ 0028-net-virtio-user-check-negotiated-features-before-set.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,14 +1,15 @@
-From 1db4d2330bc849a19b9f18479ae7a5a75bc01df2 Mon Sep 17 00:00:00 2001
+From 96906d293ca53a338201f5cecdc40b5148472f8c Mon Sep 17 00:00:00 2001
 From: Eric Zhang <eric.zhang@windriver.com>
 Date: Wed, 29 Aug 2018 11:55:21 -0400
 Subject: [PATCH] net/virtio-user: check negotiated features before set
 
+[ upstream commit 1db4d2330bc849a19b9f18479ae7a5a75bc01df2 ]
+
 This patch checks negotiated features to see if necessary to offload
 before set the tap device offload capabilities. It also checks if kernel
 support the TUNSETOFFLOAD operation.
 
 Fixes: 5e97e4202563 ("net/virtio-user: enable offloading")
-Cc: stable@dpdk.org
 
 Signed-off-by: Eric Zhang <eric.zhang@windriver.com>
 Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>

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

* [dpdk-stable] patch 'vhost: fix vhost interrupt support' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (26 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: check negotiated features before set' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'vhost-user: drop connection on message handling failures' " Kevin Traynor
                   ` (32 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 97b28091a42d73c92fe2c6ec354559815e005fd0 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 5 Sep 2018 07:55:55 +0800
Subject: [PATCH] vhost: fix vhost interrupt support

[ upstream commit 77de7c781cb6dbbf11c00118946fb4e46347116f ]

When VIRTIO_RING_F_EVENT_IDX is negotiated, we need to
update the avail event to enable the notification.

Fixes: 3f8ff12821e4 ("vhost: support interrupt mode")

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/Makefile    |  1 +
 lib/librte_vhost/meson.build |  1 +
 lib/librte_vhost/vhost.c     | 18 ++++++++++++------
 lib/librte_vhost/vhost.h     |  2 ++
 4 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/lib/librte_vhost/Makefile b/lib/librte_vhost/Makefile
index de431fbb7..531cf4832 100644
--- a/lib/librte_vhost/Makefile
+++ b/lib/librte_vhost/Makefile
@@ -14,4 +14,5 @@ CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -D_FILE_OFFSET_BITS=64
 CFLAGS += -I vhost_user
+CFLAGS += -fno-strict-aliasing
 LDLIBS += -lpthread
 
diff --git a/lib/librte_vhost/meson.build b/lib/librte_vhost/meson.build
index bd62e0e39..9d25b4d88 100644
--- a/lib/librte_vhost/meson.build
+++ b/lib/librte_vhost/meson.build
@@ -10,4 +10,5 @@ endif
 version = 4
 allow_experimental_apis = true
+cflags += '-fno-strict-aliasing'
 sources = files('fd_man.c', 'iotlb.c', 'socket.c', 'vdpa.c',
 		'vhost.c', 'vhost_user.c',
diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
index 3c9be10a0..88b1781d5 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c
@@ -647,10 +647,16 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
 
 static inline void
-vhost_enable_notify_split(struct vhost_virtqueue *vq, int enable)
+vhost_enable_notify_split(struct virtio_net *dev,
+		struct vhost_virtqueue *vq, int enable)
 {
-	if (enable)
-		vq->used->flags &= ~VRING_USED_F_NO_NOTIFY;
-	else
-		vq->used->flags |= VRING_USED_F_NO_NOTIFY;
+	if (!(dev->features & (1ULL << VIRTIO_RING_F_EVENT_IDX))) {
+		if (enable)
+			vq->used->flags &= ~VRING_USED_F_NO_NOTIFY;
+		else
+			vq->used->flags |= VRING_USED_F_NO_NOTIFY;
+	} else {
+		if (enable)
+			vhost_avail_event(vq) = vq->last_avail_idx;
+	}
 }
 
@@ -690,5 +696,5 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
 		vhost_enable_notify_packed(dev, vq, enable);
 	else
-		vhost_enable_notify_split(vq, enable);
+		vhost_enable_notify_split(dev, vq, enable);
 
 	return 0;
diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
index 760a09c0d..25ffd7614 100644
--- a/lib/librte_vhost/vhost.h
+++ b/lib/librte_vhost/vhost.h
@@ -649,4 +649,6 @@ vhost_iova_to_vva(struct virtio_net *dev, struct vhost_virtqueue *vq,
 }
 
+#define vhost_avail_event(vr) \
+	(*(volatile uint16_t*)&(vr)->used->ring[(vr)->size])
 #define vhost_used_event(vr) \
 	(*(volatile uint16_t*)&(vr)->avail->ring[(vr)->size])
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.164108481 +0000
+++ 0029-vhost-fix-vhost-interrupt-support.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From 77de7c781cb6dbbf11c00118946fb4e46347116f Mon Sep 17 00:00:00 2001
+From 97b28091a42d73c92fe2c6ec354559815e005fd0 Mon Sep 17 00:00:00 2001
 From: Tiwei Bie <tiwei.bie@intel.com>
 Date: Wed, 5 Sep 2018 07:55:55 +0800
 Subject: [PATCH] vhost: fix vhost interrupt support
 
+[ upstream commit 77de7c781cb6dbbf11c00118946fb4e46347116f ]
+
 When VIRTIO_RING_F_EVENT_IDX is negotiated, we need to
 update the avail event to enable the notification.
 
 Fixes: 3f8ff12821e4 ("vhost: support interrupt mode")
-Cc: stable@dpdk.org
 
 Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
 Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
@@ -39,10 +40,10 @@
  sources = files('fd_man.c', 'iotlb.c', 'socket.c', 'vdpa.c',
  		'vhost.c', 'vhost_user.c',
 diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
-index 91026b3e1..e62f4c594 100644
+index 3c9be10a0..88b1781d5 100644
 --- a/lib/librte_vhost/vhost.c
 +++ b/lib/librte_vhost/vhost.c
-@@ -648,10 +648,16 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
+@@ -647,10 +647,16 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
  
  static inline void
 -vhost_enable_notify_split(struct vhost_virtqueue *vq, int enable)
@@ -64,7 +65,7 @@
 +	}
  }
  
-@@ -691,5 +697,5 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
+@@ -690,5 +696,5 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
  		vhost_enable_notify_packed(dev, vq, enable);
  	else
 -		vhost_enable_notify_split(vq, enable);

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

* [dpdk-stable] patch 'vhost-user: drop connection on message handling failures' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (27 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix vhost interrupt support' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix return value on enqueue path' " Kevin Traynor
                   ` (31 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Ilya Maximets; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From f9894ad3409367bd479a787c5f21d34009caa59a Mon Sep 17 00:00:00 2001
From: Ilya Maximets <i.maximets@samsung.com>
Date: Mon, 3 Sep 2018 13:12:24 +0300
Subject: [PATCH] vhost-user: drop connection on message handling failures

[ upstream commit 0d7853a4da3bd681005ecb64ef1183c59356eeea ]

There are a lot of cases where vhost-user massage handling
could fail and end up in a fully not recoverable state. For
example, allocation failures of shadow used ring and batched
copy array are not recoverable and leads to the segmentation
faults like this on the receiving/transmission path:

  Program received signal SIGSEGV, Segmentation fault.
  [Switching to Thread 0x7f913fecf0 (LWP 43625)]
  in copy_desc_to_mbuf () at /lib/librte_vhost/virtio_net.c:760
  760       batch_copy[vq->batch_copy_nb_elems].dst =

This could be easily reproduced in case of low memory or big
number of vhost-user ports.

Fix that by propagating error to the upper layer which will
end up with disconnection in case we can not report to
the message sender when the error happens.

Fixes: f689586bc060 ("vhost: shadow used ring update")

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/vhost_user.c | 51 +++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index 9aa1ce118..63d145b2d 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -1015,5 +1015,5 @@ vhost_user_set_vring_call(struct virtio_net *dev, struct VhostUserMsg *pmsg)
 }
 
-static void
+static int
 vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *pmsg)
 {
@@ -1033,5 +1033,5 @@ vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *pmsg)
 	dev = translate_ring_addresses(dev, file.index);
 	if (!dev)
-		return;
+		return -1;
 
 	*pdev = dev;
@@ -1050,4 +1050,5 @@ vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *pmsg)
 		close(vq->kickfd);
 	vq->kickfd = file.fd;
+	return 0;
 }
 
@@ -1173,12 +1174,17 @@ vhost_user_get_protocol_features(struct virtio_net *dev,
 }
 
-static void
+static int
 vhost_user_set_protocol_features(struct virtio_net *dev,
 				 uint64_t protocol_features)
 {
-	if (protocol_features & ~VHOST_USER_PROTOCOL_FEATURES)
-		return;
+	if (protocol_features & ~VHOST_USER_PROTOCOL_FEATURES) {
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"(%d) received invalid protocol features.\n",
+			dev->vid);
+		return -1;
+	}
 
 	dev->protocol_features = protocol_features;
+	return 0;
 }
 
@@ -1658,6 +1664,4 @@ vhost_user_msg_handler(int vid, int fd)
 	case VHOST_USER_SET_FEATURES:
 		ret = vhost_user_set_features(dev, msg.payload.u64);
-		if (ret)
-			return -1;
 		break;
 
@@ -1667,12 +1671,12 @@ vhost_user_msg_handler(int vid, int fd)
 		break;
 	case VHOST_USER_SET_PROTOCOL_FEATURES:
-		vhost_user_set_protocol_features(dev, msg.payload.u64);
+		ret = vhost_user_set_protocol_features(dev, msg.payload.u64);
 		break;
 
 	case VHOST_USER_SET_OWNER:
-		vhost_user_set_owner();
+		ret = vhost_user_set_owner();
 		break;
 	case VHOST_USER_RESET_OWNER:
-		vhost_user_reset_owner(dev);
+		ret = vhost_user_reset_owner(dev);
 		break;
 
@@ -1682,6 +1686,7 @@ vhost_user_msg_handler(int vid, int fd)
 
 	case VHOST_USER_SET_LOG_BASE:
-		vhost_user_set_log_base(dev, &msg);
-
+		ret = vhost_user_set_log_base(dev, &msg);
+		if (ret)
+			goto skip_to_reply;
 		/* it needs a reply */
 		msg.size = sizeof(msg.payload.u64);
@@ -1694,15 +1699,17 @@ vhost_user_msg_handler(int vid, int fd)
 
 	case VHOST_USER_SET_VRING_NUM:
-		vhost_user_set_vring_num(dev, &msg);
+		ret = vhost_user_set_vring_num(dev, &msg);
 		break;
 	case VHOST_USER_SET_VRING_ADDR:
-		vhost_user_set_vring_addr(&dev, &msg);
+		ret = vhost_user_set_vring_addr(&dev, &msg);
 		break;
 	case VHOST_USER_SET_VRING_BASE:
-		vhost_user_set_vring_base(dev, &msg);
+		ret = vhost_user_set_vring_base(dev, &msg);
 		break;
 
 	case VHOST_USER_GET_VRING_BASE:
-		vhost_user_get_vring_base(dev, &msg);
+		ret = vhost_user_get_vring_base(dev, &msg);
+		if (ret)
+			goto skip_to_reply;
 		msg.size = sizeof(msg.payload.state);
 		send_vhost_reply(fd, &msg);
@@ -1710,5 +1717,5 @@ vhost_user_msg_handler(int vid, int fd)
 
 	case VHOST_USER_SET_VRING_KICK:
-		vhost_user_set_vring_kick(&dev, &msg);
+		ret = vhost_user_set_vring_kick(&dev, &msg);
 		break;
 	case VHOST_USER_SET_VRING_CALL:
@@ -1729,8 +1736,8 @@ vhost_user_msg_handler(int vid, int fd)
 
 	case VHOST_USER_SET_VRING_ENABLE:
-		vhost_user_set_vring_enable(dev, &msg);
+		ret = vhost_user_set_vring_enable(dev, &msg);
 		break;
 	case VHOST_USER_SEND_RARP:
-		vhost_user_send_rarp(dev, &msg);
+		ret = vhost_user_send_rarp(dev, &msg);
 		break;
 
@@ -1753,5 +1760,5 @@ vhost_user_msg_handler(int vid, int fd)
 
 skip_to_post_handle:
-	if (dev->extern_ops.post_msg_handle) {
+	if (!ret && dev->extern_ops.post_msg_handle) {
 		uint32_t need_reply;
 
@@ -1773,4 +1780,8 @@ skip_to_reply:
 		msg.size = sizeof(msg.payload.u64);
 		send_vhost_reply(fd, &msg);
+	} else if (ret) {
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"vhost message handling failed.\n");
+		return -1;
 	}
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.187279182 +0000
+++ 0030-vhost-user-drop-connection-on-message-handling-failu.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 0d7853a4da3bd681005ecb64ef1183c59356eeea Mon Sep 17 00:00:00 2001
+From f9894ad3409367bd479a787c5f21d34009caa59a Mon Sep 17 00:00:00 2001
 From: Ilya Maximets <i.maximets@samsung.com>
 Date: Mon, 3 Sep 2018 13:12:24 +0300
 Subject: [PATCH] vhost-user: drop connection on message handling failures
 
+[ upstream commit 0d7853a4da3bd681005ecb64ef1183c59356eeea ]
+
 There are a lot of cases where vhost-user massage handling
 could fail and end up in a fully not recoverable state. For
 example, allocation failures of shadow used ring and batched
@@ -22,7 +24,6 @@
 the message sender when the error happens.
 
 Fixes: f689586bc060 ("vhost: shadow used ring update")
-Cc: stable@dpdk.org
 
 Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
 Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

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

* [dpdk-stable] patch 'vhost: fix return value on enqueue path' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (28 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'vhost-user: drop connection on message handling failures' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix missing names in Tx offload name array' " Kevin Traynor
                   ` (30 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 941643d6570f64439349fb208c00e8068b36bea0 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Thu, 6 Sep 2018 12:59:27 +0800
Subject: [PATCH] vhost: fix return value on enqueue path

[ upstream commit 58e90a91138d2ed491b37b2173fe39ae44c9ca06 ]

Fixes: 62250c1d0978 ("vhost: extract split ring handling from Rx and Tx functions")
Fixes: a922401f35cc ("vhost: add Rx support for packed ring")

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_vhost/virtio_net.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index 99c7afc88..4bfae76a6 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -889,4 +889,5 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 {
 	struct vhost_virtqueue *vq;
+	uint32_t nb_tx = 0;
 
 	VHOST_LOG_DEBUG(VHOST_DATA, "(%d) %s\n", dev->vid, __func__);
@@ -916,7 +917,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
 
 	if (vq_is_packed(dev))
-		count = virtio_dev_rx_packed(dev, vq, pkts, count);
+		nb_tx = virtio_dev_rx_packed(dev, vq, pkts, count);
 	else
-		count = virtio_dev_rx_split(dev, vq, pkts, count);
+		nb_tx = virtio_dev_rx_split(dev, vq, pkts, count);
 
 out:
@@ -927,5 +928,5 @@ out_access_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return count;
+	return nb_tx;
 }
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.213456658 +0000
+++ 0031-vhost-fix-return-value-on-enqueue-path.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,11 +1,12 @@
-From 58e90a91138d2ed491b37b2173fe39ae44c9ca06 Mon Sep 17 00:00:00 2001
+From 941643d6570f64439349fb208c00e8068b36bea0 Mon Sep 17 00:00:00 2001
 From: Tiwei Bie <tiwei.bie@intel.com>
 Date: Thu, 6 Sep 2018 12:59:27 +0800
 Subject: [PATCH] vhost: fix return value on enqueue path
 
+[ upstream commit 58e90a91138d2ed491b37b2173fe39ae44c9ca06 ]
+
 Fixes: 62250c1d0978 ("vhost: extract split ring handling from Rx and Tx functions")
 Fixes: a922401f35cc ("vhost: add Rx support for packed ring")
-Cc: stable@dpdk.org
 
 Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
 Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

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

* [dpdk-stable] patch 'ethdev: fix missing names in Tx offload name array' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (29 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix return value on enqueue path' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Kevin Traynor
                   ` (29 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Dekel Peled; +Cc: Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 481e72a9926d41f2cefa7c15f1befd180aa20ed5 Mon Sep 17 00:00:00 2001
From: Dekel Peled <dekelp@mellanox.com>
Date: Wed, 12 Sep 2018 11:28:02 +0300
Subject: [PATCH] ethdev: fix missing names in Tx offload name array

[ upstream commit d9552ee24a9f6805ba3951647c26a21839fadefe ]

Patch 5355f443 added two definitions of DEV_TX_OFFLOAD_xxx.
If new Tx offload capabilities are defined, they also must be mentioned
in rte_tx_offload_names in rte_ethdev.c file.

This patch adds the required lines in array rte_tx_offload_names.

Fixes: 5355f4439e2e ("ethdev: introduce generic IP/UDP tunnel checksum and TSO")

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 lib/librte_ethdev/rte_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 850d0c1b5..a43dfc8b7 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -157,4 +157,6 @@ static const struct {
 	RTE_TX_OFFLOAD_BIT2STR(MBUF_FAST_FREE),
 	RTE_TX_OFFLOAD_BIT2STR(SECURITY),
+	RTE_TX_OFFLOAD_BIT2STR(UDP_TNL_TSO),
+	RTE_TX_OFFLOAD_BIT2STR(IP_TNL_TSO),
 };
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.235611914 +0000
+++ 0032-ethdev-fix-missing-names-in-Tx-offload-name-array.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From d9552ee24a9f6805ba3951647c26a21839fadefe Mon Sep 17 00:00:00 2001
+From 481e72a9926d41f2cefa7c15f1befd180aa20ed5 Mon Sep 17 00:00:00 2001
 From: Dekel Peled <dekelp@mellanox.com>
 Date: Wed, 12 Sep 2018 11:28:02 +0300
 Subject: [PATCH] ethdev: fix missing names in Tx offload name array
 
+[ upstream commit d9552ee24a9f6805ba3951647c26a21839fadefe ]
+
 Patch 5355f443 added two definitions of DEV_TX_OFFLOAD_xxx.
 If new Tx offload capabilities are defined, they also must be mentioned
 in rte_tx_offload_names in rte_ethdev.c file.
@@ -10,7 +12,6 @@
 This patch adds the required lines in array rte_tx_offload_names.
 
 Fixes: 5355f4439e2e ("ethdev: introduce generic IP/UDP tunnel checksum and TSO")
-Cc: stable@dpdk.org
 
 Signed-off-by: Dekel Peled <dekelp@mellanox.com>
 Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -19,7 +20,7 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
-index 3f8de9341..5004b9f7b 100644
+index 850d0c1b5..a43dfc8b7 100644
 --- a/lib/librte_ethdev/rte_ethdev.c
 +++ b/lib/librte_ethdev/rte_ethdev.c
 @@ -157,4 +157,6 @@ static const struct {

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

* [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (30 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix missing names in Tx offload name array' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Kevin Traynor
                   ` (28 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Igor Romanov; +Cc: Andrew Rybchenko, Chas Williams, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 90b53605f7c08a069ebb2da4b0fcabbeb81378b8 Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Wed, 29 Aug 2018 08:48:30 +0100
Subject: [PATCH] net/bonding: use evenly distributed default RSS RETA

[ upstream commit 617d1ac2fd22e9a82d305c0607853f4ee0f7277b ]

Default Redirection Table that is set in bonding driver is distributed
evenly over all Rx queues only within every RETA group (the first RETA
entries in every group are always start with zero). But in the most
drivers, default RETA is distributed over all Rx queues without sequence
resets in the beginning of a new group, which implies more balanced
per-core load.

Change the default RETA to be evenly distributed over all Rx queues
considering the whole table.

Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Chas Williams <chas3@att.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index b84f32263..0f5ab09e3 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -3294,5 +3294,7 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
 			internals->reta_conf[i].mask = ~0LL;
 			for (j = 0; j < RTE_RETA_GROUP_SIZE; j++)
-				internals->reta_conf[i].reta[j] = j % dev->data->nb_rx_queues;
+				internals->reta_conf[i].reta[j] =
+						(i * RTE_RETA_GROUP_SIZE + j) %
+						dev->data->nb_rx_queues;
 		}
 	}
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.260343828 +0000
+++ 0033-net-bonding-use-evenly-distributed-default-RSS-RETA.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 617d1ac2fd22e9a82d305c0607853f4ee0f7277b Mon Sep 17 00:00:00 2001
+From 90b53605f7c08a069ebb2da4b0fcabbeb81378b8 Mon Sep 17 00:00:00 2001
 From: Igor Romanov <igor.romanov@oktetlabs.ru>
 Date: Wed, 29 Aug 2018 08:48:30 +0100
 Subject: [PATCH] net/bonding: use evenly distributed default RSS RETA
 
+[ upstream commit 617d1ac2fd22e9a82d305c0607853f4ee0f7277b ]
+
 Default Redirection Table that is set in bonding driver is distributed
 evenly over all Rx queues only within every RETA group (the first RETA
 entries in every group are always start with zero). But in the most
@@ -14,7 +16,6 @@
 considering the whole table.
 
 Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")
-Cc: stable@dpdk.org
 
 Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
 Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>

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

* [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (31 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'crypto/qat: fix typo' " Kevin Traynor
                   ` (27 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Igor Romanov; +Cc: Andrew Rybchenko, Chas Williams, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From ff0b8562bfb60723a4659e4c1ca3312df772e4ad Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Wed, 29 Aug 2018 08:51:24 +0100
Subject: [PATCH] net/bonding: do not ignore RSS key on device config

[ upstream commit 83cf204a982918fd56b15f9d458d1dfb1e724b5f ]

Bonding driver ignores the value of RSS key (that is set in the port RSS
configuration) in bond_ethdev_configure(). So the only way to set
non-default RSS key is by using rss_hash_update(). This is not an
expected behaviour.

Make the bond_ethdev_configure() set default RSS key only if
requested key is set to NULL.

Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Chas Williams <chas3@att.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 27 ++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 0f5ab09e3..7814258f2 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1779,10 +1779,9 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
 	/* If RSS is enabled for bonding, try to enable it for slaves  */
 	if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) {
-		if (bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len
-				!= 0) {
+		if (internals->rss_key_len != 0) {
 			slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len =
-					bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len;
+					internals->rss_key_len;
 			slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key =
-					bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key;
+					internals->rss_key;
 		} else {
 			slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL;
@@ -3285,9 +3284,21 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
 	unsigned i, j;
 
-	/* If RSS is enabled, fill table and key with default values */
+	/*
+	 * If RSS is enabled, fill table with default values and
+	 * set key to the the value specified in port RSS configuration.
+	 * Fall back to default RSS key if the key is not specified
+	 */
 	if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS) {
-		dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = internals->rss_key;
-		dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len = 0;
-		memcpy(internals->rss_key, default_rss_key, 40);
+		if (dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key != NULL) {
+			internals->rss_key_len =
+				dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len;
+			memcpy(internals->rss_key,
+			       dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key,
+			       internals->rss_key_len);
+		} else {
+			internals->rss_key_len = sizeof(default_rss_key);
+			memcpy(internals->rss_key, default_rss_key,
+			       internals->rss_key_len);
+		}
 
 		for (i = 0; i < RTE_DIM(internals->reta_conf); i++) {
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.285098694 +0000
+++ 0034-net-bonding-do-not-ignore-RSS-key-on-device-config.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 83cf204a982918fd56b15f9d458d1dfb1e724b5f Mon Sep 17 00:00:00 2001
+From ff0b8562bfb60723a4659e4c1ca3312df772e4ad Mon Sep 17 00:00:00 2001
 From: Igor Romanov <igor.romanov@oktetlabs.ru>
 Date: Wed, 29 Aug 2018 08:51:24 +0100
 Subject: [PATCH] net/bonding: do not ignore RSS key on device config
 
+[ upstream commit 83cf204a982918fd56b15f9d458d1dfb1e724b5f ]
+
 Bonding driver ignores the value of RSS key (that is set in the port RSS
 configuration) in bond_ethdev_configure(). So the only way to set
 non-default RSS key is by using rss_hash_update(). This is not an
@@ -12,7 +14,6 @@
 requested key is set to NULL.
 
 Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")
-Cc: stable@dpdk.org
 
 Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
 Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>

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

* [dpdk-stable] patch 'crypto/qat: fix typo' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (32 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'app/bbdev: fix inputs mbuf creation' " Kevin Traynor
                   ` (26 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Fiona Trahe; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 3a9f859d929ad619098568307b6e8ce75eff775e Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Fri, 10 Aug 2018 16:18:39 +0100
Subject: [PATCH] crypto/qat: fix typo

[ upstream commit 6a3e44717d258c15a2312b989c327b544fe33fa4 ]

Fixes: f9a3d7f68f05 ("crypto/qat: move code into appropriate files")

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
---
 drivers/crypto/qat/qat_sym_pmd.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/qat/qat_sym_pmd.h b/drivers/crypto/qat/qat_sym_pmd.h
index d34328544..5563d5be8 100644
--- a/drivers/crypto/qat/qat_sym_pmd.h
+++ b/drivers/crypto/qat/qat_sym_pmd.h
@@ -13,5 +13,5 @@
 #include "qat_device.h"
 
-/**< Intel(R) QAT Symmetric Crypto PMD device name */
+/** Intel(R) QAT Symmetric Crypto PMD driver name */
 #define CRYPTODEV_NAME_QAT_SYM_PMD	crypto_qat
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.309056568 +0000
+++ 0035-crypto-qat-fix-typo.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 6a3e44717d258c15a2312b989c327b544fe33fa4 Mon Sep 17 00:00:00 2001
+From 3a9f859d929ad619098568307b6e8ce75eff775e Mon Sep 17 00:00:00 2001
 From: Fiona Trahe <fiona.trahe@intel.com>
 Date: Fri, 10 Aug 2018 16:18:39 +0100
 Subject: [PATCH] crypto/qat: fix typo
 
+[ upstream commit 6a3e44717d258c15a2312b989c327b544fe33fa4 ]
+
 Fixes: f9a3d7f68f05 ("crypto/qat: move code into appropriate files")
 
 Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>

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

* [dpdk-stable] patch 'app/bbdev: fix inputs mbuf creation' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (33 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'crypto/qat: fix typo' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'compat: fix symbol version support with meson' " Kevin Traynor
                   ` (25 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Kamil Chalupnik; +Cc: Yuan Peng, Amr Mokhtar, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From e16283448e9e4557b95ca248eca666a5bf9d807f Mon Sep 17 00:00:00 2001
From: Kamil Chalupnik <kamilx.chalupnik@intel.com>
Date: Fri, 17 Aug 2018 09:19:19 +0200
Subject: [PATCH] app/bbdev: fix inputs mbuf creation

[ upstream commit ad45893579346d999520e1aa91e7f74c51083d4b ]

Omitting inputs and outputs mbuf creation for BaseBand Null Device
as inputs and outputs data do not exist for Null Device

Fixes: b2a4654f082b ("mempool: check for zero size creation")

Signed-off-by: Kamil Chalupnik <kamilx.chalupnik@intel.com>
Tested-by: Yuan Peng <yuan.peng@intel.com>
Acked-by: Amr Mokhtar <amr.mokhtar@intel.com>
---
 app/test-bbdev/test_bbdev_perf.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c
index 6861edc47..fbe6cc91c 100644
--- a/app/test-bbdev/test_bbdev_perf.c
+++ b/app/test-bbdev/test_bbdev_perf.c
@@ -268,5 +268,5 @@ create_mbuf_pool(struct op_data_entries *entries, uint8_t dev_id,
 static int
 create_mempools(struct active_device *ad, int socket_id,
-		enum rte_bbdev_op_type op_type, uint16_t num_ops)
+		enum rte_bbdev_op_type org_op_type, uint16_t num_ops)
 {
 	struct rte_mempool *mp;
@@ -274,4 +274,5 @@ create_mempools(struct active_device *ad, int socket_id,
 	char pool_name[RTE_MEMPOOL_NAMESIZE];
 	const char *op_type_str;
+	enum rte_bbdev_op_type op_type = org_op_type;
 
 	struct op_data_entries *in = &test_vector.entries[DATA_INPUT];
@@ -290,4 +291,7 @@ create_mempools(struct active_device *ad, int socket_id,
 			OPS_POOL_SIZE_MIN));
 
+	if (org_op_type == RTE_BBDEV_OP_NONE)
+		op_type = RTE_BBDEV_OP_TURBO_ENC;
+
 	op_type_str = rte_bbdev_op_type_str(op_type);
 	TEST_ASSERT_NOT_NULL(op_type_str, "Invalid op type: %u", op_type);
@@ -304,4 +308,8 @@ create_mempools(struct active_device *ad, int socket_id,
 	ad->ops_mempool = mp;
 
+	/* Do not create inputs and outputs mbufs for BaseBand Null Device */
+	if (org_op_type == RTE_BBDEV_OP_NONE)
+		return TEST_SUCCESS;
+
 	/* Inputs */
 	mbuf_pool_size = optimal_mempool_size(ops_pool_size * in->nb_segments);
@@ -1059,6 +1067,4 @@ run_test_case_on_device(test_case_function *test_case_func, uint8_t dev_id,
 	socket_id = GET_SOCKET(info.socket_id);
 
-	if (op_type == RTE_BBDEV_OP_NONE)
-		op_type = RTE_BBDEV_OP_TURBO_ENC;
 	f_ret = create_mempools(ad, socket_id, op_type,
 			get_num_ops());
@@ -1067,4 +1073,6 @@ run_test_case_on_device(test_case_function *test_case_func, uint8_t dev_id,
 		goto fail;
 	}
+	if (op_type == RTE_BBDEV_OP_NONE)
+		op_type = RTE_BBDEV_OP_TURBO_ENC;
 
 	f_ret = init_test_op_params(op_params, test_vector.op_type,
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.330243411 +0000
+++ 0036-app-bbdev-fix-inputs-mbuf-creation.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From ad45893579346d999520e1aa91e7f74c51083d4b Mon Sep 17 00:00:00 2001
+From e16283448e9e4557b95ca248eca666a5bf9d807f Mon Sep 17 00:00:00 2001
 From: Kamil Chalupnik <kamilx.chalupnik@intel.com>
 Date: Fri, 17 Aug 2018 09:19:19 +0200
 Subject: [PATCH] app/bbdev: fix inputs mbuf creation
 
+[ upstream commit ad45893579346d999520e1aa91e7f74c51083d4b ]
+
 Omitting inputs and outputs mbuf creation for BaseBand Null Device
 as inputs and outputs data do not exist for Null Device
 
 Fixes: b2a4654f082b ("mempool: check for zero size creation")
-Cc: stable@dpdk.org
 
 Signed-off-by: Kamil Chalupnik <kamilx.chalupnik@intel.com>
 Tested-by: Yuan Peng <yuan.peng@intel.com>

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

* [dpdk-stable] patch 'compat: fix symbol version support with meson' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (34 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'app/bbdev: fix inputs mbuf creation' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'eal: include missing hypervisor files in " Kevin Traynor
                   ` (24 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 79e26dd3b25320a7f7c794628fbfda575e7777f3 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Mon, 17 Sep 2018 09:18:00 +0100
Subject: [PATCH] compat: fix symbol version support with meson

[ upstream commit 7a9eac097443fcd9f7fd3a1dd4ca86d46a2e09b9 ]

For meson builds, the define to enable the symbol version
macros in rte_compat.h was missing. This led to symbols being
omitted from shared objects. For example, checking rte_distributor.so
with objdump and comparing make and meson built versions:

$ objdump -T make-build/lib/librte_distributor.so | grep _flush
 0000000000001b60 g    DF .text	00000000000000a7 (DPDK_2.0)   rte_distributor_flush
 0000000000003f10 g    DF .text	0000000000000434  DPDK_17.05  rte_distributor_flush
$ objdump -T meson-build/lib/librte_distributor.so | grep _flush
 0000000000001d50 g    DF .text	00000000000000fb  DPDK_2.0    rte_distributor_flush

Adding in the missing define fixes this.

Fixes: 5b9656b157d3 ("lib: build with meson")

Reported-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Luca Boccassi <bluca@debian.org>
---
 config/rte_config.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/config/rte_config.h b/config/rte_config.h
index a8e479774..46775a841 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -21,4 +21,7 @@
 /****** library defines ********/
 
+/* compat defines */
+#define RTE_BUILD_SHARED_LIB
+
 /* EAL defines */
 #define RTE_MAX_MEMSEG_LISTS 128
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.355171005 +0000
+++ 0037-compat-fix-symbol-version-support-with-meson.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 7a9eac097443fcd9f7fd3a1dd4ca86d46a2e09b9 Mon Sep 17 00:00:00 2001
+From 79e26dd3b25320a7f7c794628fbfda575e7777f3 Mon Sep 17 00:00:00 2001
 From: Bruce Richardson <bruce.richardson@intel.com>
 Date: Mon, 17 Sep 2018 09:18:00 +0100
 Subject: [PATCH] compat: fix symbol version support with meson
 
+[ upstream commit 7a9eac097443fcd9f7fd3a1dd4ca86d46a2e09b9 ]
+
 For meson builds, the define to enable the symbol version
 macros in rte_compat.h was missing. This led to symbols being
 omitted from shared objects. For example, checking rte_distributor.so
@@ -17,7 +19,6 @@
 Adding in the missing define fixes this.
 
 Fixes: 5b9656b157d3 ("lib: build with meson")
-Cc: stable@dpdk.org
 
 Reported-by: Luca Boccassi <bluca@debian.org>
 Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

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

* [dpdk-stable] patch 'eal: include missing hypervisor files in meson' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (35 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'compat: fix symbol version support with meson' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'raw/ifpga: use -Wno-error=format-security for " Kevin Traynor
                   ` (23 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Luca Boccassi; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From e541d3195cc60682116bcbadf185bf8cb0807c0f Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Mon, 17 Sep 2018 10:01:24 +0100
Subject: [PATCH] eal: include missing hypervisor files in meson

[ upstream commit 888904417d396a4b10ff673588b68b7e6ccccf64 ]

They are built by the legacy makefiles but not by Meson.

Fixes: 8f40ee0734c8 ("eal/x86: get hypervisor name")

Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_eal/common/arch/arm/meson.build | 2 +-
 lib/librte_eal/common/arch/x86/meson.build | 2 +-
 lib/librte_eal/common/meson.build          | 2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/common/arch/arm/meson.build b/lib/librte_eal/common/arch/arm/meson.build
index c6bd92272..79731e1a2 100644
--- a/lib/librte_eal/common/arch/arm/meson.build
+++ b/lib/librte_eal/common/arch/arm/meson.build
@@ -3,3 +3,3 @@
 
 eal_common_arch_sources = files('rte_cpuflags.c',
-	'rte_cycles.c')
+	'rte_cycles.c', 'rte_hypervisor.c')
diff --git a/lib/librte_eal/common/arch/x86/meson.build b/lib/librte_eal/common/arch/x86/meson.build
index 4e0f77900..14bf204c6 100644
--- a/lib/librte_eal/common/arch/x86/meson.build
+++ b/lib/librte_eal/common/arch/x86/meson.build
@@ -3,3 +3,3 @@
 
 eal_common_arch_sources = files('rte_spinlock.c', 'rte_cpuflags.c',
-	'rte_cycles.c')
+	'rte_cycles.c', 'rte_hypervisor.c')
diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index 56005bea8..b7fc98499 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -15,4 +15,5 @@ common_sources = files(
 	'eal_common_fbarray.c',
 	'eal_common_hexdump.c',
+	'eal_common_hypervisor.c',
 	'eal_common_launch.c',
 	'eal_common_lcore.c',
@@ -60,4 +61,5 @@ common_headers = files(
 	'include/rte_fbarray.h',
 	'include/rte_hexdump.h',
+	'include/rte_hypervisor.h',
 	'include/rte_interrupts.h',
 	'include/rte_keepalive.h',
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.376310190 +0000
+++ 0038-eal-include-missing-hypervisor-files-in-meson.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,12 +1,13 @@
-From 888904417d396a4b10ff673588b68b7e6ccccf64 Mon Sep 17 00:00:00 2001
+From e541d3195cc60682116bcbadf185bf8cb0807c0f Mon Sep 17 00:00:00 2001
 From: Luca Boccassi <bluca@debian.org>
 Date: Mon, 17 Sep 2018 10:01:24 +0100
 Subject: [PATCH] eal: include missing hypervisor files in meson
 
+[ upstream commit 888904417d396a4b10ff673588b68b7e6ccccf64 ]
+
 They are built by the legacy makefiles but not by Meson.
 
 Fixes: 8f40ee0734c8 ("eal/x86: get hypervisor name")
-Cc: stable@dpdk.org
 
 Signed-off-by: Luca Boccassi <bluca@debian.org>
 Acked-by: Bruce Richardson <bruce.richardson@intel.com>

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

* [dpdk-stable] patch 'raw/ifpga: use -Wno-error=format-security for meson' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (36 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'eal: include missing hypervisor files in " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
                   ` (22 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Luca Boccassi; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 92fcd87e5ad3485a1bb96a84c52e15bb70924d60 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Mon, 17 Sep 2018 10:01:25 +0100
Subject: [PATCH] raw/ifpga: use -Wno-error=format-security for meson

[ upstream commit fd5a5cf7a9a477be57c075140e49b7dce5102c68 ]

This PMD is built with -Wno-format, which means GCC errors out if
-Wformat-security is used.

Fixes: 56bb54ea1bdf ("raw/ifpga/base: add Intel FPGA OPAE share code")

Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/raw/ifpga_rawdev/base/meson.build | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/raw/ifpga_rawdev/base/meson.build b/drivers/raw/ifpga_rawdev/base/meson.build
index cb6553521..03f5112ca 100644
--- a/drivers/raw/ifpga_rawdev/base/meson.build
+++ b/drivers/raw/ifpga_rawdev/base/meson.build
@@ -19,6 +19,6 @@ sources = [
 
 error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
-		'-Wno-format', '-Wno-unused-but-set-variable',
-		'-Wno-strict-aliasing'
+		'-Wno-format', '-Wno-error=format-security',
+		'-Wno-strict-aliasing', '-Wno-unused-but-set-variable'
 ]
 c_args = cflags
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.397666737 +0000
+++ 0039-raw-ifpga-use-Wno-error-format-security-for-meson.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From fd5a5cf7a9a477be57c075140e49b7dce5102c68 Mon Sep 17 00:00:00 2001
+From 92fcd87e5ad3485a1bb96a84c52e15bb70924d60 Mon Sep 17 00:00:00 2001
 From: Luca Boccassi <bluca@debian.org>
 Date: Mon, 17 Sep 2018 10:01:25 +0100
 Subject: [PATCH] raw/ifpga: use -Wno-error=format-security for meson
 
+[ upstream commit fd5a5cf7a9a477be57c075140e49b7dce5102c68 ]
+
 This PMD is built with -Wno-format, which means GCC errors out if
 -Wformat-security is used.
 
 Fixes: 56bb54ea1bdf ("raw/ifpga/base: add Intel FPGA OPAE share code")
-Cc: stable@dpdk.org
 
 Signed-off-by: Luca Boccassi <bluca@debian.org>
 Acked-by: Bruce Richardson <bruce.richardson@intel.com>

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

* [dpdk-stable] patch 'net/i40e: use -Wno-error=format-security for meson' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (37 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'raw/ifpga: use -Wno-error=format-security for " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'igb_uio: install module when building with " Kevin Traynor
                   ` (21 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Luca Boccassi; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 0cc95beb71a906b1ae3878a93ebd529ed3e92c36 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Mon, 17 Sep 2018 10:01:26 +0100
Subject: [PATCH] net/i40e: use -Wno-error=format-security for meson

[ upstream commit 60bd13a29671cda0f48ed154c6a95f7f21f83326 ]

This PMD is built with -Wno-format, which means GCC errors out if
-Wformat-security is used.

Fixes: e940646b20fa ("drivers/net: build Intel NIC PMDs with meson")

Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/i40e/base/meson.build | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/i40e/base/meson.build b/drivers/net/i40e/base/meson.build
index 401a1477f..e6163eaa6 100644
--- a/drivers/net/i40e/base/meson.build
+++ b/drivers/net/i40e/base/meson.build
@@ -13,6 +13,6 @@ sources = [
 
 error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
-		'-Wno-format', '-Wno-unused-but-set-variable',
-		'-Wno-strict-aliasing'
+		'-Wno-format', '-Wno-error=format-security',
+		'-Wno-strict-aliasing', '-Wno-unused-but-set-variable'
 ]
 c_args = cflags
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.420902901 +0000
+++ 0040-net-i40e-use-Wno-error-format-security-for-meson.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From 60bd13a29671cda0f48ed154c6a95f7f21f83326 Mon Sep 17 00:00:00 2001
+From 0cc95beb71a906b1ae3878a93ebd529ed3e92c36 Mon Sep 17 00:00:00 2001
 From: Luca Boccassi <bluca@debian.org>
 Date: Mon, 17 Sep 2018 10:01:26 +0100
 Subject: [PATCH] net/i40e: use -Wno-error=format-security for meson
 
+[ upstream commit 60bd13a29671cda0f48ed154c6a95f7f21f83326 ]
+
 This PMD is built with -Wno-format, which means GCC errors out if
 -Wformat-security is used.
 
 Fixes: e940646b20fa ("drivers/net: build Intel NIC PMDs with meson")
-Cc: stable@dpdk.org
 
 Signed-off-by: Luca Boccassi <bluca@debian.org>
 Acked-by: Bruce Richardson <bruce.richardson@intel.com>

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

* [dpdk-stable] patch 'igb_uio: install module when building with meson' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (38 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'build: create relative symlinks for PMDs in libdir' " Kevin Traynor
                   ` (20 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Luca Boccassi; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From bb8585fd78d2fa3294334f414ae51eb9df8d9381 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Mon, 17 Sep 2018 10:01:27 +0100
Subject: [PATCH] igb_uio: install module when building with meson

[ upstream commit e0974f31c62403d54c5a13d1e53b4ad5dc31c5b0 ]

Install in $kerneldir/../extra/dpdk. Usually $kerneldir should something
like: /lib/modules/$kver/build, so this directory will match the default
one used by legacy makefiles.

Fixes: a52f4574f798 ("igb_uio: build with meson")

Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 kernel/linux/igb_uio/meson.build | 2 ++
 meson_options.txt                | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build
index 71ed2e7a8..f5a9d5ccf 100644
--- a/kernel/linux/igb_uio/meson.build
+++ b/kernel/linux/igb_uio/meson.build
@@ -16,3 +16,5 @@ custom_target('igb_uio',
 		'modules'],
 	depends: mkfile,
+	install: true,
+	install_dir: kernel_dir + '/../extra/dpdk',
 	build_by_default: get_option('enable_kmods'))
diff --git a/meson_options.txt b/meson_options.txt
index c84327858..f20887212 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -8,5 +8,5 @@ option('include_subdir_arch', type: 'string', value: '',
 	description: 'subdirectory where to install arch-dependent headers')
 option('kernel_dir', type: 'string', value: '',
-	description: 'path to the kernel for building kernel modules')
+	description: 'path to the kernel for building kernel modules, they will be installed in $DEST_DIR/$kernel_dir/../extra/dpdk')
 option('lib_musdk_dir', type: 'string', value: '',
 	description: 'path to the MUSDK library installation directory')
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.442431546 +0000
+++ 0041-igb_uio-install-module-when-building-with-meson.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,14 +1,15 @@
-From e0974f31c62403d54c5a13d1e53b4ad5dc31c5b0 Mon Sep 17 00:00:00 2001
+From bb8585fd78d2fa3294334f414ae51eb9df8d9381 Mon Sep 17 00:00:00 2001
 From: Luca Boccassi <bluca@debian.org>
 Date: Mon, 17 Sep 2018 10:01:27 +0100
 Subject: [PATCH] igb_uio: install module when building with meson
 
+[ upstream commit e0974f31c62403d54c5a13d1e53b4ad5dc31c5b0 ]
+
 Install in $kerneldir/../extra/dpdk. Usually $kerneldir should something
 like: /lib/modules/$kver/build, so this directory will match the default
 one used by legacy makefiles.
 
 Fixes: a52f4574f798 ("igb_uio: build with meson")
-Cc: stable@dpdk.org
 
 Signed-off-by: Luca Boccassi <bluca@debian.org>
 Acked-by: Bruce Richardson <bruce.richardson@intel.com>

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

* [dpdk-stable] patch 'build: create relative symlinks for PMDs in libdir' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (39 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'igb_uio: install module when building with " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'pdump: remove dependency on libpthread' " Kevin Traynor
                   ` (19 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Luca Boccassi; +Cc: Timothy Redaelli, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 520f1e2d9cd6c6b17e9bcd8f8beed907b3746746 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Wed, 12 Sep 2018 18:21:34 +0100
Subject: [PATCH] build: create relative symlinks for PMDs in libdir

[ upstream commit 983f08969656128bc64a36ce70de6cb44e7bd070 ]

Add -r option to ln, otherwise the link will be absolute and contain
the build path and break packaging among other things:

lrwxrwxrwx 1 bluca bluca     99 Sep 11 22:17 librte_mempool_dpaa.so.1.1
  -> /home/bluca/git/dpdk/testt4//usr/local/lib/x86_64-linux-gnu/dpdk/
     drivers/librte_mempool_dpaa.so.1.1

With -r:

lrwxrwxrwx 1 bluca bluca     35 Sep 12 18:13 librte_pmd_zlib.so.1.1
  -> dpdk/drivers/librte_pmd_zlib.so.1.1

Fixes: ed4d43d73e2b ("build: symlink drivers to library directory")

Signed-off-by: Luca Boccassi <bluca@debian.org>
Tested-by: Timothy Redaelli <tredaelli@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 buildtools/symlink-drivers-solibs.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/buildtools/symlink-drivers-solibs.sh b/buildtools/symlink-drivers-solibs.sh
index 803dfec49..9826c6ae3 100644
--- a/buildtools/symlink-drivers-solibs.sh
+++ b/buildtools/symlink-drivers-solibs.sh
@@ -10,3 +10,3 @@
 # 1. directory containing driver files e.g. lib64/dpdk/drivers
 # 2. directory for installed regular libs e.g. lib64
-ln -sf ${DESTDIR}/${MESON_INSTALL_PREFIX}/$1/* ${DESTDIR}/${MESON_INSTALL_PREFIX}/$2
+ln -rsf ${DESTDIR}/${MESON_INSTALL_PREFIX}/$1/* ${DESTDIR}/${MESON_INSTALL_PREFIX}/$2
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.464445439 +0000
+++ 0042-build-create-relative-symlinks-for-PMDs-in-libdir.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 983f08969656128bc64a36ce70de6cb44e7bd070 Mon Sep 17 00:00:00 2001
+From 520f1e2d9cd6c6b17e9bcd8f8beed907b3746746 Mon Sep 17 00:00:00 2001
 From: Luca Boccassi <bluca@debian.org>
 Date: Wed, 12 Sep 2018 18:21:34 +0100
 Subject: [PATCH] build: create relative symlinks for PMDs in libdir
 
+[ upstream commit 983f08969656128bc64a36ce70de6cb44e7bd070 ]
+
 Add -r option to ln, otherwise the link will be absolute and contain
 the build path and break packaging among other things:
 
@@ -16,7 +18,6 @@
   -> dpdk/drivers/librte_pmd_zlib.so.1.1
 
 Fixes: ed4d43d73e2b ("build: symlink drivers to library directory")
-Cc: stable@dpdk.org
 
 Signed-off-by: Luca Boccassi <bluca@debian.org>
 Tested-by: Timothy Redaelli <tredaelli@redhat.com>

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

* [dpdk-stable] patch 'pdump: remove dependency on libpthread' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (40 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'build: create relative symlinks for PMDs in libdir' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'fbarray: fix detach in --no-shconf mode' " Kevin Traynor
                   ` (18 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Reshma Pattan; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 3a9321226ab8d4eebadd02d439a054df69e4c2c4 Mon Sep 17 00:00:00 2001
From: Reshma Pattan <reshma.pattan@intel.com>
Date: Tue, 7 Aug 2018 15:41:17 +0100
Subject: [PATCH] pdump: remove dependency on libpthread

[ upstream commit 2c6c3e0dc8d19b7b2fa67f23ea20b3cf7d2f8f0c ]

pdump library now uses generic multi process channel
and it is no more dependent on the pthreads, so remove
the dependency from the Makefile.

Fixes: 660098d61f57 ("pdump: use generic multi-process channel")

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
---
 lib/librte_pdump/Makefile | 1 -
 1 file changed, 1 deletion(-)

diff --git a/lib/librte_pdump/Makefile b/lib/librte_pdump/Makefile
index 0ee0fa1a6..ee14dba7a 100644
--- a/lib/librte_pdump/Makefile
+++ b/lib/librte_pdump/Makefile
@@ -10,5 +10,4 @@ CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 CFLAGS += -D_GNU_SOURCE
-LDLIBS += -lpthread
 LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.485414919 +0000
+++ 0043-pdump-remove-dependency-on-libpthread.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,14 +1,15 @@
-From 2c6c3e0dc8d19b7b2fa67f23ea20b3cf7d2f8f0c Mon Sep 17 00:00:00 2001
+From 3a9321226ab8d4eebadd02d439a054df69e4c2c4 Mon Sep 17 00:00:00 2001
 From: Reshma Pattan <reshma.pattan@intel.com>
 Date: Tue, 7 Aug 2018 15:41:17 +0100
 Subject: [PATCH] pdump: remove dependency on libpthread
 
+[ upstream commit 2c6c3e0dc8d19b7b2fa67f23ea20b3cf7d2f8f0c ]
+
 pdump library now uses generic multi process channel
 and it is no more dependent on the pthreads, so remove
 the dependency from the Makefile.
 
 Fixes: 660098d61f57 ("pdump: use generic multi-process channel")
-Cc: stable@dpdk.org
 
 Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
 ---

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

* [dpdk-stable] patch 'fbarray: fix detach in --no-shconf mode' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (41 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'pdump: remove dependency on libpthread' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'eal: do not allow legacy mode with --in-memory " Kevin Traynor
                   ` (17 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From be131f6ef3cde02669ade07c56b396ca66e22330 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Tue, 4 Sep 2018 16:15:42 +0100
Subject: [PATCH] fbarray: fix detach in --no-shconf mode

[ upstream commit 310aa7c04143105200fd81ae3e5f680e22c9bb6a ]

In noshconf mode, no shared files are created, but we're still trying
to unlink them, resulting in detach/destroy failure even though it
should have succeeded. Fix it by exiting early in noshconf mode.

Fixes: 3ee2cde248a7 ("fbarray: support --no-shconf mode")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_eal/common/eal_common_fbarray.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/librte_eal/common/eal_common_fbarray.c b/lib/librte_eal/common/eal_common_fbarray.c
index 43caf3ced..ba6c4ae39 100644
--- a/lib/librte_eal/common/eal_common_fbarray.c
+++ b/lib/librte_eal/common/eal_common_fbarray.c
@@ -879,4 +879,8 @@ rte_fbarray_destroy(struct rte_fbarray *arr)
 		return ret;
 
+	/* with no shconf, there were never any files to begin with */
+	if (internal_config.no_shconf)
+		return 0;
+
 	/* try deleting the file */
 	eal_get_fbarray_path(path, sizeof(path), arr->name);
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.506229017 +0000
+++ 0044-fbarray-fix-detach-in-no-shconf-mode.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,14 +1,15 @@
-From 310aa7c04143105200fd81ae3e5f680e22c9bb6a Mon Sep 17 00:00:00 2001
+From be131f6ef3cde02669ade07c56b396ca66e22330 Mon Sep 17 00:00:00 2001
 From: Anatoly Burakov <anatoly.burakov@intel.com>
 Date: Tue, 4 Sep 2018 16:15:42 +0100
 Subject: [PATCH] fbarray: fix detach in --no-shconf mode
 
+[ upstream commit 310aa7c04143105200fd81ae3e5f680e22c9bb6a ]
+
 In noshconf mode, no shared files are created, but we're still trying
 to unlink them, resulting in detach/destroy failure even though it
 should have succeeded. Fix it by exiting early in noshconf mode.
 
 Fixes: 3ee2cde248a7 ("fbarray: support --no-shconf mode")
-Cc: stable@dpdk.org
 
 Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
 Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

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

* [dpdk-stable] patch 'eal: do not allow legacy mode with --in-memory mode' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (42 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'fbarray: fix detach in --no-shconf mode' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Kevin Traynor
                   ` (16 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From c65f87875f90b0bb0c8e54f1a7f9fca3d8a3d901 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Tue, 4 Sep 2018 16:15:43 +0100
Subject: [PATCH] eal: do not allow legacy mode with --in-memory mode

[ upstream commit d4ce95d6b40a91c662dcba3d6faa0f15c8c09afb ]

In-memory mode was never meant to support legacy mode, because we
cannot sort anonymous pages anyway.

Fixes: 72b49ff623c4 ("mem: support --in-memory mode")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/librte_eal/common/eal_common_options.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index dd5f97402..873099acc 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -1391,4 +1391,10 @@ eal_check_common_options(struct internal_config *internal_cfg)
 		return -1;
 	}
+	if (internal_cfg->legacy_mem &&
+			internal_cfg->in_memory) {
+		RTE_LOG(ERR, EAL, "Option --"OPT_LEGACY_MEM" is not compatible "
+				"with --"OPT_IN_MEMORY"\n");
+		return -1;
+	}
 
 	return 0;
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.528695450 +0000
+++ 0045-eal-do-not-allow-legacy-mode-with-in-memory-mode.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From d4ce95d6b40a91c662dcba3d6faa0f15c8c09afb Mon Sep 17 00:00:00 2001
+From c65f87875f90b0bb0c8e54f1a7f9fca3d8a3d901 Mon Sep 17 00:00:00 2001
 From: Anatoly Burakov <anatoly.burakov@intel.com>
 Date: Tue, 4 Sep 2018 16:15:43 +0100
 Subject: [PATCH] eal: do not allow legacy mode with --in-memory mode
 
+[ upstream commit d4ce95d6b40a91c662dcba3d6faa0f15c8c09afb ]
+
 In-memory mode was never meant to support legacy mode, because we
 cannot sort anonymous pages anyway.
 
 Fixes: 72b49ff623c4 ("mem: support --in-memory mode")
-Cc: stable@dpdk.org
 
 Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
 Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

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

* [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (43 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'eal: do not allow legacy mode with --in-memory " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'config: remove unused parameter' " Kevin Traynor
                   ` (15 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Phil Yang; +Cc: Gavin Hu, Bernard Iremonger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From a145f78370a0d0b0cf7fcc1d2e9233d13d90af92 Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Wed, 12 Sep 2018 09:54:26 +0800
Subject: [PATCH] app/testpmd: optimize mbuf pool allocation

[ upstream commit dbfb8ec7094c7115c6d620929de2aedfc9e440aa ]

By default, testpmd will create membuf pool for all NUMA nodes and
ignore EAL configuration.

Count the number of available NUMA according to EAL core mask or core
list configuration. Optimized by only creating membuf pool for those
nodes.

Fixes: c9cafcc82de8 ("app/testpmd: fix mempool creation by socket id")

Signed-off-by: Phil Yang <phil.yang@arm.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
 app/test-pmd/testpmd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index ee48db2a3..a56af2b5c 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -477,4 +477,6 @@ set_default_fwd_lcores_config(void)
 	nb_lc = 0;
 	for (i = 0; i < RTE_MAX_LCORE; i++) {
+		if (!rte_lcore_is_enabled(i))
+			continue;
 		sock_num = rte_lcore_to_socket_id(i);
 		if (new_socket_id(sock_num)) {
@@ -486,6 +488,4 @@ set_default_fwd_lcores_config(void)
 			socket_ids[num_sockets++] = sock_num;
 		}
-		if (!rte_lcore_is_enabled(i))
-			continue;
 		if (i == rte_get_master_lcore())
 			continue;
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.550855839 +0000
+++ 0046-app-testpmd-optimize-mbuf-pool-allocation.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From dbfb8ec7094c7115c6d620929de2aedfc9e440aa Mon Sep 17 00:00:00 2001
+From a145f78370a0d0b0cf7fcc1d2e9233d13d90af92 Mon Sep 17 00:00:00 2001
 From: Phil Yang <phil.yang@arm.com>
 Date: Wed, 12 Sep 2018 09:54:26 +0800
 Subject: [PATCH] app/testpmd: optimize mbuf pool allocation
 
+[ upstream commit dbfb8ec7094c7115c6d620929de2aedfc9e440aa ]
+
 By default, testpmd will create membuf pool for all NUMA nodes and
 ignore EAL configuration.
 
@@ -11,7 +13,6 @@
 nodes.
 
 Fixes: c9cafcc82de8 ("app/testpmd: fix mempool creation by socket id")
-Cc: stable@dpdk.org
 
 Signed-off-by: Phil Yang <phil.yang@arm.com>
 Acked-by: Gavin Hu <gavin.hu@arm.com>
@@ -21,17 +22,17 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
-index 571ecb4ac..001f0e552 100644
+index ee48db2a3..a56af2b5c 100644
 --- a/app/test-pmd/testpmd.c
 +++ b/app/test-pmd/testpmd.c
-@@ -476,4 +476,6 @@ set_default_fwd_lcores_config(void)
+@@ -477,4 +477,6 @@ set_default_fwd_lcores_config(void)
  	nb_lc = 0;
  	for (i = 0; i < RTE_MAX_LCORE; i++) {
 +		if (!rte_lcore_is_enabled(i))
 +			continue;
  		sock_num = rte_lcore_to_socket_id(i);
  		if (new_socket_id(sock_num)) {
-@@ -485,6 +487,4 @@ set_default_fwd_lcores_config(void)
+@@ -486,6 +488,4 @@ set_default_fwd_lcores_config(void)
  			socket_ids[num_sockets++] = sock_num;
  		}
 -		if (!rte_lcore_is_enabled(i))

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

* [dpdk-stable] patch 'config: remove unused parameter' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (44 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/e1000: fix queue number in RSS configuration' " Kevin Traynor
                   ` (14 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 4ebebee4e5d63e00290110a26107d1ade80a29f9 Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Mon, 17 Sep 2018 15:39:32 +0800
Subject: [PATCH] config: remove unused parameter

[ upstream commit 3139d3bed781524c55b9e497e58bf17f759a73a3 ]

RTE_LIBRTE_I40E_ITR_INTERVAL is not used. So it should also be removed
in config/rte_config.h for meson+ninja build.

Fixes: 864a800d706d ("net/i40e: remove VF interrupt handler")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 config/rte_config.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/config/rte_config.h b/config/rte_config.h
index 46775a841..9ec77efda 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -110,6 +110,4 @@
 #define RTE_LIBRTE_I40E_QUEUE_NUM_PER_VF 4
 #define RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM 4
-/* interval up to 8160 us, aligned to 2 (or default value) */
-#define RTE_LIBRTE_I40E_ITR_INTERVAL -1
 
 /* Ring net PMD settings */
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.574584586 +0000
+++ 0047-config-remove-unused-parameter.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From 3139d3bed781524c55b9e497e58bf17f759a73a3 Mon Sep 17 00:00:00 2001
+From 4ebebee4e5d63e00290110a26107d1ade80a29f9 Mon Sep 17 00:00:00 2001
 From: Qi Zhang <qi.z.zhang@intel.com>
 Date: Mon, 17 Sep 2018 15:39:32 +0800
 Subject: [PATCH] config: remove unused parameter
 
+[ upstream commit 3139d3bed781524c55b9e497e58bf17f759a73a3 ]
+
 RTE_LIBRTE_I40E_ITR_INTERVAL is not used. So it should also be removed
 in config/rte_config.h for meson+ninja build.
 
 Fixes: 864a800d706d ("net/i40e: remove VF interrupt handler")
-Cc: stable@dpdk.org
 
 Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
 Acked-by: Bruce Richardson <bruce.richardson@intel.com>
@@ -16,7 +17,7 @@
  1 file changed, 2 deletions(-)
 
 diff --git a/config/rte_config.h b/config/rte_config.h
-index ee84f0497..567051b9c 100644
+index 46775a841..9ec77efda 100644
 --- a/config/rte_config.h
 +++ b/config/rte_config.h
 @@ -110,6 +110,4 @@

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

* [dpdk-stable] patch 'net/e1000: fix queue number in RSS configuration' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (45 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'config: remove unused parameter' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/ifc: do not notify before HW ready' " Kevin Traynor
                   ` (13 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Beilei Xing; +Cc: Wei Zhao, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 5df32732bb5df288c0a1723d6fdd7d80c80ed4bf Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing@intel.com>
Date: Thu, 13 Sep 2018 15:06:23 +0800
Subject: [PATCH] net/e1000: fix queue number in RSS configuration

[ upstream commit 2b39bf0f75ab07851f61a298e0280da3d009a9b3 ]

RSS configuration works for all e1000 NICs except 82576.
This patch fixes this issue by correcting queue number
in RSS configuration.

Fixes: 424ae915baf0 ("net/e1000: move RSS to flow API")
Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
---
 drivers/net/e1000/e1000_ethdev.h |  6 ++++--
 drivers/net/e1000/igb_flow.c     | 10 +++++++---
 drivers/net/e1000/igb_rxtx.c     | 12 +++++++++---
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
index 902001f36..94edff08e 100644
--- a/drivers/net/e1000/e1000_ethdev.h
+++ b/drivers/net/e1000/e1000_ethdev.h
@@ -237,5 +237,6 @@ struct igb_rte_flow_rss_conf {
 	struct rte_flow_action_rss conf; /**< RSS parameters. */
 	uint8_t key[IGB_HKEY_MAX_INDEX * sizeof(uint32_t)]; /* Hash key. */
-	uint16_t queue[IGB_MAX_RX_QUEUE_NUM]; /**< Queues indices to use. */
+	/* Queues indices to use. */
+	uint16_t queue[IGB_MAX_RX_QUEUE_NUM_82576];
 };
 
@@ -507,5 +508,6 @@ int eth_igb_add_del_flex_filter(struct rte_eth_dev *dev,
 			struct rte_eth_flex_filter *filter,
 			bool add);
-int igb_rss_conf_init(struct igb_rte_flow_rss_conf *out,
+int igb_rss_conf_init(struct rte_eth_dev *dev,
+		      struct igb_rte_flow_rss_conf *out,
 		      const struct rte_flow_action_rss *in);
 int igb_action_rss_same(const struct rte_flow_action_rss *comp,
diff --git a/drivers/net/e1000/igb_flow.c b/drivers/net/e1000/igb_flow.c
index 073852913..33683498a 100644
--- a/drivers/net/e1000/igb_flow.c
+++ b/drivers/net/e1000/igb_flow.c
@@ -1308,4 +1308,5 @@ igb_parse_rss_filter(struct rte_eth_dev *dev,
 			struct rte_flow_error *error)
 {
+	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	const struct rte_flow_action *act;
 	const struct rte_flow_action_rss *rss;
@@ -1358,9 +1359,12 @@ igb_parse_rss_filter(struct rte_eth_dev *dev,
 			(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION, act,
 			 "RSS hash key must be exactly 40 bytes");
-	if (rss->queue_num > RTE_DIM(rss_conf->queue))
+	if (((hw->mac.type == e1000_82576) &&
+	     (rss->queue_num > IGB_MAX_RX_QUEUE_NUM_82576)) ||
+	    ((hw->mac.type != e1000_82576) &&
+	     (rss->queue_num > IGB_MAX_RX_QUEUE_NUM)))
 		return rte_flow_error_set
 			(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION, act,
 			 "too many queues for RSS context");
-	if (igb_rss_conf_init(rss_conf, rss))
+	if (igb_rss_conf_init(dev, rss_conf, rss))
 		return rte_flow_error_set
 			(error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, act,
@@ -1575,5 +1579,5 @@ igb_flow_create(struct rte_eth_dev *dev,
 				goto out;
 			}
-			igb_rss_conf_init(&rss_filter_ptr->filter_info,
+			igb_rss_conf_init(dev, &rss_filter_ptr->filter_info,
 					  &rss_conf.conf);
 			TAILQ_INSERT_TAIL(&igb_filter_rss_list,
diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index 8aefd976a..e97b244ff 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -2853,9 +2853,15 @@ igb_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
 
 int
-igb_rss_conf_init(struct igb_rte_flow_rss_conf *out,
+igb_rss_conf_init(struct rte_eth_dev *dev,
+		  struct igb_rte_flow_rss_conf *out,
 		  const struct rte_flow_action_rss *in)
 {
+	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+
 	if (in->key_len > RTE_DIM(out->key) ||
-	    in->queue_num > RTE_DIM(out->queue))
+	    ((hw->mac.type == e1000_82576) &&
+	     (in->queue_num > IGB_MAX_RX_QUEUE_NUM_82576)) ||
+	    ((hw->mac.type != e1000_82576) &&
+	     (in->queue_num > IGB_MAX_RX_QUEUE_NUM)))
 		return -EINVAL;
 	out->conf = (struct rte_flow_action_rss){
@@ -2946,5 +2952,5 @@ igb_config_rss_filter(struct rte_eth_dev *dev,
 	igb_hw_rss_hash_set(hw, &rss_conf);
 
-	if (igb_rss_conf_init(&filter_info->rss_info, &conf->conf))
+	if (igb_rss_conf_init(dev, &filter_info->rss_info, &conf->conf))
 		return -EINVAL;
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.596401072 +0000
+++ 0048-net-e1000-fix-queue-number-in-RSS-configuration.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,15 +1,16 @@
-From 2b39bf0f75ab07851f61a298e0280da3d009a9b3 Mon Sep 17 00:00:00 2001
+From 5df32732bb5df288c0a1723d6fdd7d80c80ed4bf Mon Sep 17 00:00:00 2001
 From: Beilei Xing <beilei.xing@intel.com>
 Date: Thu, 13 Sep 2018 15:06:23 +0800
 Subject: [PATCH] net/e1000: fix queue number in RSS configuration
 
+[ upstream commit 2b39bf0f75ab07851f61a298e0280da3d009a9b3 ]
+
 RSS configuration works for all e1000 NICs except 82576.
 This patch fixes this issue by correcting queue number
 in RSS configuration.
 
 Fixes: 424ae915baf0 ("net/e1000: move RSS to flow API")
 Fixes: ac8d22de2394 ("ethdev: flatten RSS configuration in flow API")
-Cc: stable@dpdk.org
 
 Signed-off-by: Beilei Xing <beilei.xing@intel.com>
 Acked-by: Wei Zhao <wei.zhao1@intel.com>
@@ -72,10 +73,10 @@
  					  &rss_conf.conf);
  			TAILQ_INSERT_TAIL(&igb_filter_rss_list,
 diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
-index f2d3d4911..25ff5f68f 100644
+index 8aefd976a..e97b244ff 100644
 --- a/drivers/net/e1000/igb_rxtx.c
 +++ b/drivers/net/e1000/igb_rxtx.c
-@@ -2852,9 +2852,15 @@ igb_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
+@@ -2853,9 +2853,15 @@ igb_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
  
  int
 -igb_rss_conf_init(struct igb_rte_flow_rss_conf *out,
@@ -93,7 +94,7 @@
 +	     (in->queue_num > IGB_MAX_RX_QUEUE_NUM)))
  		return -EINVAL;
  	out->conf = (struct rte_flow_action_rss){
-@@ -2945,5 +2951,5 @@ igb_config_rss_filter(struct rte_eth_dev *dev,
+@@ -2946,5 +2952,5 @@ igb_config_rss_filter(struct rte_eth_dev *dev,
  	igb_hw_rss_hash_set(hw, &rss_conf);
  
 -	if (igb_rss_conf_init(&filter_info->rss_info, &conf->conf))

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

* [dpdk-stable] patch 'net/ifc: do not notify before HW ready' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (46 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/e1000: fix queue number in RSS configuration' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Kevin Traynor
                   ` (12 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Xiao Wang; +Cc: Xiaolong Ye, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From d63e01c1dc8fca3351f121bff3ad2163cd99b398 Mon Sep 17 00:00:00 2001
From: Xiao Wang <xiao.w.wang@intel.com>
Date: Fri, 14 Sep 2018 09:25:17 +0800
Subject: [PATCH] net/ifc: do not notify before HW ready

[ upstream commit 971c19c77c03df51aaea78648908ef269d8e0c42 ]

If the device is not clearly reset by the previous driver and holds
some invalid ring addr, and the relay thread kicks it before HW is
properly re-configured, a bad DMA request may happen.

Besides, the notify_addr which is used by the relay thread is set in
the vdpa_ifcvf_start function, if a kick relay happens before
vdpa_ifcvf_start finishes, a null addr is accessed.

Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")

Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
 drivers/net/ifc/ifcvf_vdpa.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ifc/ifcvf_vdpa.c b/drivers/net/ifc/ifcvf_vdpa.c
index 88d814037..b9d006814 100644
--- a/drivers/net/ifc/ifcvf_vdpa.c
+++ b/drivers/net/ifc/ifcvf_vdpa.c
@@ -470,22 +470,22 @@ update_datapath(struct ifcvf_internal *internal)
 			goto err;
 
-		ret = setup_notify_relay(internal);
-		if (ret)
-			goto err;
-
 		ret = vdpa_ifcvf_start(internal);
 		if (ret)
 			goto err;
 
+		ret = setup_notify_relay(internal);
+		if (ret)
+			goto err;
+
 		rte_atomic32_set(&internal->running, 1);
 	} else if (rte_atomic32_read(&internal->running) &&
 		   (!rte_atomic32_read(&internal->started) ||
 		    !rte_atomic32_read(&internal->dev_attached))) {
-		vdpa_ifcvf_stop(internal);
-
 		ret = unset_notify_relay(internal);
 		if (ret)
 			goto err;
 
+		vdpa_ifcvf_stop(internal);
+
 		ret = vdpa_disable_vfio_intr(internal);
 		if (ret)
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.621666780 +0000
+++ 0049-net-ifc-do-not-notify-before-HW-ready.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 971c19c77c03df51aaea78648908ef269d8e0c42 Mon Sep 17 00:00:00 2001
+From d63e01c1dc8fca3351f121bff3ad2163cd99b398 Mon Sep 17 00:00:00 2001
 From: Xiao Wang <xiao.w.wang@intel.com>
 Date: Fri, 14 Sep 2018 09:25:17 +0800
 Subject: [PATCH] net/ifc: do not notify before HW ready
 
+[ upstream commit 971c19c77c03df51aaea78648908ef269d8e0c42 ]
+
 If the device is not clearly reset by the previous driver and holds
 some invalid ring addr, and the relay thread kicks it before HW is
 properly re-configured, a bad DMA request may happen.
@@ -12,7 +14,6 @@
 vdpa_ifcvf_start finishes, a null addr is accessed.
 
 Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")
-Cc: stable@dpdk.org
 
 Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
 Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>

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

* [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (47 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/ifc: do not notify before HW ready' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix to handle stag update event' " Kevin Traynor
                   ` (11 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Alejandro Lucero; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 6a81b56797da0aeb14a32582c1ef57335dc8577b Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Thu, 6 Sep 2018 17:02:56 +0100
Subject: [PATCH] net/nfp: fix mbuf flags with checksum good

[ upstream commit 0962b51d3c494b30602897731ef9d598e29b4f3b ]

If checksum offload enabled and hardware reports checksum as good,
update mbuf ol_flags with proper *_CKSUM_GOOD bits.

Fixes: b812daadad0d ("nfp: add Rx and Tx")

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
 drivers/net/nfp/nfp_net.c     | 15 +++++++--------
 drivers/net/nfp/nfp_net_pmd.h |  2 ++
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index ee743e975..a588a3fe0 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -1787,7 +1787,9 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
 
 	/* If IPv4 and IP checksum error, fail */
-	if ((rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM) &&
-	    !(rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM_OK))
+	if (unlikely((rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM) &&
+	    !(rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM_OK)))
 		mb->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+	else
+		mb->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
 
 	/* If neither UDP nor TCP return */
@@ -1796,10 +1798,7 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
 		return;
 
-	if ((rxd->rxd.flags & PCIE_DESC_RX_TCP_CSUM) &&
-	    !(rxd->rxd.flags & PCIE_DESC_RX_TCP_CSUM_OK))
-		mb->ol_flags |= PKT_RX_L4_CKSUM_BAD;
-
-	if ((rxd->rxd.flags & PCIE_DESC_RX_UDP_CSUM) &&
-	    !(rxd->rxd.flags & PCIE_DESC_RX_UDP_CSUM_OK))
+	if (likely(rxd->rxd.flags & PCIE_DESC_RX_L4_CSUM_OK))
+		mb->ol_flags |= PKT_RX_L4_CKSUM_GOOD;
+	else
 		mb->ol_flags |= PKT_RX_L4_CKSUM_BAD;
 }
diff --git a/drivers/net/nfp/nfp_net_pmd.h b/drivers/net/nfp/nfp_net_pmd.h
index c1b044eea..b01036df2 100644
--- a/drivers/net/nfp/nfp_net_pmd.h
+++ b/drivers/net/nfp/nfp_net_pmd.h
@@ -294,4 +294,6 @@ struct nfp_net_txq {
 #define PCIE_DESC_RX_VLAN               (1 <<  0)
 
+#define PCIE_DESC_RX_L4_CSUM_OK         (PCIE_DESC_RX_TCP_CSUM_OK | \
+					 PCIE_DESC_RX_UDP_CSUM_OK)
 struct nfp_net_rx_desc {
 	union {
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.643099349 +0000
+++ 0050-net-nfp-fix-mbuf-flags-with-checksum-good.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From 0962b51d3c494b30602897731ef9d598e29b4f3b Mon Sep 17 00:00:00 2001
+From 6a81b56797da0aeb14a32582c1ef57335dc8577b Mon Sep 17 00:00:00 2001
 From: Alejandro Lucero <alejandro.lucero@netronome.com>
 Date: Thu, 6 Sep 2018 17:02:56 +0100
 Subject: [PATCH] net/nfp: fix mbuf flags with checksum good
 
+[ upstream commit 0962b51d3c494b30602897731ef9d598e29b4f3b ]
+
 If checksum offload enabled and hardware reports checksum as good,
 update mbuf ol_flags with proper *_CKSUM_GOOD bits.
 
 Fixes: b812daadad0d ("nfp: add Rx and Tx")
-Cc: stable@dpdk.org
 
 Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
 ---
@@ -16,10 +17,10 @@
  2 files changed, 9 insertions(+), 8 deletions(-)
 
 diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
-index 168088c6d..170b5d611 100644
+index ee743e975..a588a3fe0 100644
 --- a/drivers/net/nfp/nfp_net.c
 +++ b/drivers/net/nfp/nfp_net.c
-@@ -1780,7 +1780,9 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
+@@ -1787,7 +1787,9 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
  
  	/* If IPv4 and IP checksum error, fail */
 -	if ((rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM) &&
@@ -31,7 +32,7 @@
 +		mb->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
  
  	/* If neither UDP nor TCP return */
-@@ -1789,10 +1791,7 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
+@@ -1796,10 +1798,7 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
  		return;
  
 -	if ((rxd->rxd.flags & PCIE_DESC_RX_TCP_CSUM) &&

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

* [dpdk-stable] patch 'net/qede/base: fix to handle stag update event' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (48 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix ethernet type in HW registers' " Kevin Traynor
                   ` (10 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Rasesh Mody; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 3dba395fd63c8f986c57a6a05676de3c87ec2ee7 Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rasesh.mody@cavium.com>
Date: Sat, 8 Sep 2018 13:30:50 -0700
Subject: [PATCH] net/qede/base: fix to handle stag update event

[ upstream commit cb71992793940ce5b642d843e07c934a11f3c13b ]

This fix adds a ecore_mcp_update_stag() handler to handle the STAG update
events from management FW and program the STAG value.
It also clears the stag config on PF, when management FW invalidates
the stag value.

Fixes: ec94dbc57362 ("qede: add base driver")

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
 drivers/net/qede/base/bcm_osal.h      |  1 +
 drivers/net/qede/base/ecore_mcp.c     | 46 +++++++++++++++++++++++++++
 drivers/net/qede/base/ecore_mcp_api.h |  4 +++
 drivers/net/qede/base/mcp_public.h    |  1 +
 drivers/net/qede/base/reg_addr.h      |  5 +++
 5 files changed, 57 insertions(+)

diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h
index 630867fad..b43e0b30e 100644
--- a/drivers/net/qede/base/bcm_osal.h
+++ b/drivers/net/qede/base/bcm_osal.h
@@ -448,4 +448,5 @@ u32 qede_crc32(u32 crc, u8 *ptr, u32 length);
 #define OSAL_MFW_TLV_REQ(p_hwfn) nothing
 #define OSAL_MFW_FILL_TLV_DATA(type, buf, data) (0)
+#define OSAL_HW_INFO_CHANGE(p_hwfn, change) nothing
 #define OSAL_MFW_CMD_PREEMPT(p_hwfn) nothing
 #define OSAL_PF_VALIDATE_MODIFY_TUNN_CONFIG(p_hwfn, mask, b_update, tunn) 0
diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecore_mcp.c
index ea14c172f..49963c691 100644
--- a/drivers/net/qede/base/ecore_mcp.c
+++ b/drivers/net/qede/base/ecore_mcp.c
@@ -1657,4 +1657,47 @@ ecore_mcp_update_bw(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt)
 }
 
+static void ecore_mcp_update_stag(struct ecore_hwfn *p_hwfn,
+				  struct ecore_ptt *p_ptt)
+{
+	struct public_func shmem_info;
+	u32 resp = 0, param = 0;
+
+	ecore_mcp_get_shmem_func(p_hwfn, p_ptt, &shmem_info,
+				 MCP_PF_ID(p_hwfn));
+
+	p_hwfn->mcp_info->func_info.ovlan = (u16)shmem_info.ovlan_stag &
+						 FUNC_MF_CFG_OV_STAG_MASK;
+	p_hwfn->hw_info.ovlan = p_hwfn->mcp_info->func_info.ovlan;
+	if (OSAL_TEST_BIT(ECORE_MF_OVLAN_CLSS, &p_hwfn->p_dev->mf_bits)) {
+		if (p_hwfn->hw_info.ovlan != ECORE_MCP_VLAN_UNSET) {
+			ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_VALUE,
+				 p_hwfn->hw_info.ovlan);
+			ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_EN, 1);
+
+			/* Configure DB to add external vlan to EDPM packets */
+			ecore_wr(p_hwfn, p_ptt, DORQ_REG_TAG1_OVRD_MODE, 1);
+			ecore_wr(p_hwfn, p_ptt, DORQ_REG_PF_EXT_VID_BB_K2,
+				 p_hwfn->hw_info.ovlan);
+		} else {
+			ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_EN, 0);
+			ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_VALUE, 0);
+
+			/* Configure DB to add external vlan to EDPM packets */
+			ecore_wr(p_hwfn, p_ptt, DORQ_REG_TAG1_OVRD_MODE, 0);
+			ecore_wr(p_hwfn, p_ptt, DORQ_REG_PF_EXT_VID_BB_K2, 0);
+		}
+
+		ecore_sp_pf_update_stag(p_hwfn);
+	}
+
+	DP_VERBOSE(p_hwfn, ECORE_MSG_SP, "ovlan  = %d hw_mode = 0x%x\n",
+		   p_hwfn->mcp_info->func_info.ovlan, p_hwfn->hw_info.hw_mode);
+	OSAL_HW_INFO_CHANGE(p_hwfn, ECORE_HW_INFO_CHANGE_OVLAN);
+
+	/* Acknowledge the MFW */
+	ecore_mcp_cmd(p_hwfn, p_ptt, DRV_MSG_CODE_S_TAG_UPDATE_ACK, 0,
+		      &resp, &param);
+}
+
 static void ecore_mcp_handle_fan_failure(struct ecore_hwfn *p_hwfn)
 {
@@ -2042,4 +2085,7 @@ enum _ecore_status_t ecore_mcp_handle_events(struct ecore_hwfn *p_hwfn,
 			ecore_mcp_update_bw(p_hwfn, p_ptt);
 			break;
+		case MFW_DRV_MSG_S_TAG_UPDATE:
+			ecore_mcp_update_stag(p_hwfn, p_ptt);
+			break;
 		case MFW_DRV_MSG_FAILURE_DETECTED:
 			ecore_mcp_handle_fan_failure(p_hwfn);
diff --git a/drivers/net/qede/base/ecore_mcp_api.h b/drivers/net/qede/base/ecore_mcp_api.h
index cfb9f99de..8f4efd15f 100644
--- a/drivers/net/qede/base/ecore_mcp_api.h
+++ b/drivers/net/qede/base/ecore_mcp_api.h
@@ -522,4 +522,8 @@ union ecore_mfw_tlv_data {
 };
 
+enum ecore_hw_info_change {
+	ECORE_HW_INFO_CHANGE_OVLAN,
+};
+
 /**
  * @brief - returns the link params of the hw function
diff --git a/drivers/net/qede/base/mcp_public.h b/drivers/net/qede/base/mcp_public.h
index 81aa88e7c..79d9aaef3 100644
--- a/drivers/net/qede/base/mcp_public.h
+++ b/drivers/net/qede/base/mcp_public.h
@@ -1259,4 +1259,5 @@ struct public_drv_mb {
 #define DRV_MSG_GET_RESOURCE_ALLOC_MSG		0x34000000
 #define DRV_MSG_SET_RESOURCE_VALUE_MSG		0x35000000
+#define DRV_MSG_CODE_S_TAG_UPDATE_ACK		0x3b000000
 
 /*deprecated don't use*/
diff --git a/drivers/net/qede/base/reg_addr.h b/drivers/net/qede/base/reg_addr.h
index 402f62043..7ed26fcce 100644
--- a/drivers/net/qede/base/reg_addr.h
+++ b/drivers/net/qede/base/reg_addr.h
@@ -1215,2 +1215,7 @@
 
 #define RSS_REG_RSS_RAM_MASK 0x238c10UL
+
+#define NIG_REG_LLH_FUNC_TAG_EN 0x5019b0UL
+#define NIG_REG_LLH_FUNC_TAG_VALUE 0x5019d0UL
+#define DORQ_REG_TAG1_OVRD_MODE 0x1008b4UL
+#define DORQ_REG_PF_EXT_VID_BB_K2 0x1008c8UL
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.668353130 +0000
+++ 0051-net-qede-base-fix-to-handle-stag-update-event.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,15 +1,16 @@
-From cb71992793940ce5b642d843e07c934a11f3c13b Mon Sep 17 00:00:00 2001
+From 3dba395fd63c8f986c57a6a05676de3c87ec2ee7 Mon Sep 17 00:00:00 2001
 From: Rasesh Mody <rasesh.mody@cavium.com>
 Date: Sat, 8 Sep 2018 13:30:50 -0700
 Subject: [PATCH] net/qede/base: fix to handle stag update event
 
+[ upstream commit cb71992793940ce5b642d843e07c934a11f3c13b ]
+
 This fix adds a ecore_mcp_update_stag() handler to handle the STAG update
 events from management FW and program the STAG value.
 It also clears the stag config on PF, when management FW invalidates
 the stag value.
 
 Fixes: ec94dbc57362 ("qede: add base driver")
-Cc: stable@dpdk.org
 
 Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
 ---

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

* [dpdk-stable] patch 'net/qede: fix ethernet type in HW registers' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (49 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix to handle stag update event' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix logic for sfp get/set' " Kevin Traynor
                   ` (9 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Rasesh Mody; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 3b7ad81c76a8e48197f6bb5898d5f43523b3053a Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rasesh.mody@cavium.com>
Date: Sat, 8 Sep 2018 13:30:53 -0700
Subject: [PATCH] net/qede: fix ethernet type in HW registers

[ upstream commit d5df6159dddadedc1bdc12ec5f1a92a813dc94d3 ]

Fix to program the HW registers with proper ether type.

Fixes: 36f45bce2537 ("net/qede/base: fix to support OVLAN mode")

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
 drivers/net/qede/base/ecore_dev.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c
index 31f1f3ee5..d43c12b86 100644
--- a/drivers/net/qede/base/ecore_dev.c
+++ b/drivers/net/qede/base/ecore_dev.c
@@ -2411,4 +2411,5 @@ enum _ecore_status_t ecore_hw_init(struct ecore_dev *p_dev,
 	struct ecore_hwfn *p_hwfn;
 	enum _ecore_status_t rc = ECORE_SUCCESS;
+	u16 ether_type;
 	int i;
 
@@ -2443,4 +2444,23 @@ enum _ecore_status_t ecore_hw_init(struct ecore_dev *p_dev,
 			return rc;
 
+		if (IS_PF(p_dev) && (OSAL_TEST_BIT(ECORE_MF_8021Q_TAGGING,
+						   &p_dev->mf_bits) ||
+				     OSAL_TEST_BIT(ECORE_MF_8021AD_TAGGING,
+						   &p_dev->mf_bits))) {
+			if (OSAL_TEST_BIT(ECORE_MF_8021Q_TAGGING,
+					  &p_dev->mf_bits))
+				ether_type = ETHER_TYPE_VLAN;
+			else
+				ether_type = ETHER_TYPE_QINQ;
+			STORE_RT_REG(p_hwfn, PRS_REG_TAG_ETHERTYPE_0_RT_OFFSET,
+				     ether_type);
+			STORE_RT_REG(p_hwfn, NIG_REG_TAG_ETHERTYPE_0_RT_OFFSET,
+				     ether_type);
+			STORE_RT_REG(p_hwfn, PBF_REG_TAG_ETHERTYPE_0_RT_OFFSET,
+				     ether_type);
+			STORE_RT_REG(p_hwfn, DORQ_REG_TAG1_ETHERTYPE_RT_OFFSET,
+				     ether_type);
+		}
+
 		ecore_set_spq_block_timeout(p_hwfn, p_params->spq_timeout_ms);
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.698303087 +0000
+++ 0052-net-qede-fix-ethernet-type-in-HW-registers.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,12 +1,13 @@
-From d5df6159dddadedc1bdc12ec5f1a92a813dc94d3 Mon Sep 17 00:00:00 2001
+From 3b7ad81c76a8e48197f6bb5898d5f43523b3053a Mon Sep 17 00:00:00 2001
 From: Rasesh Mody <rasesh.mody@cavium.com>
 Date: Sat, 8 Sep 2018 13:30:53 -0700
 Subject: [PATCH] net/qede: fix ethernet type in HW registers
 
+[ upstream commit d5df6159dddadedc1bdc12ec5f1a92a813dc94d3 ]
+
 Fix to program the HW registers with proper ether type.
 
 Fixes: 36f45bce2537 ("net/qede/base: fix to support OVLAN mode")
-Cc: stable@dpdk.org
 
 Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
 ---
@@ -14,7 +15,7 @@
  1 file changed, 20 insertions(+)
 
 diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c
-index 958d7a067..6302abc1a 100644
+index 31f1f3ee5..d43c12b86 100644
 --- a/drivers/net/qede/base/ecore_dev.c
 +++ b/drivers/net/qede/base/ecore_dev.c
 @@ -2411,4 +2411,5 @@ enum _ecore_status_t ecore_hw_init(struct ecore_dev *p_dev,

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

* [dpdk-stable] patch 'net/qede/base: fix logic for sfp get/set' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (50 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix ethernet type in HW registers' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix flow director for IPv6 filter' " Kevin Traynor
                   ` (8 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Rasesh Mody; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 123956f54fcf9fd43abb2e16f92cfdc4e55abf10 Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rasesh.mody@cavium.com>
Date: Sat, 8 Sep 2018 13:30:56 -0700
Subject: [PATCH] net/qede/base: fix logic for sfp get/set

[ upstream commit 6d1be6d6f8de09ce473fd7c2daa1768125bba647 ]

Fix logic for sfp get rx_los, tx_fault, tx_disable, and sfp set tx_disable.

Fixes: bdc40630a8eb ("net/qede/base: add APIs for xcvr")

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
 drivers/net/qede/base/ecore_mcp.c     | 37 ++++++++++++++++-----------
 drivers/net/qede/base/ecore_mcp_api.h |  2 ++
 2 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecore_mcp.c
index 49963c691..fdcf6fbbe 100644
--- a/drivers/net/qede/base/ecore_mcp.c
+++ b/drivers/net/qede/base/ecore_mcp.c
@@ -2202,6 +2202,8 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn,
 enum _ecore_status_t ecore_mcp_get_transceiver_data(struct ecore_hwfn *p_hwfn,
 						    struct ecore_ptt *p_ptt,
-						    u32 *p_tranceiver_type)
+						    u32 *p_transceiver_state,
+						    u32 *p_transceiver_type)
 {
+	u32 transceiver_info;
 	enum _ecore_status_t rc = ECORE_SUCCESS;
 
@@ -2214,12 +2216,21 @@ enum _ecore_status_t ecore_mcp_get_transceiver_data(struct ecore_hwfn *p_hwfn,
 		return ECORE_BUSY;
 	}
-	if (!p_ptt) {
-		*p_tranceiver_type = ETH_TRANSCEIVER_TYPE_NONE;
-		rc = ECORE_INVAL;
+
+	*p_transceiver_type = ETH_TRANSCEIVER_TYPE_NONE;
+	*p_transceiver_state = ETH_TRANSCEIVER_STATE_UPDATING;
+
+	transceiver_info = ecore_rd(p_hwfn, p_ptt,
+				    p_hwfn->mcp_info->port_addr +
+				    offsetof(struct public_port,
+				    transceiver_data));
+
+	*p_transceiver_state = GET_MFW_FIELD(transceiver_info,
+					     ETH_TRANSCEIVER_STATE);
+
+	if (*p_transceiver_state == ETH_TRANSCEIVER_STATE_PRESENT) {
+		*p_transceiver_type = GET_MFW_FIELD(transceiver_info,
+					    ETH_TRANSCEIVER_TYPE);
 	} else {
-		*p_tranceiver_type = ecore_rd(p_hwfn, p_ptt,
-				p_hwfn->mcp_info->port_addr +
-				offsetof(struct public_port,
-					transceiver_data));
+		*p_transceiver_type = ETH_TRANSCEIVER_TYPE_UNKNOWN;
 	}
 
@@ -2241,13 +2252,9 @@ enum _ecore_status_t ecore_mcp_trans_speed_mask(struct ecore_hwfn *p_hwfn,
 						u32 *p_speed_mask)
 {
-	u32 transceiver_data, transceiver_type, transceiver_state;
+	u32 transceiver_type, transceiver_state;
 
-	ecore_mcp_get_transceiver_data(p_hwfn, p_ptt, &transceiver_data);
+	ecore_mcp_get_transceiver_data(p_hwfn, p_ptt, &transceiver_state,
+				       &transceiver_type);
 
-	transceiver_state = GET_MFW_FIELD(transceiver_data,
-			    ETH_TRANSCEIVER_STATE);
-
-	transceiver_type = GET_MFW_FIELD(transceiver_data,
-			   ETH_TRANSCEIVER_TYPE);
 
 	if (is_transceiver_ready(transceiver_state, transceiver_type) == 0)
diff --git a/drivers/net/qede/base/ecore_mcp_api.h b/drivers/net/qede/base/ecore_mcp_api.h
index 8f4efd15f..e8b788146 100644
--- a/drivers/net/qede/base/ecore_mcp_api.h
+++ b/drivers/net/qede/base/ecore_mcp_api.h
@@ -602,4 +602,5 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn,
  * @param p_dev      - ecore dev pointer
  * @param p_ptt
+ * @param p_transceiver_state - transceiver state.
  * @param p_transceiver_type - media type value
  *
@@ -610,4 +611,5 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn,
 enum _ecore_status_t ecore_mcp_get_transceiver_data(struct ecore_hwfn *p_hwfn,
 						    struct ecore_ptt *p_ptt,
+						    u32 *p_transceiver_state,
 						    u32 *p_tranceiver_type);
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.725272421 +0000
+++ 0053-net-qede-base-fix-logic-for-sfp-get-set.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,12 +1,13 @@
-From 6d1be6d6f8de09ce473fd7c2daa1768125bba647 Mon Sep 17 00:00:00 2001
+From 123956f54fcf9fd43abb2e16f92cfdc4e55abf10 Mon Sep 17 00:00:00 2001
 From: Rasesh Mody <rasesh.mody@cavium.com>
 Date: Sat, 8 Sep 2018 13:30:56 -0700
 Subject: [PATCH] net/qede/base: fix logic for sfp get/set
 
+[ upstream commit 6d1be6d6f8de09ce473fd7c2daa1768125bba647 ]
+
 Fix logic for sfp get rx_los, tx_fault, tx_disable, and sfp set tx_disable.
 
 Fixes: bdc40630a8eb ("net/qede/base: add APIs for xcvr")
-Cc: stable@dpdk.org
 
 Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
 ---
@@ -15,7 +16,7 @@
  2 files changed, 24 insertions(+), 15 deletions(-)
 
 diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecore_mcp.c
-index 1b6eb9430..ea71d07d0 100644
+index 49963c691..fdcf6fbbe 100644
 --- a/drivers/net/qede/base/ecore_mcp.c
 +++ b/drivers/net/qede/base/ecore_mcp.c
 @@ -2202,6 +2202,8 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn,
@@ -75,16 +76,16 @@
  
  	if (is_transceiver_ready(transceiver_state, transceiver_type) == 0)
 diff --git a/drivers/net/qede/base/ecore_mcp_api.h b/drivers/net/qede/base/ecore_mcp_api.h
-index 0103293ed..4098bae3e 100644
+index 8f4efd15f..e8b788146 100644
 --- a/drivers/net/qede/base/ecore_mcp_api.h
 +++ b/drivers/net/qede/base/ecore_mcp_api.h
-@@ -608,4 +608,5 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn,
+@@ -602,4 +602,5 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn,
   * @param p_dev      - ecore dev pointer
   * @param p_ptt
 + * @param p_transceiver_state - transceiver state.
   * @param p_transceiver_type - media type value
   *
-@@ -616,4 +617,5 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn,
+@@ -610,4 +611,5 @@ enum _ecore_status_t ecore_mcp_get_media_type(struct ecore_hwfn *p_hwfn,
  enum _ecore_status_t ecore_mcp_get_transceiver_data(struct ecore_hwfn *p_hwfn,
  						    struct ecore_ptt *p_ptt,
 +						    u32 *p_transceiver_state,

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

* [dpdk-stable] patch 'net/qede: fix flow director for IPv6 filter' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (51 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix logic for sfp get/set' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix Rx buffer size calculation' " Kevin Traynor
                   ` (7 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From ca9003cfcf89dee0030ddd60c5b179fe25a1cb52 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shahed.shaikh@cavium.com>
Date: Sat, 8 Sep 2018 13:31:00 -0700
Subject: [PATCH] net/qede: fix flow director for IPv6 filter

[ upstream commit 7ffef6292b6d49fabbbc120663e433442146e263 ]

- PMD does not fill vtc_flow field of IPv6 header while
  constructing a packet for IPv6 filter. Hence filter was
  not getting applied properly.
- IPv6 addresses got swapped while copying src and dst addresses.
- Same issue with UDP and TCP port ids.

Fixes: 622075356e8f ("net/qede: support ntuple and flow director filter")

Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
---
 drivers/net/qede/qede_fdir.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/net/qede/qede_fdir.c b/drivers/net/qede/qede_fdir.c
index 83580d04b..688f31ada 100644
--- a/drivers/net/qede/qede_fdir.c
+++ b/drivers/net/qede/qede_fdir.c
@@ -17,4 +17,5 @@
 #define QEDE_FDIR_TCP_DEFAULT_DATAOFF		(0x50)
 #define QEDE_FDIR_IPV4_DEF_TTL			(64)
+#define QEDE_FDIR_IPV6_DEFAULT_VTC_FLOW		(0x60000000)
 
 /* Sum of length of header types of L2, L3, L4.
@@ -339,9 +340,13 @@ qede_fdir_construct_pkt(struct rte_eth_dev *eth_dev,
 					input->flow.ipv6_flow.proto :
 					next_proto[input->flow_type];
-		rte_memcpy(&ip6->src_addr, &input->flow.ipv6_flow.dst_ip,
+		ip6->vtc_flow =
+			rte_cpu_to_be_32(QEDE_FDIR_IPV6_DEFAULT_VTC_FLOW);
+
+		rte_memcpy(&ip6->src_addr, &input->flow.ipv6_flow.src_ip,
 			   IPV6_ADDR_LEN);
-		rte_memcpy(&ip6->dst_addr, &input->flow.ipv6_flow.src_ip,
+		rte_memcpy(&ip6->dst_addr, &input->flow.ipv6_flow.dst_ip,
 			   IPV6_ADDR_LEN);
 		len += sizeof(struct ipv6_hdr);
+		params->ipv6 = true;
 
 		raw_pkt = (uint8_t *)buff;
@@ -349,12 +354,12 @@ qede_fdir_construct_pkt(struct rte_eth_dev *eth_dev,
 		if (input->flow_type == RTE_ETH_FLOW_NONFRAG_IPV6_UDP) {
 			udp = (struct udp_hdr *)(raw_pkt + len);
-			udp->src_port = input->flow.udp6_flow.dst_port;
-			udp->dst_port = input->flow.udp6_flow.src_port;
+			udp->src_port = input->flow.udp6_flow.src_port;
+			udp->dst_port = input->flow.udp6_flow.dst_port;
 			len += sizeof(struct udp_hdr);
 			params->udp = true;
 		} else { /* TCP */
 			tcp = (struct tcp_hdr *)(raw_pkt + len);
-			tcp->src_port = input->flow.tcp4_flow.src_port;
-			tcp->dst_port = input->flow.tcp4_flow.dst_port;
+			tcp->src_port = input->flow.tcp6_flow.src_port;
+			tcp->dst_port = input->flow.tcp6_flow.dst_port;
 			tcp->data_off = QEDE_FDIR_TCP_DEFAULT_DATAOFF;
 			len += sizeof(struct tcp_hdr);
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.750608184 +0000
+++ 0054-net-qede-fix-flow-director-for-IPv6-filter.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 7ffef6292b6d49fabbbc120663e433442146e263 Mon Sep 17 00:00:00 2001
+From ca9003cfcf89dee0030ddd60c5b179fe25a1cb52 Mon Sep 17 00:00:00 2001
 From: Shahed Shaikh <shahed.shaikh@cavium.com>
 Date: Sat, 8 Sep 2018 13:31:00 -0700
 Subject: [PATCH] net/qede: fix flow director for IPv6 filter
 
+[ upstream commit 7ffef6292b6d49fabbbc120663e433442146e263 ]
+
 - PMD does not fill vtc_flow field of IPv6 header while
   constructing a packet for IPv6 filter. Hence filter was
   not getting applied properly.
@@ -10,25 +12,23 @@
 - Same issue with UDP and TCP port ids.
 
 Fixes: 622075356e8f ("net/qede: support ntuple and flow director filter")
-Cc: stable@dpdk.org
 
 Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
 ---
- drivers/net/qede/qede_filter.c | 18 +++++++++++-------
- 1 file changed, 11 insertions(+), 7 deletions(-)
+ drivers/net/qede/qede_fdir.c | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
 
-diff --git a/drivers/net/qede/qede_filter.c b/drivers/net/qede/qede_filter.c
-index b8460a086..4b709e64b 100644
---- a/drivers/net/qede/qede_filter.c
-+++ b/drivers/net/qede/qede_filter.c
-@@ -122,5 +122,5 @@ const struct _qede_udp_tunn_types {
+diff --git a/drivers/net/qede/qede_fdir.c b/drivers/net/qede/qede_fdir.c
+index 83580d04b..688f31ada 100644
+--- a/drivers/net/qede/qede_fdir.c
++++ b/drivers/net/qede/qede_fdir.c
+@@ -17,4 +17,5 @@
  #define QEDE_FDIR_TCP_DEFAULT_DATAOFF		(0x50)
  #define QEDE_FDIR_IPV4_DEF_TTL			(64)
--
 +#define QEDE_FDIR_IPV6_DEFAULT_VTC_FLOW		(0x60000000)
+ 
  /* Sum of length of header types of L2, L3, L4.
-  * L2 : ether_hdr + vlan_hdr + vxlan_hdr
-@@ -446,9 +446,13 @@ qede_fdir_construct_pkt(struct rte_eth_dev *eth_dev,
+@@ -339,9 +340,13 @@ qede_fdir_construct_pkt(struct rte_eth_dev *eth_dev,
  					input->flow.ipv6_flow.proto :
  					next_proto[input->flow_type];
 -		rte_memcpy(&ip6->src_addr, &input->flow.ipv6_flow.dst_ip,
@@ -44,7 +44,7 @@
 +		params->ipv6 = true;
  
  		raw_pkt = (uint8_t *)buff;
-@@ -456,12 +460,12 @@ qede_fdir_construct_pkt(struct rte_eth_dev *eth_dev,
+@@ -349,12 +354,12 @@ qede_fdir_construct_pkt(struct rte_eth_dev *eth_dev,
  		if (input->flow_type == RTE_ETH_FLOW_NONFRAG_IPV6_UDP) {
  			udp = (struct udp_hdr *)(raw_pkt + len);
 -			udp->src_port = input->flow.udp6_flow.dst_port;

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

* [dpdk-stable] patch 'net/qede: fix Rx buffer size calculation' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (52 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix flow director for IPv6 filter' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix MFW FLR flow' " Kevin Traynor
                   ` (6 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From b5829a0470611b1e0bac0413f91ac6996447731d Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shahed.shaikh@cavium.com>
Date: Sat, 8 Sep 2018 13:31:03 -0700
Subject: [PATCH] net/qede: fix Rx buffer size calculation

[ upstream commit 318d7da3122bac04772418c5eda9f50fcd175d18 ]

 - HW does not include CRC in received frame when passed to host,
   so no need to consider CRC length while calculating Rx buffer size.
 - In scattered Rx mode, driver may allocate Rx buffer larger than
   the size of mbuf because it tries to adjust the buffer size to cache
   line size by ceiling it. Fix this by flooring the size instead of
   ceiling.
 - Consider the rule imposed by HW regarding the minimum size of Rx buffer
   in scattered Rx mode -
   (MTU + Maximum L2 Header Size + 2) / ETH_RX_MAX_BUFF_PER_PKT

Fixes: f6033f2497e7 ("net/qede: fix minimum buffer size and scatter Rx check")

Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
---
 drivers/net/qede/qede_ethdev.c | 28 ++++++++--------
 drivers/net/qede/qede_rxtx.c   | 59 ++++++++++++++++++++++++++++++----
 drivers/net/qede/qede_rxtx.h   | 15 +++++++--
 3 files changed, 78 insertions(+), 24 deletions(-)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index df52ea928..bd906b293 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -1484,5 +1484,5 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
 		eth_dev->data->mtu =
 			eth_dev->data->dev_conf.rxmode.max_rx_pkt_len -
-			ETHER_HDR_LEN - ETHER_CRC_LEN;
+			ETHER_HDR_LEN - QEDE_ETH_OVERHEAD;
 
 	if (rxmode->offloads & DEV_RX_OFFLOAD_SCATTER)
@@ -2500,17 +2500,16 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
 	uint32_t max_rx_pkt_len;
 	uint32_t frame_size;
-	uint16_t rx_buf_size;
 	uint16_t bufsz;
 	bool restart = false;
-	int i;
+	int i, rc;
 
 	PMD_INIT_FUNC_TRACE(edev);
 	qede_dev_info_get(dev, &dev_info);
-	max_rx_pkt_len = mtu + ETHER_HDR_LEN + ETHER_CRC_LEN;
-	frame_size = max_rx_pkt_len + QEDE_ETH_OVERHEAD;
+	max_rx_pkt_len = mtu + QEDE_MAX_ETHER_HDR_LEN;
+	frame_size = max_rx_pkt_len;
 	if ((mtu < ETHER_MIN_MTU) || (frame_size > dev_info.max_rx_pktlen)) {
 		DP_ERR(edev, "MTU %u out of range, %u is maximum allowable\n",
 		       mtu, dev_info.max_rx_pktlen - ETHER_HDR_LEN -
-			ETHER_CRC_LEN - QEDE_ETH_OVERHEAD);
+		       QEDE_ETH_OVERHEAD);
 		return -EINVAL;
 	}
@@ -2540,12 +2539,13 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
 			bufsz = (uint16_t)rte_pktmbuf_data_room_size(
 				fp->rxq->mb_pool) - RTE_PKTMBUF_HEADROOM;
-			if (dev->data->scattered_rx)
-				rx_buf_size = bufsz + ETHER_HDR_LEN +
-					      ETHER_CRC_LEN + QEDE_ETH_OVERHEAD;
-			else
-				rx_buf_size = frame_size;
-			rx_buf_size = QEDE_CEIL_TO_CACHE_LINE_SIZE(rx_buf_size);
-			fp->rxq->rx_buf_size = rx_buf_size;
-			DP_INFO(edev, "RX buffer size %u\n", rx_buf_size);
+			/* cache align the mbuf size to simplfy rx_buf_size
+			 * calculation
+			 */
+			bufsz = QEDE_FLOOR_TO_CACHE_LINE_SIZE(bufsz);
+			rc = qede_calc_rx_buf_size(dev, bufsz, frame_size);
+			if (rc < 0)
+				return rc;
+
+			fp->rxq->rx_buf_size = rc;
 		}
 	}
diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index 0f157ded2..675c0a033 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -36,4 +36,47 @@ static inline int qede_alloc_rx_buffer(struct qede_rx_queue *rxq)
 }
 
+/* Criterias for calculating Rx buffer size -
+ * 1) rx_buf_size should not exceed the size of mbuf
+ * 2) In scattered_rx mode - minimum rx_buf_size should be
+ *    (MTU + Maximum L2 Header Size + 2) / ETH_RX_MAX_BUFF_PER_PKT
+ * 3) In regular mode - minimum rx_buf_size should be
+ *    (MTU + Maximum L2 Header Size + 2)
+ *    In above cases +2 corrosponds to 2 bytes padding in front of L2
+ *    header.
+ * 4) rx_buf_size should be cacheline-size aligned. So considering
+ *    criteria 1, we need to adjust the size to floor instead of ceil,
+ *    so that we don't exceed mbuf size while ceiling rx_buf_size.
+ */
+int
+qede_calc_rx_buf_size(struct rte_eth_dev *dev, uint16_t mbufsz,
+		      uint16_t max_frame_size)
+{
+	struct qede_dev *qdev = QEDE_INIT_QDEV(dev);
+	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
+	int rx_buf_size;
+
+	if (dev->data->scattered_rx) {
+		/* per HW limitation, only ETH_RX_MAX_BUFF_PER_PKT number of
+		 * bufferes can be used for single packet. So need to make sure
+		 * mbuf size is sufficient enough for this.
+		 */
+		if ((mbufsz * ETH_RX_MAX_BUFF_PER_PKT) <
+		     (max_frame_size + QEDE_ETH_OVERHEAD)) {
+			DP_ERR(edev, "mbuf %d size is not enough to hold max fragments (%d) for max rx packet length (%d)\n",
+			       mbufsz, ETH_RX_MAX_BUFF_PER_PKT, max_frame_size);
+			return -EINVAL;
+		}
+
+		rx_buf_size = RTE_MAX(mbufsz,
+				      (max_frame_size + QEDE_ETH_OVERHEAD) /
+				       ETH_RX_MAX_BUFF_PER_PKT);
+	} else {
+		rx_buf_size = max_frame_size + QEDE_ETH_OVERHEAD;
+	}
+
+	/* Align to cache-line size if needed */
+	return QEDE_FLOOR_TO_CACHE_LINE_SIZE(rx_buf_size);
+}
+
 int
 qede_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
@@ -86,4 +129,6 @@ qede_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 	/* Fix up RX buffer size */
 	bufsz = (uint16_t)rte_pktmbuf_data_room_size(mp) - RTE_PKTMBUF_HEADROOM;
+	/* cache align the mbuf size to simplfy rx_buf_size calculation */
+	bufsz = QEDE_FLOOR_TO_CACHE_LINE_SIZE(bufsz);
 	if ((rxmode->offloads & DEV_RX_OFFLOAD_SCATTER)	||
 	    (max_rx_pkt_len + QEDE_ETH_OVERHEAD) > bufsz) {
@@ -94,11 +139,11 @@ qede_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 	}
 
-	if (dev->data->scattered_rx)
-		rxq->rx_buf_size = bufsz + ETHER_HDR_LEN +
-				   ETHER_CRC_LEN + QEDE_ETH_OVERHEAD;
-	else
-		rxq->rx_buf_size = max_rx_pkt_len + QEDE_ETH_OVERHEAD;
-	/* Align to cache-line size if needed */
-	rxq->rx_buf_size = QEDE_CEIL_TO_CACHE_LINE_SIZE(rxq->rx_buf_size);
+	rc = qede_calc_rx_buf_size(dev, bufsz, max_rx_pkt_len);
+	if (rc < 0) {
+		rte_free(rxq);
+		return rc;
+	}
+
+	rxq->rx_buf_size = rc;
 
 	DP_INFO(edev, "mtu %u mbufsz %u bd_max_bytes %u scatter_mode %d\n",
diff --git a/drivers/net/qede/qede_rxtx.h b/drivers/net/qede/qede_rxtx.h
index e710fbaed..8bd8d1c5a 100644
--- a/drivers/net/qede/qede_rxtx.h
+++ b/drivers/net/qede/qede_rxtx.h
@@ -62,7 +62,14 @@
 #define QEDE_CEIL_TO_CACHE_LINE_SIZE(n) (((n) + (QEDE_FW_RX_ALIGN_END - 1)) & \
 					~(QEDE_FW_RX_ALIGN_END - 1))
-/* Note: QEDE_LLC_SNAP_HDR_LEN is optional */
-#define QEDE_ETH_OVERHEAD	(((2 * QEDE_VLAN_TAG_SIZE)) - (ETHER_CRC_LEN) \
-				+ (QEDE_LLC_SNAP_HDR_LEN))
+#define QEDE_FLOOR_TO_CACHE_LINE_SIZE(n) RTE_ALIGN_FLOOR(n, \
+							 QEDE_FW_RX_ALIGN_END)
+
+/* Note: QEDE_LLC_SNAP_HDR_LEN is optional,
+ * +2 is for padding in front of L2 header
+ */
+#define QEDE_ETH_OVERHEAD	(((2 * QEDE_VLAN_TAG_SIZE)) \
+				 + (QEDE_LLC_SNAP_HDR_LEN) + 2)
+
+#define QEDE_MAX_ETHER_HDR_LEN	(ETHER_HDR_LEN + QEDE_ETH_OVERHEAD)
 
 #define QEDE_RSS_OFFLOAD_ALL    (ETH_RSS_IPV4			|\
@@ -268,4 +275,6 @@ int qede_start_queues(struct rte_eth_dev *eth_dev);
 
 void qede_stop_queues(struct rte_eth_dev *eth_dev);
+int qede_calc_rx_buf_size(struct rte_eth_dev *dev, uint16_t mbufsz,
+			  uint16_t max_frame_size);
 
 /* Fastpath resource alloc/dealloc helpers */
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.773898109 +0000
+++ 0055-net-qede-fix-Rx-buffer-size-calculation.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 318d7da3122bac04772418c5eda9f50fcd175d18 Mon Sep 17 00:00:00 2001
+From b5829a0470611b1e0bac0413f91ac6996447731d Mon Sep 17 00:00:00 2001
 From: Shahed Shaikh <shahed.shaikh@cavium.com>
 Date: Sat, 8 Sep 2018 13:31:03 -0700
 Subject: [PATCH] net/qede: fix Rx buffer size calculation
 
+[ upstream commit 318d7da3122bac04772418c5eda9f50fcd175d18 ]
+
  - HW does not include CRC in received frame when passed to host,
    so no need to consider CRC length while calculating Rx buffer size.
  - In scattered Rx mode, driver may allocate Rx buffer larger than
@@ -14,7 +16,6 @@
    (MTU + Maximum L2 Header Size + 2) / ETH_RX_MAX_BUFF_PER_PKT
 
 Fixes: f6033f2497e7 ("net/qede: fix minimum buffer size and scatter Rx check")
-CC: stable@dpdk.org
 
 Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
 ---
@@ -24,17 +25,17 @@
  3 files changed, 78 insertions(+), 24 deletions(-)
 
 diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
-index b8282730b..3e4cac738 100644
+index df52ea928..bd906b293 100644
 --- a/drivers/net/qede/qede_ethdev.c
 +++ b/drivers/net/qede/qede_ethdev.c
-@@ -1211,5 +1211,5 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
+@@ -1484,5 +1484,5 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
  		eth_dev->data->mtu =
  			eth_dev->data->dev_conf.rxmode.max_rx_pkt_len -
 -			ETHER_HDR_LEN - ETHER_CRC_LEN;
 +			ETHER_HDR_LEN - QEDE_ETH_OVERHEAD;
  
  	if (rxmode->offloads & DEV_RX_OFFLOAD_SCATTER)
-@@ -2226,17 +2226,16 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
+@@ -2500,17 +2500,16 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
  	uint32_t max_rx_pkt_len;
  	uint32_t frame_size;
 -	uint16_t rx_buf_size;
@@ -56,7 +57,7 @@
 +		       QEDE_ETH_OVERHEAD);
  		return -EINVAL;
  	}
-@@ -2266,12 +2265,13 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
+@@ -2540,12 +2539,13 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
  			bufsz = (uint16_t)rte_pktmbuf_data_room_size(
  				fp->rxq->mb_pool) - RTE_PKTMBUF_HEADROOM;
 -			if (dev->data->scattered_rx)

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

* [dpdk-stable] patch 'net/qede/base: fix MFW FLR flow' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (53 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix Rx buffer size calculation' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: fix deadlock in memory events callback' " Kevin Traynor
                   ` (5 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Shahed Shaikh; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 0e58b87629c613cb43d32c7395ca1b0d5ef352b3 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shahed.shaikh@cavium.com>
Date: Sat, 8 Sep 2018 13:31:05 -0700
Subject: [PATCH] net/qede/base: fix MFW FLR flow

[ upstream commit 797ce8eec7c1b9e37dd9398403e9bc888cca0013 ]

Management firmware does not properly clean IGU block in PF FLR flow
which may result in undelivered attentions for link events from
default status block.
Add a workaround in PMD to execute extra IGU cleanup right after PF FLR
is done.

Fixes: 9e2f08a4ad5f ("net/qede/base: add request for PF FLR before load request")

Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
---
 drivers/net/qede/base/ecore_dev.c  |  7 +++++++
 drivers/net/qede/base/ecore_int.c  | 32 ++++++++++++++++++++++++++++++
 drivers/net/qede/base/ecore_int.h  |  1 +
 drivers/net/qede/base/mcp_public.h |  2 ++
 drivers/net/qede/base/reg_addr.h   | 15 ++++++++++++++
 5 files changed, 57 insertions(+)

diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c
index d43c12b86..82454dd49 100644
--- a/drivers/net/qede/base/ecore_dev.c
+++ b/drivers/net/qede/base/ecore_dev.c
@@ -4238,4 +4238,11 @@ ecore_hw_prepare_single(struct ecore_hwfn *p_hwfn,
 		if (rc != ECORE_SUCCESS)
 			DP_NOTICE(p_hwfn, false, "Failed to initiate PF FLR\n");
+
+		/* Workaround for MFW issue where PF FLR does not cleanup
+		 * IGU block
+		 */
+		if (!(p_hwfn->mcp_info->capabilities &
+		      FW_MB_PARAM_FEATURE_SUPPORT_IGU_CLEANUP))
+			ecore_pf_flr_igu_cleanup(p_hwfn);
 	}
 
diff --git a/drivers/net/qede/base/ecore_int.c b/drivers/net/qede/base/ecore_int.c
index 4c271d358..d41107d49 100644
--- a/drivers/net/qede/base/ecore_int.c
+++ b/drivers/net/qede/base/ecore_int.c
@@ -2682,2 +2682,34 @@ enum _ecore_status_t ecore_int_get_sb_dbg(struct ecore_hwfn *p_hwfn,
 	return ECORE_SUCCESS;
 }
+
+void ecore_pf_flr_igu_cleanup(struct ecore_hwfn *p_hwfn)
+{
+	struct ecore_ptt *p_ptt = p_hwfn->p_main_ptt;
+	struct ecore_ptt *p_dpc_ptt = ecore_get_reserved_ptt(p_hwfn,
+							     RESERVED_PTT_DPC);
+	int i;
+
+	/* Do not reorder the following cleanup sequence */
+	/* Ack all attentions */
+	ecore_wr(p_hwfn, p_ptt, IGU_REG_ATTENTION_ACK_BITS, 0xfff);
+
+	/* Clear driver attention */
+	ecore_wr(p_hwfn,  p_dpc_ptt,
+		((p_hwfn->rel_pf_id << 3) + MISC_REG_AEU_GENERAL_ATTN_0), 0);
+
+	/* Clear per-PF IGU registers to restore them as if the IGU
+	 * was reset for this PF
+	 */
+	ecore_wr(p_hwfn, p_ptt, IGU_REG_LEADING_EDGE_LATCH, 0);
+	ecore_wr(p_hwfn, p_ptt, IGU_REG_TRAILING_EDGE_LATCH, 0);
+	ecore_wr(p_hwfn, p_ptt, IGU_REG_PF_CONFIGURATION, 0);
+
+	/* Execute IGU clean up*/
+	ecore_wr(p_hwfn, p_ptt, IGU_REG_PF_FUNCTIONAL_CLEANUP, 1);
+
+	/* Clear Stats */
+	ecore_wr(p_hwfn, p_ptt, IGU_REG_STATISTIC_NUM_OF_INTA_ASSERTED, 0);
+
+	for (i = 0; i < IGU_REG_PBA_STS_PF_SIZE; i++)
+		ecore_wr(p_hwfn, p_ptt, IGU_REG_PBA_STS_PF + i * 4, 0);
+}
diff --git a/drivers/net/qede/base/ecore_int.h b/drivers/net/qede/base/ecore_int.h
index 041240d7b..ff2310cff 100644
--- a/drivers/net/qede/base/ecore_int.h
+++ b/drivers/net/qede/base/ecore_int.h
@@ -257,4 +257,5 @@ enum _ecore_status_t ecore_pglueb_rbc_attn_handler(struct ecore_hwfn *p_hwfn,
 						   struct ecore_ptt *p_ptt,
 						   bool is_hw_init);
+void ecore_pf_flr_igu_cleanup(struct ecore_hwfn *p_hwfn);
 
 #endif /* __ECORE_INT_H__ */
diff --git a/drivers/net/qede/base/mcp_public.h b/drivers/net/qede/base/mcp_public.h
index 79d9aaef3..7c72a963c 100644
--- a/drivers/net/qede/base/mcp_public.h
+++ b/drivers/net/qede/base/mcp_public.h
@@ -1780,4 +1780,6 @@ struct public_drv_mb {
 /* MFW supports DRV_LOAD Timeout */
 #define FW_MB_PARAM_FEATURE_SUPPORT_DRV_LOAD_TO  0x00000004
+/* MFW support complete IGU cleanup upon FLR */
+#define FW_MB_PARAM_FEATURE_SUPPORT_IGU_CLEANUP	0x00000080
 /* MFW supports virtual link */
 #define FW_MB_PARAM_FEATURE_SUPPORT_VLINK       0x00010000
diff --git a/drivers/net/qede/base/reg_addr.h b/drivers/net/qede/base/reg_addr.h
index 7ed26fcce..b82ccc1cd 100644
--- a/drivers/net/qede/base/reg_addr.h
+++ b/drivers/net/qede/base/reg_addr.h
@@ -323,4 +323,19 @@
 #define  IGU_REG_ATTN_MSG_ADDR_H	\
 	0x180824UL
+#define IGU_REG_LEADING_EDGE_LATCH \
+	0x18082cUL
+#define IGU_REG_TRAILING_EDGE_LATCH \
+	0x180830UL
+#define IGU_REG_ATTENTION_ACK_BITS \
+	0x180838UL
+#define IGU_REG_PBA_STS_PF \
+	0x180d20UL
+#define IGU_REG_PF_FUNCTIONAL_CLEANUP \
+	0x181210UL
+#define IGU_REG_STATISTIC_NUM_OF_INTA_ASSERTED \
+	0x18042cUL
+#define IGU_REG_PBA_STS_PF_SIZE 5
+#define IGU_REG_PBA_STS_PF \
+	0x180d20UL
 #define  MISC_REG_AEU_GENERAL_ATTN_0 \
 	0x008400UL
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.799914168 +0000
+++ 0056-net-qede-base-fix-MFW-FLR-flow.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 797ce8eec7c1b9e37dd9398403e9bc888cca0013 Mon Sep 17 00:00:00 2001
+From 0e58b87629c613cb43d32c7395ca1b0d5ef352b3 Mon Sep 17 00:00:00 2001
 From: Shahed Shaikh <shahed.shaikh@cavium.com>
 Date: Sat, 8 Sep 2018 13:31:05 -0700
 Subject: [PATCH] net/qede/base: fix MFW FLR flow
 
+[ upstream commit 797ce8eec7c1b9e37dd9398403e9bc888cca0013 ]
+
 Management firmware does not properly clean IGU block in PF FLR flow
 which may result in undelivered attentions for link events from
 default status block.
@@ -10,7 +12,6 @@
 is done.
 
 Fixes: 9e2f08a4ad5f ("net/qede/base: add request for PF FLR before load request")
-Cc: stable@dpdk.org
 
 Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
 ---
@@ -22,10 +23,10 @@
  5 files changed, 57 insertions(+)
 
 diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c
-index fdb62f232..d91fe2747 100644
+index d43c12b86..82454dd49 100644
 --- a/drivers/net/qede/base/ecore_dev.c
 +++ b/drivers/net/qede/base/ecore_dev.c
-@@ -4273,4 +4273,11 @@ ecore_hw_prepare_single(struct ecore_hwfn *p_hwfn,
+@@ -4238,4 +4238,11 @@ ecore_hw_prepare_single(struct ecore_hwfn *p_hwfn,
  		if (rc != ECORE_SUCCESS)
  			DP_NOTICE(p_hwfn, false, "Failed to initiate PF FLR\n");
 +
@@ -87,10 +88,10 @@
  
  #endif /* __ECORE_INT_H__ */
 diff --git a/drivers/net/qede/base/mcp_public.h b/drivers/net/qede/base/mcp_public.h
-index e9f335096..2ee8ab538 100644
+index 79d9aaef3..7c72a963c 100644
 --- a/drivers/net/qede/base/mcp_public.h
 +++ b/drivers/net/qede/base/mcp_public.h
-@@ -1798,4 +1798,6 @@ struct public_drv_mb {
+@@ -1780,4 +1780,6 @@ struct public_drv_mb {
  /* MFW supports DRV_LOAD Timeout */
  #define FW_MB_PARAM_FEATURE_SUPPORT_DRV_LOAD_TO  0x00000004
 +/* MFW support complete IGU cleanup upon FLR */

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

* [dpdk-stable] patch 'net/virtio-user: fix deadlock in memory events callback' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (54 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix MFW FLR flow' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: fix memory hotplug support in vhost-kernel' " Kevin Traynor
                   ` (4 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Seán Harte, Anatoly Burakov, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 9a3059147371629a60cd19ce9cd78643616de9ae Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 5 Sep 2018 12:28:50 +0800
Subject: [PATCH] net/virtio-user: fix deadlock in memory events callback
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 7ff269575bd144482d56a20fec61187f1af15dda ]

Deadlock can occur when allocating memory if a vhost-kernel
based virtio-user device is in use. To fix the deadlock,
we will take memory hotplug lock explicitly in virtio-user
when necessary, and always call the _thread_unsafe memory
functions.

Bugzilla ID: 81
Fixes: 12ecb2f63b12 ("net/virtio-user: support memory hotplug")

Reported-by: Seán Harte <seanbh@gmail.com>
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Tested-by: Seán Harte <seanbh@gmail.com>
Reviewed-by: Seán Harte <seanbh@gmail.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_user/vhost_kernel.c |  6 +++++-
 .../net/virtio/virtio_user/virtio_user_dev.c  | 19 +++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/drivers/net/virtio/virtio_user/vhost_kernel.c b/drivers/net/virtio/virtio_user/vhost_kernel.c
index d1be82162..a93fe5b28 100644
--- a/drivers/net/virtio/virtio_user/vhost_kernel.c
+++ b/drivers/net/virtio/virtio_user/vhost_kernel.c
@@ -116,5 +116,9 @@ prepare_vhost_memory_kernel(void)
 	wa.vm = vm;
 
-	if (rte_memseg_contig_walk(add_memory_region, &wa) < 0) {
+	/*
+	 * The memory lock has already been taken by memory subsystem
+	 * or virtio_user_start_device().
+	 */
+	if (rte_memseg_contig_walk_thread_unsafe(add_memory_region, &wa) < 0) {
 		free(vm);
 		return NULL;
diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c
index 7df600b02..869e96f87 100644
--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
@@ -14,4 +14,6 @@
 #include <sys/stat.h>
 
+#include <rte_eal_memconfig.h>
+
 #include "vhost.h"
 #include "virtio_user_dev.h"
@@ -110,7 +112,22 @@ int
 virtio_user_start_device(struct virtio_user_dev *dev)
 {
+	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
 	uint64_t features;
 	int ret;
 
+	/*
+	 * XXX workaround!
+	 *
+	 * We need to make sure that the locks will be
+	 * taken in the correct order to avoid deadlocks.
+	 *
+	 * Before releasing this lock, this thread should
+	 * not trigger any memory hotplug events.
+	 *
+	 * This is a temporary workaround, and should be
+	 * replaced when we get proper supports from the
+	 * memory subsystem in the future.
+	 */
+	rte_rwlock_read_lock(&mcfg->memory_hotplug_lock);
 	pthread_mutex_lock(&dev->mutex);
 
@@ -153,8 +170,10 @@ virtio_user_start_device(struct virtio_user_dev *dev)
 	dev->started = true;
 	pthread_mutex_unlock(&dev->mutex);
+	rte_rwlock_read_unlock(&mcfg->memory_hotplug_lock);
 
 	return 0;
 error:
 	pthread_mutex_unlock(&dev->mutex);
+	rte_rwlock_read_unlock(&mcfg->memory_hotplug_lock);
 	/* TODO: free resource here or caller to check */
 	return -1;
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.832978388 +0000
+++ 0057-net-virtio-user-fix-deadlock-in-memory-events-callba.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,4 +1,4 @@
-From 7ff269575bd144482d56a20fec61187f1af15dda Mon Sep 17 00:00:00 2001
+From 9a3059147371629a60cd19ce9cd78643616de9ae Mon Sep 17 00:00:00 2001
 From: Tiwei Bie <tiwei.bie@intel.com>
 Date: Wed, 5 Sep 2018 12:28:50 +0800
 Subject: [PATCH] net/virtio-user: fix deadlock in memory events callback
@@ -6,6 +6,8 @@
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
 
+[ upstream commit 7ff269575bd144482d56a20fec61187f1af15dda ]
+
 Deadlock can occur when allocating memory if a vhost-kernel
 based virtio-user device is in use. To fix the deadlock,
 we will take memory hotplug lock explicitly in virtio-user
@@ -14,7 +16,6 @@
 
 Bugzilla ID: 81
 Fixes: 12ecb2f63b12 ("net/virtio-user: support memory hotplug")
-Cc: stable@dpdk.org
 
 Reported-by: Seán Harte <seanbh@gmail.com>
 Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>

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

* [dpdk-stable] patch 'net/virtio-user: fix memory hotplug support in vhost-kernel' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (55 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: fix deadlock in memory events callback' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/failsafe: fix crash on slave queue release' " Kevin Traynor
                   ` (3 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 4a4c3a7150f1fb714a7057e44672330c997d3d1b Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 5 Sep 2018 12:28:52 +0800
Subject: [PATCH] net/virtio-user: fix memory hotplug support in vhost-kernel

[ upstream commit 757286542560ab7f326ae71f5ef8d83050ee5646 ]

It's possible to have much more hugepage backed memory regions
than what vhost-kernel supports due to the memory hotplug, which
may cause problems. A better solution is to have the virtio-user
pass all the memory ranges reserved by DPDK to vhost-kernel.

Fixes: 12ecb2f63b12 ("net/virtio-user: support memory hotplug")

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_user/vhost_kernel.c | 38 +++++++++----------
 1 file changed, 18 insertions(+), 20 deletions(-)

diff --git a/drivers/net/virtio/virtio_user/vhost_kernel.c b/drivers/net/virtio/virtio_user/vhost_kernel.c
index a93fe5b28..b3bfcb76f 100644
--- a/drivers/net/virtio/virtio_user/vhost_kernel.c
+++ b/drivers/net/virtio/virtio_user/vhost_kernel.c
@@ -71,33 +71,34 @@ static uint64_t vhost_req_user_to_kernel[] = {
 };
 
-struct walk_arg {
-	struct vhost_memory_kernel *vm;
-	uint32_t region_nr;
-};
 static int
-add_memory_region(const struct rte_memseg_list *msl __rte_unused,
-		const struct rte_memseg *ms, size_t len, void *arg)
+add_memseg_list(const struct rte_memseg_list *msl, void *arg)
 {
-	struct walk_arg *wa = arg;
+	struct vhost_memory_kernel *vm = arg;
 	struct vhost_memory_region *mr;
 	void *start_addr;
+	uint64_t len;
 
-	if (wa->region_nr >= max_regions)
+	if (vm->nregions >= max_regions)
 		return -1;
 
-	mr = &wa->vm->regions[wa->region_nr++];
-	start_addr = ms->addr;
+	start_addr = msl->base_va;
+	len = msl->page_sz * msl->memseg_arr.len;
+
+	mr = &vm->regions[vm->nregions++];
 
 	mr->guest_phys_addr = (uint64_t)(uintptr_t)start_addr;
 	mr->userspace_addr = (uint64_t)(uintptr_t)start_addr;
 	mr->memory_size = len;
-	mr->mmap_offset = 0;
+	mr->mmap_offset = 0; /* flags_padding */
+
+	PMD_DRV_LOG(DEBUG, "index=%u addr=%p len=%" PRIu64,
+			vm->nregions - 1, start_addr, len);
 
 	return 0;
 }
 
-/* By default, vhost kernel module allows 64 regions, but DPDK allows
- * 256 segments. As a relief, below function merges those virtually
- * adjacent memsegs into one region.
+/* By default, vhost kernel module allows 64 regions, but DPDK may
+ * have much more memory regions. Below function will treat each
+ * contiguous memory space reserved by DPDK as one region.
  */
 static struct vhost_memory_kernel *
@@ -105,5 +106,4 @@ prepare_vhost_memory_kernel(void)
 {
 	struct vhost_memory_kernel *vm;
-	struct walk_arg wa;
 
 	vm = malloc(sizeof(struct vhost_memory_kernel) +
@@ -113,6 +113,6 @@ prepare_vhost_memory_kernel(void)
 		return NULL;
 
-	wa.region_nr = 0;
-	wa.vm = vm;
+	vm->nregions = 0;
+	vm->padding = 0;
 
 	/*
@@ -120,11 +120,9 @@ prepare_vhost_memory_kernel(void)
 	 * or virtio_user_start_device().
 	 */
-	if (rte_memseg_contig_walk_thread_unsafe(add_memory_region, &wa) < 0) {
+	if (rte_memseg_list_walk_thread_unsafe(add_memseg_list, vm) < 0) {
 		free(vm);
 		return NULL;
 	}
 
-	vm->nregions = wa.region_nr;
-	vm->padding = 0;
 	return vm;
 }
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.855155197 +0000
+++ 0058-net-virtio-user-fix-memory-hotplug-support-in-vhost-.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,15 +1,16 @@
-From 757286542560ab7f326ae71f5ef8d83050ee5646 Mon Sep 17 00:00:00 2001
+From 4a4c3a7150f1fb714a7057e44672330c997d3d1b Mon Sep 17 00:00:00 2001
 From: Tiwei Bie <tiwei.bie@intel.com>
 Date: Wed, 5 Sep 2018 12:28:52 +0800
 Subject: [PATCH] net/virtio-user: fix memory hotplug support in vhost-kernel
 
+[ upstream commit 757286542560ab7f326ae71f5ef8d83050ee5646 ]
+
 It's possible to have much more hugepage backed memory regions
 than what vhost-kernel supports due to the memory hotplug, which
 may cause problems. A better solution is to have the virtio-user
 pass all the memory ranges reserved by DPDK to vhost-kernel.
 
 Fixes: 12ecb2f63b12 ("net/virtio-user: support memory hotplug")
-Cc: stable@dpdk.org
 
 Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
 Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

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

* [dpdk-stable] patch 'net/failsafe: fix crash on slave queue release' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (56 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: fix memory hotplug support in vhost-kernel' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/failsafe: add checks for deferred queue setup' " Kevin Traynor
                   ` (2 subsequent siblings)
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Igor Romanov; +Cc: Andrew Rybchenko, Gaetan Rivet, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 6de567f87a8e135e52156fa6a1e2a91a819b4aff Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Fri, 31 Aug 2018 17:16:32 +0100
Subject: [PATCH] net/failsafe: fix crash on slave queue release

[ upstream commit 6b35f4d88b40645425b4b8e156423982471eccf5 ]

Releasing a queue that is already released by slave may cause a
segmentation fault. For example, after a successfull device
configuration a queue is set up. Afterwards the device is reconfigured
with an invalid argument, forcing slaves to release the queues
(e.g. rte_eth_dev.data.tx_queues). Finally the failsafe's queues
are released. The queue release functions also try to release slaves'
queues using ETH(sdev)->data->tx_queues which is NULL at the time.

Add checks for NULL slaves' Tx and Rx queues before releasing them.

Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
 drivers/net/failsafe/failsafe_ops.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 24e91c931..94b9769e7 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -310,7 +310,11 @@ fs_rx_queue_release(void *queue)
 	if (rxq->event_fd > 0)
 		close(rxq->event_fd);
-	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE)
-		SUBOPS(sdev, rx_queue_release)
-			(ETH(sdev)->data->rx_queues[rxq->qid]);
+	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) {
+		if (ETH(sdev)->data->rx_queues != NULL &&
+		    ETH(sdev)->data->rx_queues[rxq->qid] != NULL) {
+			SUBOPS(sdev, rx_queue_release)
+				(ETH(sdev)->data->rx_queues[rxq->qid]);
+		}
+	}
 	dev->data->rx_queues[rxq->qid] = NULL;
 	rte_free(rxq);
@@ -478,7 +482,11 @@ fs_tx_queue_release(void *queue)
 	dev = txq->priv->dev;
 	fs_lock(dev, 0);
-	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE)
-		SUBOPS(sdev, tx_queue_release)
-			(ETH(sdev)->data->tx_queues[txq->qid]);
+	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) {
+		if (ETH(sdev)->data->tx_queues != NULL &&
+		    ETH(sdev)->data->tx_queues[txq->qid] != NULL) {
+			SUBOPS(sdev, tx_queue_release)
+				(ETH(sdev)->data->tx_queues[txq->qid]);
+		}
+	}
 	dev->data->tx_queues[txq->qid] = NULL;
 	rte_free(txq);
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.878420717 +0000
+++ 0059-net-failsafe-fix-crash-on-slave-queue-release.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 6b35f4d88b40645425b4b8e156423982471eccf5 Mon Sep 17 00:00:00 2001
+From 6de567f87a8e135e52156fa6a1e2a91a819b4aff Mon Sep 17 00:00:00 2001
 From: Igor Romanov <igor.romanov@oktetlabs.ru>
 Date: Fri, 31 Aug 2018 17:16:32 +0100
 Subject: [PATCH] net/failsafe: fix crash on slave queue release
 
+[ upstream commit 6b35f4d88b40645425b4b8e156423982471eccf5 ]
+
 Releasing a queue that is already released by slave may cause a
 segmentation fault. For example, after a successfull device
 configuration a queue is set up. Afterwards the device is reconfigured
@@ -14,7 +16,6 @@
 Add checks for NULL slaves' Tx and Rx queues before releasing them.
 
 Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
-Cc: stable@dpdk.org
 
 Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
 Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -24,10 +25,10 @@
  1 file changed, 14 insertions(+), 6 deletions(-)
 
 diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
-index d989a17bf..49b155045 100644
+index 24e91c931..94b9769e7 100644
 --- a/drivers/net/failsafe/failsafe_ops.c
 +++ b/drivers/net/failsafe/failsafe_ops.c
-@@ -308,7 +308,11 @@ fs_rx_queue_release(void *queue)
+@@ -310,7 +310,11 @@ fs_rx_queue_release(void *queue)
  	if (rxq->event_fd > 0)
  		close(rxq->event_fd);
 -	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE)
@@ -42,7 +43,7 @@
 +	}
  	dev->data->rx_queues[rxq->qid] = NULL;
  	rte_free(rxq);
-@@ -476,7 +480,11 @@ fs_tx_queue_release(void *queue)
+@@ -478,7 +482,11 @@ fs_tx_queue_release(void *queue)
  	dev = txq->priv->dev;
  	fs_lock(dev, 0);
 -	FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE)

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

* [dpdk-stable] patch 'net/failsafe: add checks for deferred queue setup' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (57 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/failsafe: fix crash on slave queue release' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'app/testpmd: fix missing jump action in flow action' " Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' " Kevin Traynor
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Ian Dolzhansky; +Cc: Andrew Rybchenko, Gaetan Rivet, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From d64c5a3813755b8c66c7c2953791edc27135afeb Mon Sep 17 00:00:00 2001
From: Ian Dolzhansky <ian.dolzhansky@oktetlabs.ru>
Date: Thu, 20 Sep 2018 14:55:50 +0100
Subject: [PATCH] net/failsafe: add checks for deferred queue setup

[ upstream commit c3a210a264bda441e36109af1624ecc79ff4655f ]

Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")

Signed-off-by: Ian Dolzhansky <ian.dolzhansky@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
 drivers/net/failsafe/failsafe_ops.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 94b9769e7..1343f02a9 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -345,4 +345,9 @@ fs_rx_queue_setup(struct rte_eth_dev *dev,
 	int ret;
 
+	if (rx_conf->rx_deferred_start) {
+		ERROR("Rx queue deferred start is not supported");
+		return -EINVAL;
+	}
+
 	fs_lock(dev, 0);
 	rxq = dev->data->rx_queues[rx_queue_id];
@@ -506,4 +511,9 @@ fs_tx_queue_setup(struct rte_eth_dev *dev,
 	int ret;
 
+	if (tx_conf->tx_deferred_start) {
+		ERROR("Tx queue deferred start is not supported");
+		return -EINVAL;
+	}
+
 	fs_lock(dev, 0);
 	txq = dev->data->tx_queues[tx_queue_id];
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.900388124 +0000
+++ 0060-net-failsafe-add-checks-for-deferred-queue-setup.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,10 +1,11 @@
-From c3a210a264bda441e36109af1624ecc79ff4655f Mon Sep 17 00:00:00 2001
+From d64c5a3813755b8c66c7c2953791edc27135afeb Mon Sep 17 00:00:00 2001
 From: Ian Dolzhansky <ian.dolzhansky@oktetlabs.ru>
 Date: Thu, 20 Sep 2018 14:55:50 +0100
 Subject: [PATCH] net/failsafe: add checks for deferred queue setup
 
+[ upstream commit c3a210a264bda441e36109af1624ecc79ff4655f ]
+
 Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
-Cc: stable@dpdk.org
 
 Signed-off-by: Ian Dolzhansky <ian.dolzhansky@oktetlabs.ru>
 Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -14,10 +15,10 @@
  1 file changed, 10 insertions(+)
 
 diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
-index 49b155045..91105212c 100644
+index 94b9769e7..1343f02a9 100644
 --- a/drivers/net/failsafe/failsafe_ops.c
 +++ b/drivers/net/failsafe/failsafe_ops.c
-@@ -343,4 +343,9 @@ fs_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -345,4 +345,9 @@ fs_rx_queue_setup(struct rte_eth_dev *dev,
  	int ret;
  
 +	if (rx_conf->rx_deferred_start) {
@@ -27,7 +28,7 @@
 +
  	fs_lock(dev, 0);
  	rxq = dev->data->rx_queues[rx_queue_id];
-@@ -504,4 +509,9 @@ fs_tx_queue_setup(struct rte_eth_dev *dev,
+@@ -506,4 +511,9 @@ fs_tx_queue_setup(struct rte_eth_dev *dev,
  	int ret;
  
 +	if (tx_conf->tx_deferred_start) {

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

* [dpdk-stable] patch 'app/testpmd: fix missing jump action in flow action' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (58 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'net/failsafe: add checks for deferred queue setup' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  2018-11-20 19:12 ` [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' " Kevin Traynor
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Reshma Pattan; +Cc: Bernard Iremonger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From da59d21e2d87cf18f0e5a846be1c5f429a729b2a Mon Sep 17 00:00:00 2001
From: Reshma Pattan <reshma.pattan@intel.com>
Date: Wed, 19 Sep 2018 15:01:05 +0100
Subject: [PATCH] app/testpmd: fix missing jump action in flow action

[ upstream commit dcbbbd069217cef1c71601e0809e870df1545e47 ]

Added missing JUMP flow action in flow_action array.
Without this the flow rule cannot be created for JUMP action.

Fixes: 938a184a18 ("app/testpmd: implement basic support for flow API")

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
 app/test-pmd/config.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 14ccd6864..21d5e4ae4 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -1124,4 +1124,5 @@ static const struct {
 	MK_FLOW_ACTION(VOID, 0),
 	MK_FLOW_ACTION(PASSTHRU, 0),
+	MK_FLOW_ACTION(JUMP, 0),
 	MK_FLOW_ACTION(MARK, sizeof(struct rte_flow_action_mark)),
 	MK_FLOW_ACTION(FLAG, 0),
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.922176615 +0000
+++ 0061-app-testpmd-fix-missing-jump-action-in-flow-action.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,13 +1,14 @@
-From dcbbbd069217cef1c71601e0809e870df1545e47 Mon Sep 17 00:00:00 2001
+From da59d21e2d87cf18f0e5a846be1c5f429a729b2a Mon Sep 17 00:00:00 2001
 From: Reshma Pattan <reshma.pattan@intel.com>
 Date: Wed, 19 Sep 2018 15:01:05 +0100
 Subject: [PATCH] app/testpmd: fix missing jump action in flow action
 
+[ upstream commit dcbbbd069217cef1c71601e0809e870df1545e47 ]
+
 Added missing JUMP flow action in flow_action array.
 Without this the flow rule cannot be created for JUMP action.
 
 Fixes: 938a184a18 ("app/testpmd: implement basic support for flow API")
-Cc: stable@dpdk.org
 
 Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
 Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
@@ -16,10 +17,10 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
-index 5ba59b09b..794aa5268 100644
+index 14ccd6864..21d5e4ae4 100644
 --- a/app/test-pmd/config.c
 +++ b/app/test-pmd/config.c
-@@ -1142,4 +1142,5 @@ static const struct {
+@@ -1124,4 +1124,5 @@ static const struct {
  	MK_FLOW_ACTION(VOID, 0),
  	MK_FLOW_ACTION(PASSTHRU, 0),
 +	MK_FLOW_ACTION(JUMP, 0),

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

* [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' has been queued to stable release 18.08.1
  2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
                   ` (59 preceding siblings ...)
  2018-11-20 19:12 ` [dpdk-stable] patch 'app/testpmd: fix missing jump action in flow action' " Kevin Traynor
@ 2018-11-20 19:12 ` Kevin Traynor
  60 siblings, 0 replies; 62+ messages in thread
From: Kevin Traynor @ 2018-11-20 19:12 UTC (permalink / raw)
  To: Didier Pallard; +Cc: Konstantin Ananyev, dpdk stable

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 1f1265e78ee179831a0d34c5afb5498cc1987064 Mon Sep 17 00:00:00 2001
From: Didier Pallard <didier.pallard@6wind.com>
Date: Wed, 19 Sep 2018 16:42:08 +0200
Subject: [PATCH] net: fix Intel prepare function for IP checksum offload

[ upstream commit ae0207d4b5048a6af9bc30e0956d30461b813148 ]

Current Intel tx prepare function does not properly handle the
case where only IP checksum is requested, without requesting
any L4 checksum or TSO: IP checksum is not properly reset to 0
and output packet may contain invalid IP checksum.

Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")

Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
 lib/librte_net/rte_net.h | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/lib/librte_net/rte_net.h b/lib/librte_net/rte_net.h
index b6ab6e1d5..e59760a0a 100644
--- a/lib/librte_net/rte_net.h
+++ b/lib/librte_net/rte_net.h
@@ -123,12 +123,14 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
 		inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
 
+	if (ol_flags & PKT_TX_IPV4) {
+		ipv4_hdr = rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *,
+				inner_l3_offset);
+
+		if (ol_flags & PKT_TX_IP_CKSUM)
+			ipv4_hdr->hdr_checksum = 0;
+	}
+
 	if ((ol_flags & PKT_TX_UDP_CKSUM) == PKT_TX_UDP_CKSUM) {
 		if (ol_flags & PKT_TX_IPV4) {
-			ipv4_hdr = rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *,
-					inner_l3_offset);
-
-			if (ol_flags & PKT_TX_IP_CKSUM)
-				ipv4_hdr->hdr_checksum = 0;
-
 			udp_hdr = (struct udp_hdr *)((char *)ipv4_hdr +
 					m->l3_len);
@@ -147,10 +149,4 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
 			(ol_flags & PKT_TX_TCP_SEG)) {
 		if (ol_flags & PKT_TX_IPV4) {
-			ipv4_hdr = rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *,
-					inner_l3_offset);
-
-			if (ol_flags & PKT_TX_IP_CKSUM)
-				ipv4_hdr->hdr_checksum = 0;
-
 			/* non-TSO tcp or TSO */
 			tcp_hdr = (struct tcp_hdr *)((char *)ipv4_hdr +
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.946846359 +0000
+++ 0062-net-fix-Intel-prepare-function-for-IP-checksum-offlo.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,15 +1,16 @@
-From ae0207d4b5048a6af9bc30e0956d30461b813148 Mon Sep 17 00:00:00 2001
+From 1f1265e78ee179831a0d34c5afb5498cc1987064 Mon Sep 17 00:00:00 2001
 From: Didier Pallard <didier.pallard@6wind.com>
 Date: Wed, 19 Sep 2018 16:42:08 +0200
 Subject: [PATCH] net: fix Intel prepare function for IP checksum offload
 
+[ upstream commit ae0207d4b5048a6af9bc30e0956d30461b813148 ]
+
 Current Intel tx prepare function does not properly handle the
 case where only IP checksum is requested, without requesting
 any L4 checksum or TSO: IP checksum is not properly reset to 0
 and output packet may contain invalid IP checksum.
 
 Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")
-Cc: stable@dpdk.org
 
 Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
 Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

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

end of thread, other threads:[~2018-11-20 19:16 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' has been queued to stable release 18.08.1 Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'mk: disable OcteonTx for buggy compilers only on arm64' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'malloc: fix potential null pointer dereference' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'bus/vdev: fix error log on secondary device scan' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'net/netvsc: fix chimney buffer size error handling' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'net/netvsc: resize event buffer as needed' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/octeontx: fix packet corruption on Tx' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'doc: fix style and syntax in flow API guide' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix artificial L4 limitation on switch flow rules' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix RSS flow action hash type selection' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mvpp2: fix array initialization' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mvpp2: fix comments and error messages' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix MAC changes when live change not supported' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/nfp: fix live MAC changes " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix port ownership logs' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: fix buffer corruption in packets' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/e1000: fix Tx offload capability typos' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/cxgbe: fix memory access when parsing flow match items' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/ixgbe: do not return internal code' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix interrupt completion queue index wrapping' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix zmbufs array leak after NUMA realloc' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: check negotiated features before set' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix vhost interrupt support' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'vhost-user: drop connection on message handling failures' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix return value on enqueue path' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix missing names in Tx offload name array' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'crypto/qat: fix typo' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'app/bbdev: fix inputs mbuf creation' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'compat: fix symbol version support with meson' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'eal: include missing hypervisor files in " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'raw/ifpga: use -Wno-error=format-security for " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'igb_uio: install module when building with " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'build: create relative symlinks for PMDs in libdir' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'pdump: remove dependency on libpthread' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'fbarray: fix detach in --no-shconf mode' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'eal: do not allow legacy mode with --in-memory " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'config: remove unused parameter' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/e1000: fix queue number in RSS configuration' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/ifc: do not notify before HW ready' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix to handle stag update event' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix ethernet type in HW registers' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix logic for sfp get/set' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix flow director for IPv6 filter' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix Rx buffer size calculation' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix MFW FLR flow' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: fix deadlock in memory events callback' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: fix memory hotplug support in vhost-kernel' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/failsafe: fix crash on slave queue release' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/failsafe: add checks for deferred queue setup' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'app/testpmd: fix missing jump action in flow action' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' " Kevin Traynor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).