The memtype used by hardware when walking EPT tables is specified by software via an encoding in the EPTP. Ignoring the fact that no sane VMM would default to UC for page table walks, KVM only supports WB, and has only ever supported WB (added in commit ca72d970ff9a, "KVM: nEPT: Advertise WB type EPTP"). Require WB and remove the UC handling altogether. Eliminating what is effectively dead code also removes the confusing error message (that never fires) regarding memtype, e.g. "EPT paging-structure memory type UC&WB are not supported" may be interpreted as stating that KVM unit tests require WC *and* WB. Cc: Marc Orr <marcorr@xxxxxxxxxx> Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> --- x86/vmx_tests.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c index bd17088..c9cea0e 100644 --- a/x86/vmx_tests.c +++ b/x86/vmx_tests.c @@ -1011,11 +1011,8 @@ static int setup_eptp(u64 hpa, bool enable_ad) printf("\tEPT is not supported"); return 1; } - - if (!(ept_vpid.val & EPT_CAP_UC) && - !(ept_vpid.val & EPT_CAP_WB)) { - printf("\tEPT paging-structure memory type " - "UC&WB are not supported\n"); + if (!(ept_vpid.val & EPT_CAP_WB)) { + printf("WB memtype for EPT walks not supported\n"); return 1; } if (!(ept_vpid.val & EPT_CAP_PWL4)) { @@ -1023,10 +1020,7 @@ static int setup_eptp(u64 hpa, bool enable_ad) return 1; } - if (ept_vpid.val & EPT_CAP_UC) - eptp = EPT_MEM_TYPE_UC; - else - eptp = EPT_MEM_TYPE_WB; + eptp = EPT_MEM_TYPE_WB; eptp |= (3 << EPTP_PG_WALK_LEN_SHIFT); eptp |= hpa; if (enable_ad) -- 2.20.1