On Mon, Jul 13, 2020 at 5:23 PM Sean Christopherson <sean.j.christopherson@xxxxxxxxx> wrote: > > Perform one last VMX transition to actually load the host's RIP and CR4 > at the end of test_host_addr_size(). Simply writing the VMCS doesn't > restore the values in hardware, e.g. as is, CR4.PCIDE can be left set, > which causes spectacularly confusing explosions when other misguided > tests assume setting bit 63 in CR3 will cause a non-canonical #GP. > > Fixes: 0786c0316ac05 ("kvm-unit-test: nVMX: Check Host Address Space Size on vmentry of nested guests") > Cc: Krish Sadhukhan <krish.sadhukhan@xxxxxxxxxx> > Cc: Karl Heubaum <karl.heubaum@xxxxxxxxxx> > Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx> > --- > x86/vmx_tests.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/x86/vmx_tests.c b/x86/vmx_tests.c > index 29f3d0e..cb42a2d 100644 > --- a/x86/vmx_tests.c > +++ b/x86/vmx_tests.c > @@ -7673,6 +7673,11 @@ static void test_host_addr_size(void) > vmcs_write(ENT_CONTROLS, entry_ctrl_saved | ENT_GUEST_64); > vmcs_write(HOST_RIP, rip_saved); > vmcs_write(HOST_CR4, cr4_saved); > + > + /* Restore host's active RIP and CR4 values. */ > + report_prefix_pushf("restore host state"); > + test_vmx_vmlaunch(0); > + report_prefix_pop(); > } > } > > -- > 2.26.0 >