>>> On 16.11.16 at 13:31, <andrew.coop...@citrix.com> wrote:
> @@ -961,13 +962,38 @@ int cpuid_hypervisor_leaves( uint32_t idx, uint32_t 
> sub_idx,
>          }
>          break;
>  
> -    case 4:
> -        if ( !has_hvm_container_domain(currd) )
> +    case 4: /* HVM hypervisor leaf. */
> +        if ( !has_hvm_container_domain(currd) || sub_idx != 0 )
>          {
>              *eax = *ebx = *ecx = *edx = 0;

I think you want to pull this ahead of the if(), to match previous
behavior (discarding any guest config overrides). Otherwise ...

>              break;
>          }
> -        hvm_hypervisor_cpuid_leaf(sub_idx, eax, ebx, ecx, edx);
> +
> +        if ( cpu_has_vmx_apic_reg_virt )
> +            *eax |= XEN_HVM_CPUID_APIC_ACCESS_VIRT;

... you may end up not or-ing into a zero initial value here.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to