[dpdk-stable] patch 'bus/vmbus: fix resource leak on error' has been queued to LTS release 18.11.2

Kevin Traynor ktraynor at redhat.com
Wed May 8 12:15:08 CEST 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.2

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

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/83280795ebec271266b3dd466685134ddef18888

Thanks.

Kevin Traynor

---
>From 83280795ebec271266b3dd466685134ddef18888 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Wed, 17 Apr 2019 11:45:06 -0700
Subject: [PATCH] bus/vmbus: fix resource leak on error

[ upstream commit 26ed007067e86bb3d587c048d130cd13bee6b07a ]

If secondary process attempt to mmap the resource resulted in
the wrong address, then it would leave behind the bad mmap.

Coverity issue: 337675, 337664
Fixes: 2a28a502c607 ("bus/vmbus: map ring in secondary process")

Signed-off-by: Stephen Hemminger <sthemmin at microsoft.com>
---
 drivers/bus/vmbus/linux/vmbus_uio.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/vmbus/linux/vmbus_uio.c b/drivers/bus/vmbus/linux/vmbus_uio.c
index a6b3e9201..7cab5c19f 100644
--- a/drivers/bus/vmbus/linux/vmbus_uio.c
+++ b/drivers/bus/vmbus/linux/vmbus_uio.c
@@ -284,8 +284,10 @@ vmbus_uio_map_secondary_subchan(const struct rte_vmbus_device *dev,
 		VMBUS_LOG(ERR,
 			  "mmap subchan %u in secondary failed", chan->relid);
-	else
+	else {
 		VMBUS_LOG(ERR,
 			  "mmap subchan %u in secondary address mismatch",
 			  chan->relid);
+		vmbus_unmap_resource(mapaddr, 2 * ring_size);
+	}
 	return -1;
 }
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-05-08 11:05:07.137443768 +0100
+++ 0026-bus-vmbus-fix-resource-leak-on-error.patch	2019-05-08 11:05:05.810933159 +0100
@@ -1 +1 @@
-From 26ed007067e86bb3d587c048d130cd13bee6b07a Mon Sep 17 00:00:00 2001
+From 83280795ebec271266b3dd466685134ddef18888 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 26ed007067e86bb3d587c048d130cd13bee6b07a ]
+
@@ -14,3 +16,2 @@
- drivers/bus/vmbus/linux/vmbus_uio.c  | 4 +++-
- drivers/bus/vmbus/vmbus_common_uio.c | 4 +++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
+ drivers/bus/vmbus/linux/vmbus_uio.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
@@ -19 +20 @@
-index fb60ee126..be6b677f9 100644
+index a6b3e9201..7cab5c19f 100644
@@ -34,15 +34,0 @@
-diff --git a/drivers/bus/vmbus/vmbus_common_uio.c b/drivers/bus/vmbus/vmbus_common_uio.c
-index 1aa5cb2e4..8e476f2ea 100644
---- a/drivers/bus/vmbus/vmbus_common_uio.c
-+++ b/drivers/bus/vmbus/vmbus_common_uio.c
-@@ -76,7 +76,9 @@ vmbus_uio_map_secondary(struct rte_vmbus_device *dev)
- 			VMBUS_LOG(ERR,
- 				  "mmap resource %d in secondary failed", i);
--		else
-+		else {
- 			VMBUS_LOG(ERR,
- 				  "mmap resource %d address mismatch", i);
-+			vmbus_unmap_resource(mapaddr, uio_res->maps[i].size);
-+		}
- 
- 		close(fd);


More information about the stable mailing list