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 --- a/xen/arch/x86/x86_64/domain.c +++ b/xen/arch/x86/x86_64/domain.c @@ -9,14 +9,6 @@ #include #include -#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;