* [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).