patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Luca Boccassi <bluca@debian.org>
To: Ilya Maximets <i.maximets@samsung.com>
Cc: Maxime Coquelin <maxime.coquelin@redhat.com>,
	dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'vhost-user: drop connection on message handling failures' has been queued to LTS release 16.11.9
Date: Thu, 27 Sep 2018 09:44:00 +0100	[thread overview]
Message-ID: <20180927084403.19646-5-bluca@debian.org> (raw)
In-Reply-To: <20180927084403.19646-1-bluca@debian.org>

Hi,

FYI, your patch has been queued to LTS release 16.11.9

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

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

Thanks.

Luca Boccassi

---
>From 1f663861f80ab4de51216ae5e1c0a3a88d52dd85 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 | 48 +++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 16 deletions(-)

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index 04c92ceb30..f3b286e72f 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -741,7 +741,7 @@ vhost_user_set_vring_call(struct virtio_net *dev, struct VhostUserMsg *pmsg)
  *  In vhost-user, when we receive kick message, will test whether virtio
  *  device is ready for packet processing.
  */
-static void
+static int
 vhost_user_set_vring_kick(struct virtio_net *dev, struct VhostUserMsg *pmsg)
 {
 	struct vhost_vring_file file;
@@ -769,6 +769,8 @@ vhost_user_set_vring_kick(struct virtio_net *dev, struct VhostUserMsg *pmsg)
 		if (notify_ops->new_device(dev->vid) == 0)
 			dev->flags |= VIRTIO_DEV_RUNNING;
 	}
+
+	return 0;
 }
 
 static void
@@ -847,14 +849,19 @@ vhost_user_set_vring_enable(struct virtio_net *dev,
 	return 0;
 }
 
-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;
 }
 
 static int
@@ -1087,7 +1094,7 @@ vhost_user_msg_handler(int vid, int fd)
 		send_vhost_message(fd, &msg);
 		break;
 	case VHOST_USER_SET_FEATURES:
-		vhost_user_set_features(dev, msg.payload.u64);
+		ret = vhost_user_set_features(dev, msg.payload.u64);
 		break;
 
 	case VHOST_USER_GET_PROTOCOL_FEATURES:
@@ -1096,14 +1103,14 @@ vhost_user_msg_handler(int vid, int fd)
 		send_vhost_message(fd, &msg);
 		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;
 
 	case VHOST_USER_SET_MEM_TABLE:
@@ -1111,8 +1118,9 @@ vhost_user_msg_handler(int vid, int fd)
 		break;
 
 	case VHOST_USER_SET_LOG_BASE:
-		vhost_user_set_log_base(dev, &msg);
-
+		ret = vhost_user_set_log_base(dev, &msg);
+		if (ret)
+			break;
 		/* it needs a reply */
 		msg.size = sizeof(msg.payload.u64);
 		send_vhost_message(fd, &msg);
@@ -1123,23 +1131,25 @@ vhost_user_msg_handler(int vid, int fd)
 		break;
 
 	case VHOST_USER_SET_VRING_NUM:
-		vhost_user_set_vring_num(dev, &msg.payload.state);
+		ret = vhost_user_set_vring_num(dev, &msg.payload.state);
 		break;
 	case VHOST_USER_SET_VRING_ADDR:
-		vhost_user_set_vring_addr(&dev, &msg.payload.addr);
+		ret = vhost_user_set_vring_addr(&dev, &msg.payload.addr);
 		break;
 	case VHOST_USER_SET_VRING_BASE:
-		vhost_user_set_vring_base(dev, &msg.payload.state);
+		ret = vhost_user_set_vring_base(dev, &msg.payload.state);
 		break;
 
 	case VHOST_USER_GET_VRING_BASE:
 		ret = vhost_user_get_vring_base(dev, &msg.payload.state);
+		if (ret)
+			break;
 		msg.size = sizeof(msg.payload.state);
 		send_vhost_message(fd, &msg);
 		break;
 
 	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:
 		vhost_user_set_vring_call(dev, &msg);
@@ -1158,10 +1168,10 @@ vhost_user_msg_handler(int vid, int fd)
 		break;
 
 	case VHOST_USER_SET_VRING_ENABLE:
