/cast resurrect On Fri, Mar 04, 2022, Paolo Bonzini wrote: > On 3/4/22 00:44, Sean Christopherson wrote: > > > > diff --git a/arch/x86/kvm/vmx/nested.h b/arch/x86/kvm/vmx/nested.h > > index c92cea0b8ccc..46dd1967ec08 100644 > > --- a/arch/x86/kvm/vmx/nested.h > > +++ b/arch/x86/kvm/vmx/nested.h > > @@ -285,8 +285,8 @@ static inline bool nested_cr4_valid(struct kvm_vcpu *vcpu, unsigned long val) > > } > > > > /* No difference in the restrictions on guest and host CR4 in VMX operation. */ > > -#define nested_guest_cr4_valid nested_cr4_valid > > -#define nested_host_cr4_valid nested_cr4_valid > > +#define nested_guest_cr4_valid kvm_is_valid_cr4 > > +#define nested_host_cr4_valid kvm_is_valid_cr4 > > This doesn't allow the theoretically possible case of L0 setting some > CR4-fixed-0 bits for L1. I'll send another one. Ha! My "patch" is correct. kvm_is_valid_cr4() calls vmx_is_valid_cr4(), which calls nested_cr4_valid() when the vCPU is post-VMXON, so it _does_ cover the fixed0 case. I'll send a proper patch with a comment to call out that subtlety.