2020-11-26 10:18:44

by 彭浩(Richard)

[permalink] [raw]
Subject: [PATCH] kvm:svm: Return the correct error code

The return value of sev_asid_new is assigned to the variable asid, which
should be returned directly if the asid is an error code.

Fixes: 1654efcbc431 ("KVM: SVM: Add KVM_SEV_INIT command")
Signed-off-by: Peng Hao <[email protected]>
---
arch/x86/kvm/svm/sev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
index 566f4d18185b..41cea6b69860 100644
--- a/arch/x86/kvm/svm/sev.c
+++ b/arch/x86/kvm/svm/sev.c
@@ -174,7 +174,7 @@ static int sev_guest_init(struct kvm *kvm, struct kvm_sev_cmd *argp)

asid = sev_asid_new();
if (asid < 0)
- return ret;
+ return asid;

ret = sev_platform_init(&argp->error);
if (ret)
--
2.18.4


2020-11-30 20:03:51

by Sean Christopherson

[permalink] [raw]
Subject: Re: [PATCH] kvm:svm: Return the correct error code

On Thu, Nov 26, 2020, 彭浩(Richard) wrote:
> The return value of sev_asid_new is assigned to the variable asid, which
> should be returned directly if the asid is an error code.
>
> Fixes: 1654efcbc431 ("KVM: SVM: Add KVM_SEV_INIT command")
> Signed-off-by: Peng Hao <[email protected]>

It's probably worth noting in the changelog that this is a nop. sev_asid_new()
can only fail with -EBUSY, and ret is guaranteed to be -EBUSY as well. I agree
it's probably better to return the result of sev_asid_new() instead of assuuming
it will always return -EBUSY.

> ---
> arch/x86/kvm/svm/sev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
> index 566f4d18185b..41cea6b69860 100644
> --- a/arch/x86/kvm/svm/sev.c
> +++ b/arch/x86/kvm/svm/sev.c
> @@ -174,7 +174,7 @@ static int sev_guest_init(struct kvm *kvm, struct kvm_sev_cmd *argp)
>
> asid = sev_asid_new();
> if (asid < 0)
> - return ret;
> + return asid;
>
> ret = sev_platform_init(&argp->error);
> if (ret)
> --
> 2.18.4