-		vhost_user_set_vring_enable(dev, &msg.payload.state);
+		ret = vhost_user_set_vring_enable(dev, &msg.payload.state);
 		break;
 	case VHOST_USER_SEND_RARP:
-		vhost_user_send_rarp(dev, &msg);
+		ret = vhost_user_send_rarp(dev, &msg);
 		break;
 
 	default:
@@ -1172,5 +1182,11 @@ vhost_user_msg_handler(int vid, int fd)
 	if (unlock_required)
 		vhost_user_unlock_all_queue_pairs(dev);
 
+	if (ret) {
+		RTE_LOG(ERR, VHOST_CONFIG,
+			"vhost message handling failed.\n");
+		return -1;
+	}
+
 	return 0;
 }
-- 
2.18.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-09-25 13:26:56.888449909 +0100
+++ 0005-vhost-user-drop-connection-on-message-handling-failu.patch	2018-09-25 13:26:56.775424702 +0100
@@ -1,8 +1,10 @@
-From 0d7853a4da3bd681005ecb64ef1183c59356eeea Mon Sep 17 00:00:00 2001
+From 1f663861f80ab4de51216ae5e1c0a3a88d52dd85 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,46 +24,37 @@
 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>
 ---
- lib/librte_vhost/vhost_user.c | 51 +++++++++++++++++++++--------------
- 1 file changed, 31 insertions(+), 20 deletions(-)
+ lib/librte_vhost/vhost_user.c | 48 +++++++++++++++++++++++------------
+ 1 file changed, 32 insertions(+), 16 deletions(-)
 
 diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
-index 9aa1ce1181..63d145b2d6 100644
+index 04c92ceb30..f3b286e72f 100644
 --- a/lib/librte_vhost/vhost_user.c
 +++ b/lib/librte_vhost/vhost_user.c
-@@ -1014,7 +1014,7 @@ vhost_user_set_vring_call(struct virtio_net *dev, struct VhostUserMsg *pmsg)
- 	vq->callfd = file.fd;
- }
- 
+@@ -741,7 +741,7 @@ vhost_user_set_vring_call(struct virtio_net *dev, struct VhostUserMsg *pmsg)
+  *  In vhost-user, when we receive kick message, will test whether virtio
+  *  device is ready for packet processing.
+  */
 -static void
 +static int
- vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *pmsg)
+ vhost_user_set_vring_kick(struct virtio_net *dev, struct VhostUserMsg *pmsg)
  {
  	struct vhost_vring_file file;
-@@ -1032,7 +1032,7 @@ vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *pmsg)
- 	/* Interpret ring addresses only when ring is started. */
- 	dev = translate_ring_addresses(dev, file.index);
- 	if (!dev)
--		return;
-+		return -1;
- 
- 	*pdev = dev;
- 
-@@ -1049,6 +1049,7 @@ vhost_user_set_vring_kick(struct virtio_net **pdev, struct VhostUserMsg *pmsg)
- 	if (vq->kickfd >= 0)
- 		close(vq->kickfd);
- 	vq->kickfd = file.fd;
+@@ -769,6 +769,8 @@ vhost_user_set_vring_kick(struct virtio_net *dev, struct VhostUserMsg *pmsg)
+ 		if (notify_ops->new_device(dev->vid) == 0)
+ 			dev->flags |= VIRTIO_DEV_RUNNING;
+ 	}
++
 +	return 0;
  }
  
  static void
-@@ -1172,14 +1173,19 @@ vhost_user_get_protocol_features(struct virtio_net *dev,
- 	msg->size = sizeof(msg->payload.u64);
+@@ -847,14 +849,19 @@ vhost_user_set_vring_enable(struct virtio_net *dev,
+ 	return 0;
  }
  
 -static void
@@ -83,17 +76,17 @@
  }
  
  static int
-@@ -1657,8 +1663,6 @@ vhost_user_msg_handler(int vid, int fd)
+@@ -1087,7 +1094,7 @@ vhost_user_msg_handler(int vid, int fd)
+ 		send_vhost_message(fd, &msg);
  		break;
  	case VHOST_USER_SET_FEATURES:
- 		ret = vhost_user_set_features(dev, msg.payload.u64);
--		if (ret)
--			return -1;
+-		vhost_user_set_features(dev, msg.payload.u64);
++		ret = vhost_user_set_features(dev, msg.payload.u64);
  		break;
  
  	case VHOST_USER_GET_PROTOCOL_FEATURES:
