[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] make all (native) hypercalls consistently have "long" return type
On 08/08/2012 17:05, "Jan Beulich" <JBeulich@xxxxxxxx> wrote: > for common and x86 ones at least, to address the problem of storing > zero-extended values into the multicall result field otherwise. > > Reported-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Keir Fraser <keir@xxxxxxx> Of course this should go in for the next 4.2 RC. -- Keir > --- a/xen/arch/x86/mm.c > +++ b/xen/arch/x86/mm.c > @@ -2973,7 +2973,7 @@ static inline void fixunmap_domain_page( > #define fixunmap_domain_page(ptr) ((void)(ptr)) > #endif > > -int do_mmuext_op( > +long do_mmuext_op( > XEN_GUEST_HANDLE(mmuext_op_t) uops, > unsigned int count, > XEN_GUEST_HANDLE(uint) pdone, > @@ -3437,7 +3437,7 @@ int do_mmuext_op( > return rc; > } > > -int do_mmu_update( > +long do_mmu_update( > XEN_GUEST_HANDLE(mmu_update_t) ureqs, > unsigned int count, > XEN_GUEST_HANDLE(uint) pdone, > @@ -4285,15 +4285,15 @@ static int __do_update_va_mapping( > return rc; > } > > -int do_update_va_mapping(unsigned long va, u64 val64, > - unsigned long flags) > +long do_update_va_mapping(unsigned long va, u64 val64, > + unsigned long flags) > { > return __do_update_va_mapping(va, val64, flags, current->domain); > } > > -int do_update_va_mapping_otherdomain(unsigned long va, u64 val64, > - unsigned long flags, > - domid_t domid) > +long do_update_va_mapping_otherdomain(unsigned long va, u64 val64, > + unsigned long flags, > + domid_t domid) > { > struct domain *pg_owner; > int rc; > --- a/xen/common/compat/xenoprof.c > +++ b/xen/common/compat/xenoprof.c > @@ -5,6 +5,7 @@ > #include <compat/xenoprof.h> > > #define COMPAT > +#define ret_t int > > #define do_xenoprof_op compat_xenoprof_op > > --- a/xen/common/kexec.c > +++ b/xen/common/kexec.c > @@ -845,8 +845,8 @@ static int kexec_exec(XEN_GUEST_HANDLE(v > return -EINVAL; /* never reached */ > } > > -int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg, > - int compat) > +static int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) > uarg, > + bool_t compat) > { > unsigned long flags; > int ret = -EINVAL; > --- a/xen/common/xenoprof.c > +++ b/xen/common/xenoprof.c > @@ -607,6 +607,8 @@ static int xenoprof_op_init(XEN_GUEST_HA > return (copy_to_guest(arg, &xenoprof_init, 1) ? -EFAULT : 0); > } > > +#define ret_t long > + > #endif /* !COMPAT */ > > static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg) > @@ -660,7 +662,7 @@ static int xenoprof_op_get_buffer(XEN_GU > || (op == XENOPROF_disable_virq) \ > || (op == XENOPROF_get_buffer)) > > -int do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg) > +ret_t do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg) > { > int ret = 0; > > @@ -904,6 +906,7 @@ int do_xenoprof_op(int op, XEN_GUEST_HAN > } > > #if defined(CONFIG_COMPAT) && !defined(COMPAT) > +#undef ret_t > #include "compat/xenoprof.c" > #endif > > --- a/xen/include/asm-x86/hypercall.h > +++ b/xen/include/asm-x86/hypercall.h > @@ -24,7 +24,7 @@ extern long > do_set_trap_table( > XEN_GUEST_HANDLE(const_trap_info_t) traps); > > -extern int > +extern long > do_mmu_update( > XEN_GUEST_HANDLE(mmu_update_t) ureqs, > unsigned int count, > @@ -62,7 +62,7 @@ do_update_descriptor( > extern long > do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc); > > -extern int > +extern long > do_update_va_mapping( > unsigned long va, > u64 val64, > @@ -72,14 +72,14 @@ extern long > do_physdev_op( > int cmd, XEN_GUEST_HANDLE(void) arg); > > -extern int > +extern long > do_update_va_mapping_otherdomain( > unsigned long va, > u64 val64, > unsigned long flags, > domid_t domid); > > -extern int > +extern long > do_mmuext_op( > XEN_GUEST_HANDLE(mmuext_op_t) uops, > unsigned int count, > @@ -90,10 +90,6 @@ extern unsigned long > do_iret( > void); > > -extern int > -do_kexec( > - unsigned long op, unsigned arg1, XEN_GUEST_HANDLE(void) uarg); > - > #ifdef __x86_64__ > > extern long > --- a/xen/include/xen/hypercall.h > +++ b/xen/include/xen/hypercall.h > @@ -137,7 +137,7 @@ extern long > do_tmem_op( > XEN_GUEST_HANDLE(tmem_op_t) uops); > > -extern int > +extern long > do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg); > > #ifdef CONFIG_COMPAT > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |