Skip to content

Commit 5f57e54

Browse files
yosrym93sean-jc
authored andcommitted
x86/svm: Cleanup selective cr0 write intercept test
Rename the test and functions to more general names describing the test more accurately. Use X86_CR0_CD instead of hardcoding the bitmask, and explicitly clear the bit in the prepare() function to make it clearer that it would only be set by the test. Signed-off-by: Yosry Ahmed <yosry.ahmed@linux.dev> Reviewed-by: Manali Shukla <manali.shukla@amd.com> Tested-by: Manali Shukla <manali.shukla@amd.com> Link: https://patch.msgid.link/20251110232642.633672-4-yosry.ahmed@linux.dev Signed-off-by: Sean Christopherson <seanjc@google.com>
1 parent cab22b2 commit 5f57e54

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

x86/svm_tests.c

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -793,23 +793,19 @@ static bool check_asid_zero(struct svm_test *test)
793793
return vmcb->control.exit_code == SVM_EXIT_ERR;
794794
}
795795

796-
static void sel_cr0_bug_prepare(struct svm_test *test)
796+
static void prepare_sel_cr0_intercept(struct svm_test *test)
797797
{
798+
vmcb->save.cr0 &= ~X86_CR0_CD;
798799
vmcb->control.intercept |= (1ULL << INTERCEPT_SELECTIVE_CR0);
799800
}
800801

801-
static bool sel_cr0_bug_finished(struct svm_test *test)
802-
{
803-
return true;
804-
}
805-
806-
static void sel_cr0_bug_test(struct svm_test *test)
802+
static void test_sel_cr0_write_intercept(struct svm_test *test)
807803
{
808804
unsigned long cr0;
809805

810-
/* read cr0, clear CD, and write back */
806+
/* read cr0, set CD, and write back */
811807
cr0 = read_cr0();
812-
cr0 |= (1UL << 30);
808+
cr0 |= X86_CR0_CD;
813809
write_cr0(cr0);
814810

815811
/*
@@ -821,7 +817,7 @@ static void sel_cr0_bug_test(struct svm_test *test)
821817
exit(report_summary());
822818
}
823819

824-
static bool sel_cr0_bug_check(struct svm_test *test)
820+
static bool check_sel_cr0_intercept(struct svm_test *test)
825821
{
826822
return vmcb->control.exit_code == SVM_EXIT_CR0_SEL_WRITE;
827823
}
@@ -3486,9 +3482,9 @@ struct svm_test svm_tests[] = {
34863482
{ "asid_zero", default_supported, prepare_asid_zero,
34873483
default_prepare_gif_clear, test_asid_zero,
34883484
default_finished, check_asid_zero },
3489-
{ "sel_cr0_bug", default_supported, sel_cr0_bug_prepare,
3490-
default_prepare_gif_clear, sel_cr0_bug_test,
3491-
sel_cr0_bug_finished, sel_cr0_bug_check },
3485+
{ "sel cr0 write intercept", default_supported,
3486+
prepare_sel_cr0_intercept, default_prepare_gif_clear,
3487+
test_sel_cr0_write_intercept, default_finished, check_sel_cr0_intercept},
34923488
{ "tsc_adjust", tsc_adjust_supported, tsc_adjust_prepare,
34933489
default_prepare_gif_clear, tsc_adjust_test,
34943490
default_finished, tsc_adjust_check },

0 commit comments

Comments
 (0)