-@@ -1666,14 +1670,14 @@ vhost_user_msg_handler(int vid, int fd)
- 		send_vhost_reply(fd, &msg);
+@@ -1096,14 +1103,14 @@ vhost_user_msg_handler(int vid, int fd)
+ 		send_vhost_message(fd, &msg);
  		break;
  	case VHOST_USER_SET_PROTOCOL_FEATURES:
 -		vhost_user_set_protocol_features(dev, msg.payload.u64);
@@ -110,7 +103,7 @@
  		break;
  
  	case VHOST_USER_SET_MEM_TABLE:
-@@ -1681,8 +1685,9 @@ vhost_user_msg_handler(int vid, int fd)
+@@ -1111,8 +1118,9 @@ vhost_user_msg_handler(int vid, int fd)
  		break;
  
  	case VHOST_USER_SET_LOG_BASE:
@@ -118,74 +111,65 @@
 -
 +		ret = vhost_user_set_log_base(dev, &msg);
 +		if (ret)
-+			goto skip_to_reply;
++			break;
  		/* it needs a reply */
  		msg.size = sizeof(msg.payload.u64);
- 		send_vhost_reply(fd, &msg);
-@@ -1693,23 +1698,25 @@ vhost_user_msg_handler(int vid, int fd)
+ 		send_vhost_message(fd, &msg);
+@@ -1123,23 +1131,25 @@ vhost_user_msg_handler(int vid, int fd)
  		break;
  
  	case VHOST_USER_SET_VRING_NUM:
--		vhost_user_set_vring_num(dev, &msg);
-+		ret = vhost_user_set_vring_num(dev, &msg);
+-		vhost_user_set_vring_num(dev, &msg.payload.state);
++		ret = vhost_user_set_vring_num(dev, &msg.payload.state);
  		break;
  	case VHOST_USER_SET_VRING_ADDR:
--		vhost_user_set_vring_addr(&dev, &msg);
-+		ret = vhost_user_set_vring_addr(&dev, &msg);
+-		vhost_user_set_vring_addr(&dev, &msg.payload.addr);
++		ret = vhost_user_set_vring_addr(&dev, &msg.payload.addr);
  		break;
  	case VHOST_USER_SET_VRING_BASE:
--		vhost_user_set_vring_base(dev, &msg);
-+		ret = vhost_user_set_vring_base(dev, &msg);
+-		vhost_user_set_vring_base(dev, &msg.payload.state);
++		ret = vhost_user_set_vring_base(dev, &msg.payload.state);
  		break;
  
  	case VHOST_USER_GET_VRING_BASE:
--		vhost_user_get_vring_base(dev, &msg);
-+		ret = vhost_user_get_vring_base(dev, &msg);
+ 		ret = vhost_user_get_vring_base(dev, &msg.payload.state);
 +		if (ret)
-+			goto skip_to_reply;
++			break;
  		msg.size = sizeof(msg.payload.state);
- 		send_vhost_reply(fd, &msg);
+ 		send_vhost_message(fd, &msg);
  		break;
  
  	case VHOST_USER_SET_VRING_KICK:
--		vhost_user_set_vring_kick(&dev, &msg);
-+		ret = vhost_user_set_vring_kick(&dev, &msg);
+-		vhost_user_set_vring_kick(dev, &msg);
++		ret = vhost_user_set_vring_kick(dev, &msg);
  		break;
  	case VHOST_USER_SET_VRING_CALL:
  		vhost_user_set_vring_call(dev, &msg);
-@@ -1728,10 +1735,10 @@ vhost_user_msg_handler(int vid, int fd)
+@@ -1158,10 +1168,10 @@ vhost_user_msg_handler(int vid, int fd)
  		break;
  
  	case VHOST_USER_SET_VRING_ENABLE:
--		vhost_user_set_vring_enable(dev, &msg);
-+		ret = vhost_user_set_vring_enable(dev, &msg);
+-		vhost_user_set_vring_enable(dev, &msg.payload.state);
++		ret = vhost_user_set_vring_enable(dev, &msg.payload.state);
  		break;
  	case VHOST_USER_SEND_RARP:
 -		vhost_user_send_rarp(dev, &msg);
 +		ret = vhost_user_send_rarp(dev, &msg);
  		break;
  
