[dpdk-dev] [PATCH 1/2] eal: fix use of RTE_PTR_ALIGN_CEIL macro on 32bits system
David Marchand
david.marchand at 6wind.com
Fri Feb 28 09:21:35 CET 2014
Build issue reported by Mats Liljegren :
CC eal.o
In file included from
/home/lwrt/build/dpdk/lib/librte_eal/linuxapp/eal/eal.c:55:0:
/home/lwrt/build/dpdk/lib/librte_eal/linuxapp/eal/eal.c: In function
‘eal_parse_base_virtaddr’:
/home/lwrt/build/dpdk/i686-default-linuxapp-gcc/include/rte_common.h:133:22:
error: cast from pointer to integer of different size
[-Werror=pointer-to-int-cast]
RTE_PTR_ALIGN_FLOOR((typeof(ptr))RTE_PTR_ADD(ptr, (align) - 1), align)
^
/home/lwrt/build/dpdk/i686-default-linuxapp-gcc/include/rte_common.h:115:10:
note: in definition of macro ‘RTE_PTR_ALIGN_FLOOR’
(typeof(ptr))rte_align_floor_int((uintptr_t)ptr, align)
^
/home/lwrt/build/dpdk/lib/librte_eal/linuxapp/eal/eal.c:566:9: note:
in expansion of macro ‘RTE_PTR_ALIGN_CEIL’
addr = RTE_PTR_ALIGN_CEIL(addr, RTE_PGSIZE_2M);
^
/home/lwrt/build/dpdk/i686-default-linuxapp-gcc/include/rte_common.h:133:22:
error: cast from pointer to integer of different size
[-Werror=pointer-to-int-cast]
RTE_PTR_ALIGN_FLOOR((typeof(ptr))RTE_PTR_ADD(ptr, (align) - 1), align)
^
/home/lwrt/build/dpdk/i686-default-linuxapp-gcc/include/rte_common.h:115:46:
note: in definition of macro ‘RTE_PTR_ALIGN_FLOOR’
(typeof(ptr))rte_align_floor_int((uintptr_t)ptr, align)
^
/home/lwrt/build/dpdk/lib/librte_eal/linuxapp/eal/eal.c:566:9: note:
in expansion of macro ‘RTE_PTR_ALIGN_CEIL’
addr = RTE_PTR_ALIGN_CEIL(addr, RTE_PGSIZE_2M);
^
cc1: all warnings being treated as errors
RTE_PTR_ALIGN_CEIL return type is the same as what we give it as input.
So instead of casting the returned value, cast 'addr' which should be the same
as base_virtaddr.
Reported-by: Mats Liljegren <mats.liljegren at enea.com>
Signed-off-by: David Marchand <david.marchand at 6wind.com>
---
lib/librte_eal/linuxapp/eal/eal.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index db0e15c..72b4dd7 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -563,9 +563,9 @@ eal_parse_base_virtaddr(const char *arg)
#endif
/* align the addr on 2M boundary */
- addr = RTE_PTR_ALIGN_CEIL(addr, RTE_PGSIZE_2M);
+ internal_config.base_virtaddr = RTE_PTR_ALIGN_CEIL((uintptr_t)addr,
+ RTE_PGSIZE_2M);
- internal_config.base_virtaddr = (uintptr_t) addr;
return 0;
}
--
1.7.10.4
More information about the dev
mailing list