On 12/10/18 16:27, Sergey Dyasli wrote:
> diff --git a/xen/include/asm-x86/hvm/nestedhvm.h 
> b/xen/include/asm-x86/hvm/nestedhvm.h
> index 9d1c2742b5..e09fa9d47d 100644
> --- a/xen/include/asm-x86/hvm/nestedhvm.h
> +++ b/xen/include/asm-x86/hvm/nestedhvm.h
> @@ -92,4 +92,9 @@ static inline void nestedhvm_set_cr(struct vcpu *v, 
> unsigned int cr,
>          v->arch.hvm.nvcpu.guest_cr[cr] = value;
>  }
>  
> +static inline bool vvmcx_valid(const struct vcpu *v)
> +{
> +    return vcpu_nestedhvm(v).nv_vvmcxaddr != INVALID_PADDR;
> +}
> +

Now that XSA-278 is public, I can explain why this predicate is a little
broken.

nv_vvmcxaddr doesn't get initialised until HVM_PARAM_NESTED_VIRT is set
to 1.

As with c/s 18cef4df8, please adjust the vcpu construction path to make
this predicate unconditionally safe to use.

~Andrew

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

Reply via email to