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 <anatoly.burakov@intel.com>
Tested-by: Jananee Parthasarathy <jananeex.m.parthasarathy@intel.com>
This commit is contained in:
Anatoly Burakov 2018-04-20 16:25:25 +01:00 committed by Thomas Monjalon
parent 64b6fcb161
commit a99e8df63f

View File

@ -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));