On Mon, Aug 22, 2022, cgel.zte@xxxxxxxxx wrote: > From: ye xingchen <ye.xingchen@xxxxxxxxxx> > > Return the value from sev_guest_activate(&activate, error) and > sev_issue_cmd_external_user(f.file, id, data, error) directly > instead of storing it in another redundant variable.And also change > the position of handle and asid to simplify the code. > > Signed-off-by: ye xingchen <ye.xingchen@xxxxxxxxxx> > --- > v1 -> v2 > Suggested-by: SeanChristopherson <seanjc@xxxxxxxxxx> > > Change the position of handle and asid. > Change the explain about this patch. > Dropping the comment about asid + handle. > arch/x86/kvm/svm/sev.c | 19 ++++++------------- > 1 file changed, 6 insertions(+), 13 deletions(-) > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > index 28064060413a..4448f2e512b9 100644 > --- a/arch/x86/kvm/svm/sev.c > +++ b/arch/x86/kvm/svm/sev.c > @@ -276,31 +276,24 @@ static int sev_guest_init(struct kvm *kvm, struct kvm_sev_cmd *argp) > > static int sev_bind_asid(struct kvm *kvm, unsigned int handle, int *error) > { > - struct sev_data_activate activate; > - int asid = sev_get_asid(kvm); > - int ret; > - > - /* activate ASID on the given handle */ > - activate.handle = handle; > - activate.asid = asid; > - ret = sev_guest_activate(&activate, error); > + struct sev_data_activate activate = { > + .handle = handle, > + .asid = sev_get_asid(kvm), > + }; > > - return ret; > + return sev_guest_activate(&activate, error); > } > > static int __sev_issue_cmd(int fd, int id, void *data, int *error) > { > struct fd f; > - int ret; > > f = fdget(fd); > if (!f.file) > return -EBADF; > > - ret = sev_issue_cmd_external_user(f.file, id, data, error); > - > fdput(f); > - return ret; > + return sev_issue_cmd_external_user(f.file, id, data, error); Again, this is broken, the fdput() needs to stay after f.file is consumed, i.e. eliminating "ret" is wrong. > } > > static int sev_issue_cmd(struct kvm *kvm, int id, void *data, int *error) > -- > 2.25.1