Add a testcase to verify VMXON #UDs when attempted with an incompatible CR0 or CR4. Patches 1-10 are cleanups to make implementing that relatively simple test less painful. Sean Christopherson (10): x86: Use BIT() to define architectural bits x86: Replace spaces with tables in processor.h x86: Use "safe" terminology instead of "checking" x86: Use "safe" helpers to implement unsafe CRs accessors x86: Provide result of RDMSR from "safe" variant nVMX: Check the results of VMXON/VMXOFF in feature control test nVMX: Check result of VMXON in INIT/SIPI tests nVMX: Wrap VMXON in ASM_TRY(), a.k.a. in exception fixup nVMX: Simplify test_vmxon() by returning directly on failure nVMX: Add subtest to verify VMXON succeeds/#UDs on good/bad CR0/CR4 lib/x86/desc.c | 8 - lib/x86/desc.h | 1 - lib/x86/processor.h | 403 +++++++++++++++++++++++++------------------- x86/access.c | 8 +- x86/la57.c | 2 +- x86/msr.c | 5 +- x86/pcid.c | 28 ++- x86/rdpru.c | 4 +- x86/vmx.c | 141 +++++++++++++--- x86/vmx.h | 31 +++- x86/vmx_tests.c | 12 +- x86/xsave.c | 31 ++-- 12 files changed, 411 insertions(+), 263 deletions(-) base-commit: 2eed0bf1096077144cc3a0dd9974689487f9511a -- 2.36.1.255.ge46751e96f-goog