Skip to content

Commit

Permalink
KVM: SVM: Clobber RAX instead of RBX when discarding spec_ctrl_interc…
Browse files Browse the repository at this point in the history
…epted

POP @spec_ctrl_intercepted into RAX instead of RBX when discarding it from
the stack so that __svm_sev_es_vcpu_run() doesn't modify any non-volatile
registers.  __svm_sev_es_vcpu_run() doesn't return a value, and RAX is
already are clobbered multiple times in the #VMEXIT path.

This will allowing using the host save area to save/restore non-volatile
registers in __svm_sev_es_vcpu_run().

Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/20240223204233.3337324-5-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
  • Loading branch information
sean-jc committed Apr 9, 2024
1 parent 331282f commit 87e8e36
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions arch/x86/kvm/svm/vmenter.S
Expand Up @@ -350,8 +350,8 @@ SYM_FUNC_START(__svm_sev_es_vcpu_run)
*/
UNTRAIN_RET_VM

/* "Pop" @spec_ctrl_intercepted. */
pop %rbx
/* "Pop" and discard @spec_ctrl_intercepted. */
pop %rax

pop %rbx

Expand Down

0 comments on commit 87e8e36

Please sign in to comment.