v1 -> v2: 1. Removed the formation of the mask for guest CR4 bits, from kvm_valid_cr4() to kvm_update_cpuid(). The mask is stashed in a global variable called '__guest_cr4_reserved_bits'. Patch# 1 contains these changes. 2. nested_vmcb_checks() now uses is_long_mode(), instead of the guest EFER, to check for Long Mode. Patch# 2 contains these changes. 3. Patch# 3 contains the kvm-unit-tests. No changes have been made to the tests. [PATCH 1/3 v2] KVM: x86: Create mask for guest CR4 reserved bits in [PATCH 2/3 v2] KVM: nSVM: Check that MBZ bits in CR3 and CR4 are not set on [PATCH 3/3 v2] KVM: nSVM: Test that MBZ bits in CR3 and CR4 are not set on vmrun arch/x86/kvm/cpuid.c | 3 +++ arch/x86/kvm/svm/nested.c | 22 ++++++++++++++++++++-- arch/x86/kvm/svm/svm.h | 5 ++++- arch/x86/kvm/x86.c | 27 ++++----------------------- arch/x86/kvm/x86.h | 21 +++++++++++++++++++++ 5 files changed, 52 insertions(+), 26 deletions(-) Krish Sadhukhan (2): KVM: x86: Create mask for guest CR4 reserved bits in kvm_update_cpuid() nSVM: Check that MBZ bits in CR3 and CR4 are not set on vmrun of nested gu x86/svm.h | 6 ++++ x86/svm_tests.c | 105 +++++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 99 insertions(+), 12 deletions(-) Krish Sadhukhan (1): nSVM: Test that MBZ bits in CR3 and CR4 are not set on vmrun of nested gue