From a99e8df63f8ab4b782dc5249682ab1152ff2965f Mon Sep 17 00:00:00 2001 From: Anatoly Burakov Date: Fri, 20 Apr 2018 16:25:25 +0100 Subject: [PATCH] mem: fix 32-bit memory upper limit for non-legacy mode 32-bit mode has an upper limit on amount of VA space it can preallocate, but the original implementation used the wrong constant, resulting in failure to initialize due to integer overflow. Fix it by using the correct constant. Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists") Signed-off-by: Anatoly Burakov Tested-by: Jananee Parthasarathy --- lib/librte_eal/common/eal_common_memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_eal/common/eal_common_memory.c b/lib/librte_eal/common/eal_common_memory.c index 3e30c58445..54329dcbc3 100644 --- a/lib/librte_eal/common/eal_common_memory.c +++ b/lib/librte_eal/common/eal_common_memory.c @@ -249,7 +249,7 @@ memseg_primary_init_32(void) else total_requested_mem = internal_config.memory; - max_mem = (uint64_t) RTE_MAX_MEM_MB_PER_TYPE << 20; + max_mem = (uint64_t)RTE_MAX_MEM_MB << 20; if (total_requested_mem > max_mem) { RTE_LOG(ERR, EAL, "Invalid parameters: 32-bit process can at most use %uM of memory\n", (unsigned int)(max_mem >> 20)); -- 2.20.1