[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [PATCH ARM v10 2/2] arm: build system



On Tue, 2015-09-01 at 17:35 +0100, Ian Campbell wrote:

> Lastly I'm afraid the build rune supplied in the commit message doesn't
> work for me, lots of -Werror=int-to-pointer-cast, see attached output from:
 
The patch below resolves this aspect for me. I suspect the use of &
0xffffffff is unnecessary and may also hide real bugs, but I didn't try
touching it yet.

With that I am left with:
mm.c: In function âarch_init_gnttabâ:
mm.c:130:105: error: assignment from incompatible pointer type [-Werror]
     set_xen_guest_handle(setup.frame_list, frames);

The field setup.frame_list is (from include/xen/grant_table.h)

    struct gnttab_setup_table {
        /* IN parameters. */
        domid_t  dom;
        uint32_t nr_frames;
        /* OUT parameters. */
        int16_t  status;              /* => enum grant_status */
    #if __XEN_INTERFACE_VERSION__ < 0x00040300
        XEN_GUEST_HANDLE(ulong) frame_list;
    #else
        XEN_GUEST_HANDLE(xen_pfn_t) frame_list;
    #endif
    };

and Config.mk says:
    XEN_INTERFACE_VERSION := 0x00030205

So setup.frame_list is (incorrectly) a ulong here, while frames is
(correctly) of xen_pfn_t.

I don't see how XEN_INTERFACE_VERSION := 0x00030205 can ever work on ARM.

NaÃvely just bumping it to 0x00040500 just showed that lots of places would
need updating to match that change.

Ian.

8>---------

From 38ab51a7b03f560ba0900e5e8faf943620f628e0 Mon Sep 17 00:00:00 2001
From: Ian Campbell <ian.campbell@xxxxxxxxxx>
Date: Fri, 4 Sep 2015 11:38:39 +0100
Subject: [PATCH] arm: Use uintptr_t in to_phys/to_virt
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This avoids lots of:
mm.c: In function âalloc_pagesâ:
mm.c:297:34: error: cast from pointer to integer of different size 
[-Werror=pointer-to-int-cast]
     map_alloc(PHYS_PFN(to_phys(alloc_ch)), 1UL<<order);

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
 include/arm/arch_mm.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/arm/arch_mm.h b/include/arm/arch_mm.h
index 085d4e5..f7fb66f 100644
--- a/include/arm/arch_mm.h
+++ b/include/arm/arch_mm.h
@@ -14,8 +14,8 @@ extern uint32_t physical_address_offset;      /* Add this to 
a virtual address to get
 
 #define L1_PAGETABLE_SHIFT      12
 
-#define to_phys(x)                 (((paddr_t)(x)+physical_address_offset) & 
0xffffffff)
-#define to_virt(x)                 ((void *)(((x)-physical_address_offset) & 
0xffffffff))
+#define to_phys(x)                 
(((paddr_t)(uintptr_t)(x)+physical_address_offset) & 0xffffffff)
+#define to_virt(x)                 ((void 
*)(((uintptr_t)(x)-physical_address_offset) & 0xffffffff))
 
 #define PFN_UP(x)    (unsigned long)(((x) + PAGE_SIZE-1) >> L1_PAGETABLE_SHIFT)
 #define PFN_DOWN(x)    (unsigned long)((x) >> L1_PAGETABLE_SHIFT)
-- 
2.1.4


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.