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

Re: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM



On Fri, 5 Oct 2012, Ian Campbell wrote:
> On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
> > diff --git a/xen/include/asm-arm/guest_access.h 
> > b/xen/include/asm-arm/guest_access.h
> > index 0fceae6..5686217 100644
> > --- a/xen/include/asm-arm/guest_access.h
> > +++ b/xen/include/asm-arm/guest_access.h
> > @@ -27,16 +27,40 @@ unsigned long raw_clear_guest(void *to, unsigned len);
> >  #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
> >  #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
> >  
> > -/* Cast a guest handle to the specified type of handle. */
> > +/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
> > + * to the specified type of XEN_GUEST_HANDLE_PARAM. */
> >  #define guest_handle_cast(hnd, type) ({         \
> >      type *_x = (hnd).p;                         \
> > -    (XEN_GUEST_HANDLE(type)) { _x };            \
> > +    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
> [...]
> >  #define guest_handle_from_ptr(ptr, type)        \
> > -    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
> > +    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
> >  #define const_guest_handle_from_ptr(ptr, type)  \
> > -    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
> > +    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
> 
> These little bits cause build breakage if you only apply to this point
> in the series (i.e. breaks bisectability):
>         grant_table.c: In function âdo_grant_table_opâ:
>         grant_table.c:2449:13: error: invalid initializer
>         grant_table.c:2456:17: error: incompatible types when assigning to 
> type â__guest_handle_64_voidâ from type â__guest_handle_voidâ
>         [lots more of the same]
> 
> I think this is because you have changed guest_handle_cast but you
> haven't yet changed the type of the parameter.
> 
> I haven't tried x86 but I can't see why the same problem wouldn't exist
> there also.
> 
> The obvious answer is to move these hunks into the next patch, but I
> think because of the split into patches 5/6 and 6/6 this will still
> cause problems. I'll try it though but I suspect we might end up having
> to squash 5+6 together?

You are right, I realize now that the series is not bisectable :(
It makes sense to squash 4, 5 and 6 together, the only reason why I kept
them separate is for readability.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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