From 42c035e7bbfe95f26ee4ddf2559b94f574974a86 Mon Sep 17 00:00:00 2001 From: Michael Qiu Date: Wed, 10 Dec 2014 18:46:42 +0800 Subject: [PATCH] eal: fix build with icc lib/librte_eal/linuxapp/eal/eal.c(461): error #2259: non-pointer conversion from "long long" to "void *" may lose significant bits RTE_PTR_ALIGN_CEIL((uintptr_t)addr, RTE_PGSIZE_16M); The root cause is that "RTE_PGSIZE_16M" is defined as unsigned long long. But in i686 platform "void *" is 32-bit. It is safe to cast to size_t and make it works in both 32 & 64-bit platform. Signed-off-by: Michael Qiu Acked-by: Thomas Monjalon --- lib/librte_eal/linuxapp/eal/eal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 89f3b5eaad..2fb1acc201 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -458,7 +458,7 @@ eal_parse_base_virtaddr(const char *arg) * it can align to 2MB for x86. So this alignment can also be used * on x86 */ internal_config.base_virtaddr = - RTE_PTR_ALIGN_CEIL((uintptr_t)addr, RTE_PGSIZE_16M); + RTE_PTR_ALIGN_CEIL((uintptr_t)addr, (size_t)RTE_PGSIZE_16M); return 0; } -- 2.20.1