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; > > >