Jan Beulich
2013-May-13 11:05 UTC
[PATCH] also move compat mode VCPUOP_register_vcpu_info into common code
Otherwise, with arch_compat_vcpu_op() calling arch_do_vcpu_op() to handle it, it results in -ENOSYS after 6ff9e4f7 ("xen: move VCPUOP_register_vcpu_info to common code") for 32-bit x86 domains. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/x86_64/domain.c +++ b/xen/arch/x86/x86_64/domain.c @@ -9,14 +9,6 @@ #include <xen/hypercall.h> #include <compat/vcpu.h> -#define xen_vcpu_info vcpu_info -CHECK_SIZE_(struct, vcpu_info); -#undef xen_vcpu_info - -#define xen_vcpu_register_vcpu_info vcpu_register_vcpu_info -CHECK_vcpu_register_vcpu_info; -#undef xen_vcpu_register_vcpu_info - #define xen_vcpu_get_physid vcpu_get_physid CHECK_vcpu_get_physid; #undef xen_vcpu_get_physid @@ -63,7 +55,6 @@ arch_compat_vcpu_op( break; } - case VCPUOP_register_vcpu_info: case VCPUOP_get_physid: rc = arch_do_vcpu_op(cmd, v, arg); break; --- a/xen/common/compat/domain.c +++ b/xen/common/compat/domain.c @@ -15,6 +15,14 @@ CHECK_vcpu_set_periodic_timer; #undef xen_vcpu_set_periodic_timer +#define xen_vcpu_info vcpu_info +CHECK_SIZE_(struct, vcpu_info); +#undef xen_vcpu_info + +#define xen_vcpu_register_vcpu_info vcpu_register_vcpu_info +CHECK_vcpu_register_vcpu_info; +#undef xen_vcpu_register_vcpu_info + int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg) { struct domain *d = current->domain; @@ -64,6 +72,7 @@ int compat_vcpu_op(int cmd, int vcpuid, case VCPUOP_set_periodic_timer: case VCPUOP_stop_periodic_timer: case VCPUOP_stop_singleshot_timer: + case VCPUOP_register_vcpu_info: case VCPUOP_send_nmi: rc = do_vcpu_op(cmd, vcpuid, arg); break; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Keir Fraser
2013-May-13 11:46 UTC
Re: [PATCH] also move compat mode VCPUOP_register_vcpu_info into common code
On 13/05/2013 12:05, "Jan Beulich" <JBeulich@suse.com> wrote:> Otherwise, with arch_compat_vcpu_op() calling arch_do_vcpu_op() to > handle it, it results in -ENOSYS after 6ff9e4f7 ("xen: move > VCPUOP_register_vcpu_info to common code") for 32-bit x86 domains. > > Signed-off-by: Jan Beulich <jbeulich@suse.com>Acked-by: Keir Fraser <keir@xen.org>> --- a/xen/arch/x86/x86_64/domain.c > +++ b/xen/arch/x86/x86_64/domain.c > @@ -9,14 +9,6 @@ > #include <xen/hypercall.h> > #include <compat/vcpu.h> > > -#define xen_vcpu_info vcpu_info > -CHECK_SIZE_(struct, vcpu_info); > -#undef xen_vcpu_info > - > -#define xen_vcpu_register_vcpu_info vcpu_register_vcpu_info > -CHECK_vcpu_register_vcpu_info; > -#undef xen_vcpu_register_vcpu_info > - > #define xen_vcpu_get_physid vcpu_get_physid > CHECK_vcpu_get_physid; > #undef xen_vcpu_get_physid > @@ -63,7 +55,6 @@ arch_compat_vcpu_op( > break; > } > > - case VCPUOP_register_vcpu_info: > case VCPUOP_get_physid: > rc = arch_do_vcpu_op(cmd, v, arg); > break; > --- a/xen/common/compat/domain.c > +++ b/xen/common/compat/domain.c > @@ -15,6 +15,14 @@ > CHECK_vcpu_set_periodic_timer; > #undef xen_vcpu_set_periodic_timer > > +#define xen_vcpu_info vcpu_info > +CHECK_SIZE_(struct, vcpu_info); > +#undef xen_vcpu_info > + > +#define xen_vcpu_register_vcpu_info vcpu_register_vcpu_info > +CHECK_vcpu_register_vcpu_info; > +#undef xen_vcpu_register_vcpu_info > + > int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg) > { > struct domain *d = current->domain; > @@ -64,6 +72,7 @@ int compat_vcpu_op(int cmd, int vcpuid, > case VCPUOP_set_periodic_timer: > case VCPUOP_stop_periodic_timer: > case VCPUOP_stop_singleshot_timer: > + case VCPUOP_register_vcpu_info: > case VCPUOP_send_nmi: > rc = do_vcpu_op(cmd, vcpuid, arg); > break; > > >