- 	case VHOST_USER_NET_SET_MTU:
-@@ -1752,7 +1759,7 @@ vhost_user_msg_handler(int vid, int fd)
- 	}
+ 	default:
+@@ -1172,5 +1182,11 @@ vhost_user_msg_handler(int vid, int fd)
+ 	if (unlock_required)
+ 		vhost_user_unlock_all_queue_pairs(dev);
  
- skip_to_post_handle:
--	if (dev->extern_ops.post_msg_handle) {
-+	if (!ret && dev->extern_ops.post_msg_handle) {
- 		uint32_t need_reply;
- 
- 		ret = (*dev->extern_ops.post_msg_handle)(
-@@ -1772,6 +1779,10 @@ skip_to_reply:
- 		msg.payload.u64 = !!ret;
- 		msg.size = sizeof(msg.payload.u64);
- 		send_vhost_reply(fd, &msg);
-+	} else if (ret) {
++	if (ret) {
 +		RTE_LOG(ERR, VHOST_CONFIG,
 +			"vhost message handling failed.\n");
 +		return -1;
- 	}
- 
- 	if (!(dev->flags & VIRTIO_DEV_RUNNING) && virtio_is_ready(dev)) {
++	}
++
+ 	return 0;
+ }
 -- 
 2.18.0
 

  parent reply	other threads:[~2018-09-27  8:44 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-27  8:43 [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Luca Boccassi
2018-09-27  8:43 ` [dpdk-stable] patch 'net/nfp: fix live MAC changes not supported' " Luca Boccassi
2018-09-27  8:43 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Luca Boccassi
2018-09-27  8:43 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Luca Boccassi
2018-09-27  8:44 ` Luca Boccassi [this message]
2018-09-27  8:44 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Luca Boccassi
2018-09-27  8:44 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Luca Boccassi
2018-09-27  8:44 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Luca Boccassi
2018-10-03 16:21 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Luca Boccassi
2018-10-03 16:52   ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'ethdev: fix doxygen comment to be with structure' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'net/virtio: add missing supported features' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'vhost: fix corner case for enqueue operation' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'net/bonding: stop and deactivate slaves on stop' " Luca Boccassi
2018-10-03 16:52     ` [dpdk-stable] patch 'test/crypto: fix number of queue pairs' " Luca Boccassi
2018-10-15 11:51   ` [dpdk-stable] patch 'net/i40e: fix send admin queue command before init' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/i40e/base: fix partition id calculation for X722' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/i40e/base: properly clean resources' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/i40e/base: gracefully clean the " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/i40e/base: correct global reset timeout calculation' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/ixgbe: wait longer for link after fiber MAC setup' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/enic: do not use non-standard integer types' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/enic: set Rx VLAN offload flag for non-stripped packets' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/nfp: fix RSS' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnx2x: fix logging to include device name' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnx2x: fix to disable further interrupts' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnx2x: fix call to link handling periodic function' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnx2x: fix to add PHY lock' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: fix uninitialized pointer access in Tx' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: set MAC filtering as outer for non tunnel frames' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: set a VNIC as default only once' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: remove excess log messages' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/bnxt: reduce polling interval for valid bit' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'app/testpmd: fix csum parse-tunnel command invocation' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'app/testpmd: fix displaying RSS hash functions' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'doc: add VFIO in ENA guide' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'app/testpmd: fix duplicate exit' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'net/e1000: do not error out if Rx drop enable is set' " Luca Boccassi
2018-10-15 11:51     ` [dpdk-stable] patch 'eal: use correct data type for bitmap slab operations' " Luca Boccassi
2018-10-29 12:53     ` [dpdk-stable] patch 'net/e1000: do not error out if Rx drop enable is set' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'eal: use correct data type for bitmap slab operations' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'vhost: fix payload size of reply' " Luca Boccassi
2018-10-29 13:12         ` Ilya Maximets
2018-10-29 16:32           ` Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'kvargs: fix processing a null list' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'test/hash: fix bucket size in perf test' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'hash: fix key store element alignment' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'kni: fix build on Linux 4.19' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'kni: fix kernel FIFO synchronization' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'test/kni: check module dependency' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'hash: remove unnecessary pause' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'kni: fix build on Linux < 3.14' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/i40e: update Tx offload mask' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/ixgbe: " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'doc: fix typo in testpmd guide' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'ip_frag: fix overflow in key comparison' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'eal/linux: fix memory leak of logid' " Luca Boccassi
2018-10-29 12:53       ` [dpdk-stable] patch 'fix global variable issues' " Luca Boccassi
2018-11-08 18:00         ` [dpdk-stable] patch 'net/virtio: register/unregister intr handler on start/stop' " Luca Boccassi
2018-11-08 18:00           ` [dpdk-stable] patch 'eal/linux: handle UIO read failure in interrupt handler' " Luca Boccassi
2018-11-08 18:00           ` [dpdk-stable] patch 'mk: disable gcc AVX512F support' " Luca Boccassi
2018-11-09  6:52             ` Christian Ehrhardt
2018-11-09 10:48               ` Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'eal: fix build with gcc 9.0' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'net/vhost: fix parameters string' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'net/virtio-user: do not reset owner when driver resets' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'net: fix build with pedantic' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'net/igb: update Tx offload mask' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'ip_frag: check fragment length of incoming packet' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'ip_frag: use key length for key comparison' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'bus/pci: compare kernel driver instead of interrupt handler' " Luca Boccassi
2018-11-12 18:35             ` Luca Boccassi
2018-11-14 10:02               ` Alejandro Lucero
2018-11-14 11:07                 ` Luca Boccassi
2018-11-14 11:36                   ` Alejandro Lucero
2018-11-15 17:34                     ` Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'bus/pci: fix config r/w access' " Luca Boccassi
2018-11-08 18:18             ` Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'test/hash: fix build' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'igb_uio: issue FLR during open and release of device file' " Luca Boccassi
2018-11-08 18:16             ` Luca Boccassi
2018-11-09  9:32               ` Shijith Thotton
2018-11-09 10:43                 ` Luca Boccassi
2018-11-09 14:26               ` [dpdk-stable] patch 'igb_uio: remove device reset in open' " Luca Boccassi
2018-11-09 14:26                 ` [dpdk-stable] patch 'igb_uio: remove device reset in release' " Luca Boccassi
2018-11-08 18:01           ` [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' " Luca Boccassi
2018-11-19 12:25           ` [dpdk-stable] patch 'eal: introduce rte version of fls' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'eal: fix build' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'pci: fix parsing of address without function number' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/e1000/base: fix uninitialized variable' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/mlx5: fix build on PPC64' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/thunderx: fix Tx desc corruption in scatter-gather mode' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/virtio-user: fix typo in error message' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/virtio: fix unchecked return value' " Luca Boccassi
2018-11-19 12:48               ` Tiwei Bie
2018-11-19 12:52                 ` Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'vhost: remove unneeded null pointer check' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/bnx2x: fix VF link state update' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/bonding: fix crash when stopping mode 4 port' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'app/testpmd: fix L4 length for UDP checksum' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'ethdev: fix invalid configuration after failure' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/ixgbevf: fix link state' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'test/reorder: fix out of bound access' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/i40e: fix X710 Rx after reading some registers' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'net/ixgbe: fix maximum wait time in comment' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'examples/ipv4_multicast: fix leak of cloned packets' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'usertools: check for lspci dependency' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' " Luca Boccassi
2018-11-19 12:25             ` [dpdk-stable] patch 'doc: fix formatting in IP reassembly app " Luca Boccassi
2018-11-26 12:49             ` [dpdk-stable] patch 'eal: fix build with -O1' " Luca Boccassi
2018-11-26 12:49               ` [dpdk-stable] patch 'kni: fix possible uninitialized variable' " Luca Boccassi
2018-11-26 12:49               ` [dpdk-stable] patch 'config: enable more than 128 cores for arm64' " Luca Boccassi
2018-11-26 12:49               ` [dpdk-stable] patch 'net/ixgbe: fix TDH register write' " Luca Boccassi
2018-11-26 12:49               ` [dpdk-stable] patch 'bus/pci: fix allocation of device path' " Luca Boccassi
2018-11-28 10:11               ` [dpdk-stable] patch 'fix dpdk.org URLs' " Luca Boccassi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180927084403.19646-5-bluca@debian.org \
    --to=bluca@debian.org \
    --cc=i.maximets@samsung.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).