On 08/02/2018 23:58, Tom Lendacky wrote: > +bool kvm_valid_msr_feature(u32 msr, u64 data) > +{ > + unsigned int i; > + > + for (i = 0; i < num_msr_based_features; i++) { > + struct kvm_msr_based_features *m = msr_based_features + i; > + > + if (msr != m->msr) > + continue; > + > + /* Make sure not trying to change unsupported bits */ > + return (data & ~m->mask) ? false : true; > + } > + > + return false; > +} > +EXPORT_SYMBOL_GPL(kvm_valid_msr_feature); > + This is probably unnecessary too (the allowed values are a bit more complicated for, you just guessed it, VMX capability MSRs) and you can just check bits other than LFENCE in svm_set_msr. Paolo