diff mbox series

KVM: x86: Add KVM_CAP_ENABLE_CAP to x86

Message ID 20220214212950.1776943-1-aaronlewis@google.com (mailing list archive)
State New, archived
Headers show
Series KVM: x86: Add KVM_CAP_ENABLE_CAP to x86 | expand

Commit Message

Aaron Lewis Feb. 14, 2022, 9:29 p.m. UTC
Add the capability KVM_CAP_ENABLE_CAP to x86 so userspace can ensure
KVM_ENABLE_CAP is available on a vcpu before using it.

Fixes: 5c919412fe61 ("kvm/x86: Hyper-V synthetic interrupt controller")
Signed-off-by: Aaron Lewis <aaronlewis@google.com>
---
 Documentation/virt/kvm/api.rst | 2 +-
 arch/x86/kvm/x86.c             | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Jim Mattson Feb. 14, 2022, 9:48 p.m. UTC | #1
On Mon, Feb 14, 2022 at 1:30 PM Aaron Lewis <aaronlewis@google.com> wrote:
>
> Add the capability KVM_CAP_ENABLE_CAP to x86 so userspace can ensure
> KVM_ENABLE_CAP is available on a vcpu before using it.

That's a bit terse.

Maybe something like:

Follow the precedent set by other architectures that support the VCPU
ioctl, KVM_ENABLE_CAP, and advertise the VM extension,
KVM_CAP_ENABLE_CAP.
Paolo Bonzini Feb. 15, 2022, 5:32 p.m. UTC | #2
On 2/14/22 22:48, Jim Mattson wrote:
> On Mon, Feb 14, 2022 at 1:30 PM Aaron Lewis <aaronlewis@google.com> wrote:
>>
>> Add the capability KVM_CAP_ENABLE_CAP to x86 so userspace can ensure
>> KVM_ENABLE_CAP is available on a vcpu before using it.
> 
> That's a bit terse.
> 
> Maybe something like:
> 
> Follow the precedent set by other architectures that support the VCPU
> ioctl, KVM_ENABLE_CAP, and advertise the VM extension,
> KVM_CAP_ENABLE_CAP.
> 

Thanks, queued with updated changelog.

Paolo
diff mbox series

Patch

diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
index a4267104db50..3b4da6c7b25f 100644
--- a/Documentation/virt/kvm/api.rst
+++ b/Documentation/virt/kvm/api.rst
@@ -1394,7 +1394,7 @@  documentation when it pops into existence).
 -------------------
 
 :Capability: KVM_CAP_ENABLE_CAP
-:Architectures: mips, ppc, s390
+:Architectures: mips, ppc, s390, x86
 :Type: vcpu ioctl
 :Parameters: struct kvm_enable_cap (in)
 :Returns: 0 on success; -1 on error
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 7131d735b1ef..757da29e98f3 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -4233,6 +4233,7 @@  int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
 	case KVM_CAP_EXIT_ON_EMULATION_FAILURE:
 	case KVM_CAP_VCPU_ATTRIBUTES:
 	case KVM_CAP_SYS_ATTRIBUTES:
+	case KVM_CAP_ENABLE_CAP:
 		r = 1;
 		break;
 	case KVM_CAP_EXIT_HYPERCALL: