Message ID | 20250305230000.231025-4-prsampat@amd.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Basic SEV-SNP Selftests | expand |
On 3/5/2025 11:59 PM, Pratik R. Sampat wrote: > Abstract rep vmmcall coded into the vmgexit helper for the sev > library. > > No functional change intended. > > Signed-off-by: Pratik R. Sampat <prsampat@amd.com> Reviewed-by: Pankaj Gupta <pankaj.gupta@amd.com> > --- > tools/testing/selftests/kvm/include/x86/sev.h | 5 +++++ > tools/testing/selftests/kvm/x86/sev_smoke_test.c | 2 +- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/kvm/include/x86/sev.h b/tools/testing/selftests/kvm/include/x86/sev.h > index 82c11c81a956..3003dc837fb7 100644 > --- a/tools/testing/selftests/kvm/include/x86/sev.h > +++ b/tools/testing/selftests/kvm/include/x86/sev.h > @@ -71,6 +71,11 @@ kvm_static_assert(SEV_RET_SUCCESS == 0); > void sev_vm_init(struct kvm_vm *vm); > void sev_es_vm_init(struct kvm_vm *vm); > > +static inline void vmgexit(void) > +{ > + __asm__ __volatile__("rep; vmmcall"); > +} > + > static inline void sev_register_encrypted_memory(struct kvm_vm *vm, > struct userspace_mem_region *region) > { > diff --git a/tools/testing/selftests/kvm/x86/sev_smoke_test.c b/tools/testing/selftests/kvm/x86/sev_smoke_test.c > index a1a688e75266..6812b94bf5b6 100644 > --- a/tools/testing/selftests/kvm/x86/sev_smoke_test.c > +++ b/tools/testing/selftests/kvm/x86/sev_smoke_test.c > @@ -27,7 +27,7 @@ static void guest_sev_es_code(void) > * force "termination" to signal "done" via the GHCB MSR protocol. > */ > wrmsr(MSR_AMD64_SEV_ES_GHCB, GHCB_MSR_TERM_REQ); > - __asm__ __volatile__("rep; vmmcall"); > + vmgexit(); > } > > static void guest_sev_code(void)
diff --git a/tools/testing/selftests/kvm/include/x86/sev.h b/tools/testing/selftests/kvm/include/x86/sev.h index 82c11c81a956..3003dc837fb7 100644 --- a/tools/testing/selftests/kvm/include/x86/sev.h +++ b/tools/testing/selftests/kvm/include/x86/sev.h @@ -71,6 +71,11 @@ kvm_static_assert(SEV_RET_SUCCESS == 0); void sev_vm_init(struct kvm_vm *vm); void sev_es_vm_init(struct kvm_vm *vm); +static inline void vmgexit(void) +{ + __asm__ __volatile__("rep; vmmcall"); +} + static inline void sev_register_encrypted_memory(struct kvm_vm *vm, struct userspace_mem_region *region) { diff --git a/tools/testing/selftests/kvm/x86/sev_smoke_test.c b/tools/testing/selftests/kvm/x86/sev_smoke_test.c index a1a688e75266..6812b94bf5b6 100644 --- a/tools/testing/selftests/kvm/x86/sev_smoke_test.c +++ b/tools/testing/selftests/kvm/x86/sev_smoke_test.c @@ -27,7 +27,7 @@ static void guest_sev_es_code(void) * force "termination" to signal "done" via the GHCB MSR protocol. */ wrmsr(MSR_AMD64_SEV_ES_GHCB, GHCB_MSR_TERM_REQ); - __asm__ __volatile__("rep; vmmcall"); + vmgexit(); } static void guest_sev_code(void)
Abstract rep vmmcall coded into the vmgexit helper for the sev library. No functional change intended. Signed-off-by: Pratik R. Sampat <prsampat@amd.com> --- tools/testing/selftests/kvm/include/x86/sev.h | 5 +++++ tools/testing/selftests/kvm/x86/sev_smoke_test.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-)