[dpdk-stable] patch 'malloc: make alignment requirements more stringent' has been queued to LTS release 18.11.1

Kevin Traynor ktraynor at redhat.com
Fri Jan 4 14:24:15 CET 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.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 01/11/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.

Thanks.

Kevin Traynor

---
>From a6cabceceb71448498795c29fdd0fc450a8abe5b Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov at intel.com>
Date: Fri, 14 Dec 2018 11:54:01 +0000
Subject: [PATCH] malloc: make alignment requirements more stringent

[ upstream commit 646e5260ee5371709042b0e2712822ba3ea63fe3 ]

The external heaps API already implicitly expects start address
of the external memory area to be page-aligned, but it is not
enforced or documented. Fix this by implementing additional
parameter checks at memory add call, and document the page
alignment requirement explicitly.

Fixes: 7d75c31014f7 ("malloc: allow adding memory to named heaps")

Suggested-by: Yongseok Koh <yskoh at mellanox.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Yongseok Koh <yskoh at mellanox.com>
---
 lib/librte_eal/common/include/rte_malloc.h | 4 ++--
 lib/librte_eal/common/rte_malloc.c         | 8 +++-----
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/lib/librte_eal/common/include/rte_malloc.h b/lib/librte_eal/common/include/rte_malloc.h
index 7249e6aae..a5290b074 100644
--- a/lib/librte_eal/common/include/rte_malloc.h
+++ b/lib/librte_eal/common/include/rte_malloc.h
@@ -283,7 +283,7 @@ rte_malloc_get_socket_stats(int socket,
  *   Name of the heap to add memory chunk to
  * @param va_addr
- *   Start of virtual area to add to the heap
+ *   Start of virtual area to add to the heap. Must be aligned by ``page_sz``.
  * @param len
- *   Length of virtual area to add to the heap
+ *   Length of virtual area to add to the heap. Must be aligned by ``page_sz``.
  * @param iova_addrs
  *   Array of page IOVA addresses corresponding to each page in this memory
diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
index 5f07b981a..06cf1e666 100644
--- a/lib/librte_eal/common/rte_malloc.c
+++ b/lib/librte_eal/common/rte_malloc.c
@@ -346,4 +346,7 @@ rte_malloc_heap_memory_add(const char *heap_name, void *va_addr, size_t len,
 	if (heap_name == NULL || va_addr == NULL ||
 			page_sz == 0 || !rte_is_power_of_2(page_sz) ||
+			RTE_ALIGN(len, page_sz) != len ||
+			!rte_is_aligned(va_addr, page_sz) ||
+			((len / page_sz) != n_pages && iova_addrs != NULL) ||
 			strnlen(heap_name, RTE_HEAP_NAME_MAX_LEN) == 0 ||
 			strnlen(heap_name, RTE_HEAP_NAME_MAX_LEN) ==
@@ -368,9 +371,4 @@ rte_malloc_heap_memory_add(const char *heap_name, void *va_addr, size_t len,
 	}
 	n = len / page_sz;
-	if (n != n_pages && iova_addrs != NULL) {
-		rte_errno = EINVAL;
-		ret = -1;
-		goto unlock;
-	}
 
 	rte_spinlock_lock(&heap->lock);
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-01-04 13:23:08.232335009 +0000
+++ 0033-malloc-make-alignment-requirements-more-stringent.patch	2019-01-04 13:23:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 646e5260ee5371709042b0e2712822ba3ea63fe3 Mon Sep 17 00:00:00 2001
+From a6cabceceb71448498795c29fdd0fc450a8abe5b Mon Sep 17 00:00:00 2001
 From: Anatoly Burakov <anatoly.burakov at intel.com>
 Date: Fri, 14 Dec 2018 11:54:01 +0000
 Subject: [PATCH] malloc: make alignment requirements more stringent
 
+[ upstream commit 646e5260ee5371709042b0e2712822ba3ea63fe3 ]
+
 The external heaps API already implicitly expects start address
 of the external memory area to be page-aligned, but it is not
 enforced or documented. Fix this by implementing additional
@@ -10,7 +12,6 @@
 alignment requirement explicitly.
 
 Fixes: 7d75c31014f7 ("malloc: allow adding memory to named heaps")
-Cc: stable at dpdk.org
 
 Suggested-by: Yongseok Koh <yskoh at mellanox.com>
 Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>


More information about the stable mailing list