Re: [PATCH v6 2/4] KVM: PPC: Book3S HV: Implement compat CPU capability retrieval for KVM on PowerVM
[email protected] Tue, 04 Aug 2026 18:21:55 +0000
| Newsgroups | org.kernel.vger.kvm |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Mismatch between KVM_CAP_PPC_COMPAT_CAPS advertisement and ioctl implementation for unsupported environments. -- --- Patch [2]: [PATCH v6 2/4] KVM: PPC: Book3S HV: Implement compat CPU capability retrieval for KVM on PowerVM --- commit 8305652489744988576b7fa55e0424452c48a633 Author: Amit Machhiwal <[email protected]> KVM: PPC: Book3S HV: Implement compat CPU capability retrieval for KVM on PowerVM This commit adds support for retrieving host CPU compatibility capabilities for nested guests on PowerVM. The capability bitmap is retrieved from the cached nested_capabilities value and exposed through the new KVM_PPC_GET_COMPAT_CAPS ioctl. > diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c > index 61dbeea317f3b..8799124b80960 100644 > --- a/arch/powerpc/kvm/book3s_hv.c > +++ b/arch/powerpc/kvm/book3s_hv.c [ ... ] > @@ -6510,6 +6510,25 @@ static bool kvmppc_hash_v3_possible(void) > return true; > } > > + > +static int kvmppc_get_compat_caps(struct kvm_ppc_compat_caps *host_caps) > +{ > + unsigned long capabilities = 0; > + long rc = -EINVAL; > + > + if (kvmhv_on_pseries()) { > + if (kvmhv_is_nestedv2()) { > + WARN_ON_ONCE(!nested_capabilities); > + capabilities = nested_capabilities; > + rc = 0; > + } > + } > + > + host_caps->compat_capabilities = capabilities & KVM_PPC_COMPAT_BITMASK; > + > + return rc; > +} [Severity: Medium] Will this return -EINVAL for pseries hosts when nestedv1 is used? If KVM_CAP_PPC_COMPAT_CAPS advertises support by returning 1 for all pseries hosts (which appears to be the case in kvm_vm_ioctl_check_extension), userspace might query KVM_PPC_GET_COMPAT_CAPS and hit this path when kvmhv_is_nestedv2() is false. For example, if userspace checks KVM_CAP_PPC_COMPAT_CAPS and gets a positive result, but kvmhv_is_nestedv2() returns false here, we return -EINVAL. Since -EINVAL typically indicates invalid structure size or bad flags, could userspace fail to differentiate an unsupported backend from invalid inputs, leading to initialization failures? Should this gracefully return 0 capabilities (or -ENOTTY), or should the capability check itself verify kvmhv_is_nestedv2() before advertising support? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=2