* arch/x86/kvm/svm/sev.c:454 __sev_guest_init() warn: missing error code 'ret'
@ 2024-10-21 7:28 Dan Carpenter
2024-10-22 17:28 ` Sean Christopherson
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2024-10-21 7:28 UTC (permalink / raw)
To: oe-kbuild, Brijesh Singh
Cc: lkp, oe-kbuild-all, linux-kernel, Paolo Bonzini,
Alexey Kardashevskiy, Ashish Kalra, Tom Lendacky, Liam Merwick,
Michael Roth
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3d5ad2d4eca337e80f38df77de89614aa5aaceb9
commit: 88caf544c9305313e1c48ac1a437faa5df8fff06 KVM: SEV: Provide support for SNP_GUEST_REQUEST NAE event
config: x86_64-randconfig-161-20241016 (https://download.01.org/0day-ci/archive/20241019/202410192220.MeTyHPxI-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202410192220.MeTyHPxI-lkp@intel.com/
New smatch warnings:
arch/x86/kvm/svm/sev.c:454 __sev_guest_init() warn: missing error code 'ret'
vim +/ret +454 arch/x86/kvm/svm/sev.c
4f5defae708992 Paolo Bonzini 2024-04-04 402 static int __sev_guest_init(struct kvm *kvm, struct kvm_sev_cmd *argp,
4f5defae708992 Paolo Bonzini 2024-04-04 403 struct kvm_sev_init *data,
4f5defae708992 Paolo Bonzini 2024-04-04 404 unsigned long vm_type)
eaf78265a4ab33 Joerg Roedel 2020-03-24 405 {
eaf78265a4ab33 Joerg Roedel 2020-03-24 406 struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
1ca5614b84eed5 Brijesh Singh 2024-01-25 407 struct sev_platform_init_args init_args = {0};
4f5defae708992 Paolo Bonzini 2024-04-04 408 bool es_active = vm_type != KVM_X86_SEV_VM;
4f5defae708992 Paolo Bonzini 2024-04-04 409 u64 valid_vmsa_features = es_active ? sev_supported_vmsa_features : 0;
cc4ce37bed8598 Sean Christopherson 2024-01-31 410 int ret;
eaf78265a4ab33 Joerg Roedel 2020-03-24 411
8727906fde6ea6 Sean Christopherson 2021-03-30 412 if (kvm->created_vcpus)
8727906fde6ea6 Sean Christopherson 2021-03-30 413 return -EINVAL;
8727906fde6ea6 Sean Christopherson 2021-03-30 414
4f5defae708992 Paolo Bonzini 2024-04-04 415 if (data->flags)
4f5defae708992 Paolo Bonzini 2024-04-04 416 return -EINVAL;
4f5defae708992 Paolo Bonzini 2024-04-04 417
4f5defae708992 Paolo Bonzini 2024-04-04 418 if (data->vmsa_features & ~valid_vmsa_features)
26c44aa9e076ed Paolo Bonzini 2024-04-04 419 return -EINVAL;
26c44aa9e076ed Paolo Bonzini 2024-04-04 420
4af663c2f64a8d Michael Roth 2024-05-01 421 if (data->ghcb_version > GHCB_VERSION_MAX || (!es_active && data->ghcb_version))
4af663c2f64a8d Michael Roth 2024-05-01 422 return -EINVAL;
4af663c2f64a8d Michael Roth 2024-05-01 423
eaf78265a4ab33 Joerg Roedel 2020-03-24 424 if (unlikely(sev->active))
fdd58834d13204 Sean Christopherson 2024-01-31 425 return -EINVAL;
eaf78265a4ab33 Joerg Roedel 2020-03-24 426
a41fb26e616973 Sean Christopherson 2021-11-09 427 sev->active = true;
4f5defae708992 Paolo Bonzini 2024-04-04 428 sev->es_active = es_active;
4f5defae708992 Paolo Bonzini 2024-04-04 429 sev->vmsa_features = data->vmsa_features;
4af663c2f64a8d Michael Roth 2024-05-01 430 sev->ghcb_version = data->ghcb_version;
4af663c2f64a8d Michael Roth 2024-05-01 431
4af663c2f64a8d Michael Roth 2024-05-01 432 /*
4af663c2f64a8d Michael Roth 2024-05-01 433 * Currently KVM supports the full range of mandatory features defined
4af663c2f64a8d Michael Roth 2024-05-01 434 * by version 2 of the GHCB protocol, so default to that for SEV-ES
4af663c2f64a8d Michael Roth 2024-05-01 435 * guests created via KVM_SEV_INIT2.
4af663c2f64a8d Michael Roth 2024-05-01 436 */
4af663c2f64a8d Michael Roth 2024-05-01 437 if (sev->es_active && !sev->ghcb_version)
4af663c2f64a8d Michael Roth 2024-05-01 438 sev->ghcb_version = GHCB_VERSION_DEFAULT;
605bbdc12bc883 Paolo Bonzini 2024-04-04 439
1dfe571c12cf99 Brijesh Singh 2024-05-01 440 if (vm_type == KVM_X86_SNP_VM)
1dfe571c12cf99 Brijesh Singh 2024-05-01 441 sev->vmsa_features |= SVM_SEV_FEAT_SNP_ACTIVE;
1dfe571c12cf99 Brijesh Singh 2024-05-01 442
cc4ce37bed8598 Sean Christopherson 2024-01-31 443 ret = sev_asid_new(sev);
cc4ce37bed8598 Sean Christopherson 2024-01-31 444 if (ret)
fd49e8ee70b306 Paolo Bonzini 2021-04-22 445 goto e_no_asid;
eaf78265a4ab33 Joerg Roedel 2020-03-24 446
1ca5614b84eed5 Brijesh Singh 2024-01-25 447 init_args.probe = false;
1ca5614b84eed5 Brijesh Singh 2024-01-25 448 ret = sev_platform_init(&init_args);
eaf78265a4ab33 Joerg Roedel 2020-03-24 449 if (ret)
eaf78265a4ab33 Joerg Roedel 2020-03-24 450 goto e_free;
eaf78265a4ab33 Joerg Roedel 2020-03-24 451
88caf544c93053 Brijesh Singh 2024-07-01 452 /* This needs to happen after SEV/SNP firmware initialization. */
88caf544c93053 Brijesh Singh 2024-07-01 453 if (vm_type == KVM_X86_SNP_VM && snp_guest_req_init(kvm))
88caf544c93053 Brijesh Singh 2024-07-01 @454 goto e_free;
Hard to tell if this is an error path or not.
88caf544c93053 Brijesh Singh 2024-07-01 455
eaf78265a4ab33 Joerg Roedel 2020-03-24 456 INIT_LIST_HEAD(&sev->regions_list);
b2125513dfc0dd Peter Gonda 2022-02-11 457 INIT_LIST_HEAD(&sev->mirror_vms);
26c44aa9e076ed Paolo Bonzini 2024-04-04 458 sev->need_init = false;
eaf78265a4ab33 Joerg Roedel 2020-03-24 459
c538dc792ff7e4 Suravee Suthikulpanit 2022-04-08 460 kvm_set_apicv_inhibit(kvm, APICV_INHIBIT_REASON_SEV);
c538dc792ff7e4 Suravee Suthikulpanit 2022-04-08 461
eaf78265a4ab33 Joerg Roedel 2020-03-24 462 return 0;
eaf78265a4ab33 Joerg Roedel 2020-03-24 463
eaf78265a4ab33 Joerg Roedel 2020-03-24 464 e_free:
1ca5614b84eed5 Brijesh Singh 2024-01-25 465 argp->error = init_args.error;
7aef27f0b2a8a5 Vipin Sharma 2021-03-29 466 sev_asid_free(sev);
7aef27f0b2a8a5 Vipin Sharma 2021-03-29 467 sev->asid = 0;
fd49e8ee70b306 Paolo Bonzini 2021-04-22 468 e_no_asid:
605bbdc12bc883 Paolo Bonzini 2024-04-04 469 sev->vmsa_features = 0;
fd49e8ee70b306 Paolo Bonzini 2021-04-22 470 sev->es_active = false;
a41fb26e616973 Sean Christopherson 2021-11-09 471 sev->active = false;
eaf78265a4ab33 Joerg Roedel 2020-03-24 472 return ret;
eaf78265a4ab33 Joerg Roedel 2020-03-24 473 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: arch/x86/kvm/svm/sev.c:454 __sev_guest_init() warn: missing error code 'ret'
2024-10-21 7:28 arch/x86/kvm/svm/sev.c:454 __sev_guest_init() warn: missing error code 'ret' Dan Carpenter
@ 2024-10-22 17:28 ` Sean Christopherson
0 siblings, 0 replies; 2+ messages in thread
From: Sean Christopherson @ 2024-10-22 17:28 UTC (permalink / raw)
To: Dan Carpenter
Cc: oe-kbuild, Brijesh Singh, lkp, oe-kbuild-all, linux-kernel,
Paolo Bonzini, Alexey Kardashevskiy, Ashish Kalra, Tom Lendacky,
Liam Merwick, Michael Roth
On Mon, Oct 21, 2024, Dan Carpenter wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 3d5ad2d4eca337e80f38df77de89614aa5aaceb9
> commit: 88caf544c9305313e1c48ac1a437faa5df8fff06 KVM: SEV: Provide support for SNP_GUEST_REQUEST NAE event
> config: x86_64-randconfig-161-20241016 (https://download.01.org/0day-ci/archive/20241019/202410192220.MeTyHPxI-lkp@intel.com/config)
> compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202410192220.MeTyHPxI-lkp@intel.com/
>
> New smatch warnings:
> arch/x86/kvm/svm/sev.c:454 __sev_guest_init() warn: missing error code 'ret'
>
> 88caf544c93053 Brijesh Singh 2024-07-01 452 /* This needs to happen after SEV/SNP firmware initialization. */
> 88caf544c93053 Brijesh Singh 2024-07-01 453 if (vm_type == KVM_X86_SNP_VM && snp_guest_req_init(kvm))
> 88caf544c93053 Brijesh Singh 2024-07-01 @454 goto e_free;
>
> Hard to tell if this is an error path or not.
It's an error path. Luckily, the fallout is only that userspace will be confused,
e.g. KVM doesn't continue configuring state thinking that pervious steps succeeded.
I'll send a patch.
Thanks!
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-10-22 17:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-21 7:28 arch/x86/kvm/svm/sev.c:454 __sev_guest_init() warn: missing error code 'ret' Dan Carpenter
2024-10-22 17:28 ` Sean Christopherson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox