From: Sheng Yang <sheng@linux.intel.com>
To: Avi Kivity <avi@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
Sheng Yang <sheng@linux.intel.com>
Subject: [PATCH 3/8] KVM: x86: Enable ENABLE_CAP capability for x86
Date: Wed, 20 Oct 2010 16:26:27 +0800 [thread overview]
Message-ID: <1287563192-29685-4-git-send-email-sheng@linux.intel.com> (raw)
In-Reply-To: <1287563192-29685-1-git-send-email-sheng@linux.intel.com>
It would be used later by KVM_CAP_MSIX_MASK related interfaces.
Signed-off-by: Sheng Yang <sheng@linux.intel.com>
---
Documentation/kvm/api.txt | 8 +++++---
arch/x86/kvm/x86.c | 26 ++++++++++++++++++++++++++
2 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt
index b336266..d82d637 100644
--- a/Documentation/kvm/api.txt
+++ b/Documentation/kvm/api.txt
@@ -817,7 +817,7 @@ documentation when it pops into existence).
4.36 KVM_ENABLE_CAP
Capability: KVM_CAP_ENABLE_CAP
-Architectures: ppc
+Architectures: ppc, x86
Type: vcpu ioctl
Parameters: struct kvm_enable_cap (in)
Returns: 0 on success; -1 on error
@@ -828,8 +828,10 @@ can enable an extension, making it available to the guest.
On systems that do not support this ioctl, it always fails. On systems that
do support it, it only works for extensions that are supported for enablement.
-To check if a capability can be enabled, the KVM_CHECK_EXTENSION ioctl should
-be used.
+For PPC, to check if a capability can be enabled, the KVM_CHECK_EXTENSION
+ioctl should be used.
+
+For x86, only some specific capabilities need to be enabled before use.
struct kvm_enable_cap {
/* in */
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index f3f86b2..fc62546 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1926,6 +1926,7 @@ int kvm_dev_ioctl_check_extension(long ext)
case KVM_CAP_DEBUGREGS:
case KVM_CAP_X86_ROBUST_SINGLESTEP:
case KVM_CAP_XSAVE:
+ case KVM_CAP_ENABLE_CAP:
r = 1;
break;
case KVM_CAP_COALESCED_MMIO:
@@ -2707,6 +2708,23 @@ static int kvm_vcpu_ioctl_x86_set_xcrs(struct kvm_vcpu *vcpu,
return r;
}
+static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
+ struct kvm_enable_cap *cap)
+{
+ int r;
+
+ if (cap->flags)
+ return -EINVAL;
+
+ switch (cap->cap) {
+ default:
+ r = -EINVAL;
+ break;
+ }
+
+ return r;
+}
+
long kvm_arch_vcpu_ioctl(struct file *filp,
unsigned int ioctl, unsigned long arg)
{
@@ -2970,6 +2988,14 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
r = kvm_vcpu_ioctl_x86_set_xcrs(vcpu, u.xcrs);
break;
}
+ case KVM_ENABLE_CAP: {
+ struct kvm_enable_cap cap;
+ r = -EFAULT;
+ if (copy_from_user(&cap, argp, sizeof(cap)))
+ goto out;
+ r = kvm_vcpu_ioctl_enable_cap(vcpu, &cap);
+ break;
+ }
default:
r = -EINVAL;
}
--
1.7.0.1
next prev parent reply other threads:[~2010-10-20 8:25 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-20 8:26 [PATCH 0/8][v2] MSI-X mask emulation support for assigned device Sheng Yang
2010-10-20 8:26 ` [PATCH 1/8] PCI: MSI: Move MSI-X entry definition to pci_regs.h Sheng Yang
2010-10-20 11:07 ` Matthew Wilcox
2010-10-20 8:26 ` [PATCH 2/8] irq: Export irq_to_desc() to modules Sheng Yang
2010-10-20 8:26 ` Sheng Yang [this message]
2010-10-20 8:26 ` [PATCH 4/8] KVM: Move struct kvm_io_device to kvm_host.h Sheng Yang
2010-10-20 8:26 ` [PATCH 5/8] KVM: Add kvm_get_irq_routing_entry() func Sheng Yang
2010-10-20 8:53 ` Avi Kivity
2010-10-20 8:58 ` Sheng Yang
2010-10-20 9:13 ` Sheng Yang
2010-10-20 9:17 ` Sheng Yang
2010-10-20 9:32 ` Avi Kivity
2010-10-20 8:26 ` [PATCH 6/8] KVM: assigned dev: Preparation for mask support in userspace Sheng Yang
2010-10-20 9:30 ` Avi Kivity
2010-10-22 14:53 ` Marcelo Tosatti
2010-10-24 12:19 ` Sheng Yang
2010-10-24 12:23 ` Michael S. Tsirkin
2010-10-28 8:21 ` Sheng Yang
2010-10-20 8:26 ` [PATCH 7/8] KVM: assigned dev: Introduce io_device for MSI-X MMIO accessing Sheng Yang
2010-10-20 9:46 ` Avi Kivity
2010-10-20 10:33 ` Michael S. Tsirkin
2010-10-21 6:46 ` Sheng Yang
2010-10-21 9:27 ` Avi Kivity
2010-10-21 9:24 ` Michael S. Tsirkin
2010-10-21 9:47 ` Avi Kivity
2010-10-21 10:51 ` Michael S. Tsirkin
2010-10-20 22:35 ` Michael S. Tsirkin
2010-10-21 7:44 ` Sheng Yang
2010-10-20 8:26 ` [PATCH 8/8] KVM: Emulation MSI-X mask bits for assigned devices Sheng Yang
2010-10-20 9:49 ` Avi Kivity
2010-10-20 22:24 ` Michael S. Tsirkin
2010-10-21 8:30 ` Sheng Yang
2010-10-21 8:39 ` Michael S. Tsirkin
2010-10-22 4:42 ` Sheng Yang
2010-10-22 10:17 ` Michael S. Tsirkin
2010-10-22 13:30 ` Sheng Yang
2010-10-22 14:32 ` Michael S. Tsirkin
2010-10-20 9:51 ` [PATCH 0/8][v2] MSI-X mask emulation support for assigned device Avi Kivity
2010-10-20 10:44 ` Michael S. Tsirkin
2010-10-20 10:59 ` Avi Kivity
2010-10-20 13:43 ` Michael S. Tsirkin
2010-10-20 14:58 ` Alex Williamson
2010-10-20 14:58 ` Michael S. Tsirkin
2010-10-20 15:12 ` Alex Williamson
2010-10-20 15:17 ` Avi Kivity
2010-10-20 15:22 ` Alex Williamson
2010-10-20 15:26 ` Avi Kivity
2010-10-20 15:38 ` Alex Williamson
2010-10-20 14:47 ` Alex Williamson
2010-10-20 14:46 ` Michael S. Tsirkin
2010-10-20 15:07 ` Alex Williamson
2010-10-20 15:13 ` Michael S. Tsirkin
2010-10-20 20:13 ` Alex Williamson
2010-10-20 22:06 ` Michael S. Tsirkin
2010-10-20 15:23 ` Avi Kivity
2010-10-20 15:38 ` Alex Williamson
2010-10-20 15:54 ` Avi Kivity
2010-10-20 15:59 ` Michael S. Tsirkin
2010-10-20 16:13 ` Avi Kivity
2010-10-20 17:11 ` Michael S. Tsirkin
2010-10-20 18:31 ` Alex Williamson
2010-10-21 7:41 ` Sheng Yang
2010-10-20 19:02 ` Marcelo Tosatti
2010-10-21 7:10 ` Sheng Yang
2010-10-21 8:21 ` Michael S. Tsirkin
2010-10-20 22:20 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1287563192-29685-4-git-send-email-sheng@linux.intel.com \
--to=sheng@linux.intel.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox