From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Marchand Subject: [PATCH 2/2] mem: fix build on 32bits system Date: Fri, 28 Feb 2014 09:21:36 +0100 Message-ID: <1393575696-25289-2-git-send-email-david.marchand@6wind.com> References: <1393575696-25289-1-git-send-email-david.marchand@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: dev-VfR2kkLFssw@public.gmane.org To: liljegren.mats2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Return-path: In-Reply-To: <1393575696-25289-1-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 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 func= tion =E2=80=98rte_mem_virt2phy=E2=80=99: /home/marchand/dpdk.org/lib/librte_eal/linuxapp/eal/eal_memory.c:140:12: = error: cast from pointer to integer of different size [-Werror=3Dpointer-to-int-cast] virtual =3D (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 --- 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/li= nuxapp/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; =20 /* standard page size */ page_size =3D getpagesize(); - virtual =3D (uint64_t) virtaddr; + virtual =3D (unsigned long) virtaddr; =20 fd =3D open("/proc/self/pagemap", O_RDONLY); if (fd < 0) { @@ -146,9 +147,7 @@ rte_mem_virt2phy(const void *virtaddr) return (uint64_t) -1; } =20 - off_t offset; - virt_pfn =3D (unsigned long)virtaddr / page_size; - offset =3D sizeof(uint64_t) * virt_pfn; + offset =3D sizeof(uint64_t) * virtual / page_size; if (lseek(fd, offset, SEEK_SET) =3D=3D (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 =3D ((page & 0x7fffffffffffffULL) * page_size) + (virtual % pa= ge_size); close(fd); - return physaddr; + return ((page & 0x7fffffffffffffULL) * page_size) + (virtual % page_siz= e); } =20 /* --=20 1.7.10.4