mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
KVM: selftests: Extend state_test to check next_rip
Similar to vGIF, extend state_test to make sure that next_rip is saved correctly in nested state. GUEST_SYNC() in L2 causes IO emulation by KVM, which advances the RIP to the value of next_rip. Hence, if next_rip is saved correctly, its value should match the saved RIP value. Signed-off-by: Yosry Ahmed <yosry@kernel.org> Link: https://patch.msgid.link/20260225005950.3739782-5-yosry@kernel.org Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
2303ca26fb
commit
e5cdd34b5f
|
|
@ -236,6 +236,17 @@ void svm_check_nested_state(int stage, struct kvm_x86_state *state)
|
|||
if (stage == 6)
|
||||
TEST_ASSERT_EQ(!!(vmcb->control.int_ctl & V_GIF_MASK), 0);
|
||||
}
|
||||
|
||||
if (kvm_cpu_has(X86_FEATURE_NRIPS)) {
|
||||
/*
|
||||
* GUEST_SYNC() causes IO emulation in KVM, in which case the
|
||||
* RIP is advanced before exiting to userspace. Hence, the RIP
|
||||
* in the saved state should be the same as nRIP saved by the
|
||||
* CPU in the VMCB.
|
||||
*/
|
||||
if (stage == 6)
|
||||
TEST_ASSERT_EQ(vmcb->control.next_rip, state->regs.rip);
|
||||
}
|
||||
}
|
||||
|
||||
void check_nested_state(int stage, struct kvm_x86_state *state)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user