In the control/hardware domain case without it we simply re-read the same value that was put into b near the top of the function. Signed-off-by: Jan Beulich --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -1119,8 +1119,7 @@ void pv_cpuid(struct cpu_user_regs *regs * domain policy. It varies with enabled xstate, and the correct * xcr0 is in context. */ - if ( !is_control_domain(currd) && !is_hardware_domain(currd) ) - cpuid_count(leaf, subleaf, &tmp, &b, &tmp, &tmp); + cpuid_count(leaf, subleaf, &tmp, &b, &tmp, &tmp); break; }