check(__func__, ex, VMERR_VALID(VMERR_VMXON_IN_ROOT));
}
+/**
+ * vmxon in VMX root w/ CPL = 3 and w/ current VMCS
+ *
+ * Expect: @#GP(0)
+ */
+static void test_vmxon_in_root_user(void)
+{
+ clear_vmcs(vmxon_region_unused, vmcs_revid);
+ exinfo_t ex = exec_user(vmxon_in_user);
+
+ check(__func__, ex, EXINFO_SYM(GP, 0));
+}
+
void test_vmxon(void)
{
unsigned long cr4 = read_cr4();
return xtf_failure("Fail: unexpected vmptrld failure %08x\n", ex);
test_vmxon_in_root_cpl0();
+ test_vmxon_in_root_user();
}
/*