On 22/04/21 04:54, Sean Christopherson wrote:
Skip the sub-tests for guest CR3 that rely on NPT, unsurprisingly they
fail when running with NPT disabled. Alternatively, the test could be
modified to poke into the legacy page tables, but obviously no one
actually cares that much about shadow paging.
Fixes: 6d0ecbf ("nSVM: Test non-MBZ reserved bits in CR3 in long mode and legacy PAE mode")
Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
---
x86/svm_tests.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/x86/svm_tests.c b/x86/svm_tests.c
index 29a0b59..353ab6b 100644
--- a/x86/svm_tests.c
+++ b/x86/svm_tests.c
@@ -2237,6 +2237,9 @@ static void test_cr3(void)
vmcb->save.cr4 = cr4_saved & ~X86_CR4_PCIDE;
+ if (!npt_supported())
+ goto skip_npt_only;
+
/* Clear P (Present) bit in NPT in order to trigger #NPF */
pdpe[0] &= ~1ULL;
@@ -2255,6 +2258,8 @@ static void test_cr3(void)
SVM_CR3_PAE_LEGACY_RESERVED_MASK, SVM_EXIT_NPF, "(PAE) ");
pdpe[0] |= 1ULL;
+
+skip_npt_only:
vmcb->save.cr3 = cr3_saved;
vmcb->save.cr4 = cr4_saved;
}
Queued now, thanks!
Paolo