* [PATCH 1/2] eal: fix use of RTE_PTR_ALIGN_CEIL macro on 32bits system @ 2014-02-28 8:21 David Marchand [not found] ` <1393575696-25289-1-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: David Marchand @ 2014-02-28 8:21 UTC (permalink / raw) To: liljegren.mats2-Re5JQEeQqe8AvxtiuMwx3w; +Cc: dev-VfR2kkLFssw 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-AM1FMPraTHU@public.gmane.org> Signed-off-by: David Marchand <david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> --- 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 ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <1393575696-25289-1-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>]
* [PATCH 2/2] mem: fix build on 32bits system [not found] ` <1393575696-25289-1-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> @ 2014-02-28 8:21 ` David Marchand [not found] ` <1393575696-25289-2-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 2014-03-20 14:40 ` [PATCH 1/2] eal: fix use of RTE_PTR_ALIGN_CEIL macro " Thomas Monjalon 1 sibling, 1 reply; 4+ messages in thread From: David Marchand @ 2014-02-28 8:21 UTC (permalink / raw) To: liljegren.mats2-Re5JQEeQqe8AvxtiuMwx3w; +Cc: dev-VfR2kkLFssw Rebase commit 57c24af85d9eaa81549a212169605b4e2468a29f introduced a build regression for 32bits system. CC eal_memory.o /home/marchand/dpdk.org/lib/librte_eal/linuxapp/eal/eal_memory.c: In function ‘rte_mem_virt2phy’: /home/marchand/dpdk.org/lib/librte_eal/linuxapp/eal/eal_memory.c:140:12: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] virtual = (uint64_t) virtaddr; ^ cc1: all warnings being treated as errors Rework this patch so that it is equivalent to what we had in 1.5.2. Signed-off-by: David Marchand <david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> --- lib/librte_eal/linuxapp/eal/eal_memory.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c index 296f172..242f1b3 100644 --- a/lib/librte_eal/linuxapp/eal/eal_memory.c +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c @@ -131,13 +131,14 @@ phys_addr_t rte_mem_virt2phy(const void *virtaddr) { int fd; - uint64_t page, physaddr, virtual; - unsigned long virt_pfn; int page_size; + unsigned long virtual; + uint64_t page; + off_t offset; /* standard page size */ page_size = getpagesize(); - virtual = (uint64_t) virtaddr; + virtual = (unsigned long) virtaddr; fd = open("/proc/self/pagemap", O_RDONLY); if (fd < 0) { @@ -146,9 +147,7 @@ rte_mem_virt2phy(const void *virtaddr) return (uint64_t) -1; } - off_t offset; - virt_pfn = (unsigned long)virtaddr / page_size; - offset = sizeof(uint64_t) * virt_pfn; + offset = sizeof(uint64_t) * virtual / page_size; if (lseek(fd, offset, SEEK_SET) == (off_t) -1) { RTE_LOG(ERR, EAL, "%s(): seek error in /proc/self/pagemap: %s\n", __func__, strerror(errno)); @@ -166,9 +165,8 @@ rte_mem_virt2phy(const void *virtaddr) * the pfn (page frame number) are bits 0-54 (see * pagemap.txt in linux Documentation) */ - physaddr = ((page & 0x7fffffffffffffULL) * page_size) + (virtual % page_size); close(fd); - return physaddr; + return ((page & 0x7fffffffffffffULL) * page_size) + (virtual % page_size); } /* -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <1393575696-25289-2-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH 2/2] mem: fix build on 32bits system [not found] ` <1393575696-25289-2-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> @ 2014-03-20 14:43 ` Thomas Monjalon 0 siblings, 0 replies; 4+ messages in thread From: Thomas Monjalon @ 2014-03-20 14:43 UTC (permalink / raw) To: David Marchand, liljegren.mats2-Re5JQEeQqe8AvxtiuMwx3w; +Cc: dev-VfR2kkLFssw 28/02/2014 09:21, David Marchand : > Rebase commit 57c24af85d9eaa81549a212169605b4e2468a29f introduced a build > regression for 32bits system. The commit log of the rebased commit was also wrong for branch 1.6.0. So I've reverted the rebased commit and did a new one. It's better now. Thank you for reporting -- Thomas ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] eal: fix use of RTE_PTR_ALIGN_CEIL macro on 32bits system [not found] ` <1393575696-25289-1-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 2014-02-28 8:21 ` [PATCH 2/2] mem: fix build " David Marchand @ 2014-03-20 14:40 ` Thomas Monjalon 1 sibling, 0 replies; 4+ messages in thread From: Thomas Monjalon @ 2014-03-20 14:40 UTC (permalink / raw) To: dev-VfR2kkLFssw 28/02/2014 09:21, David Marchand : > 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-AM1FMPraTHU@public.gmane.org> > Signed-off-by: David Marchand <david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> Acked and applied with title "mem: fix build of virtual address hinting for 32-bit" Thank you -- Thomas ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-03-20 14:43 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-28 8:21 [PATCH 1/2] eal: fix use of RTE_PTR_ALIGN_CEIL macro on 32bits system David Marchand [not found] ` <1393575696-25289-1-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 2014-02-28 8:21 ` [PATCH 2/2] mem: fix build " David Marchand [not found] ` <1393575696-25289-2-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> 2014-03-20 14:43 ` Thomas Monjalon 2014-03-20 14:40 ` [PATCH 1/2] eal: fix use of RTE_PTR_ALIGN_CEIL macro " Thomas Monjalon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).