diff mbox

[v2,4/5] check extension

Message ID 1248196849-27985-5-git-send-email-glommer@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Glauber Costa July 21, 2009, 5:20 p.m. UTC
use upstream check_extension code

Signed-off-by: Glauber Costa <glommer@redhat.com>
---
 hw/device-assignment.c |    2 +-
 kvm-all.c              |    2 ++
 qemu-kvm-x86.c         |    6 +++---
 qemu-kvm.c             |   18 ++++--------------
 qemu-kvm.h             |    2 +-
 5 files changed, 11 insertions(+), 19 deletions(-)
diff mbox

Patch

diff --git a/hw/device-assignment.c b/hw/device-assignment.c
index 88c3baf..75db546 100644
--- a/hw/device-assignment.c
+++ b/hw/device-assignment.c
@@ -639,7 +639,7 @@  static int assign_device(AssignedDevInfo *adev)
     /* We always enable the IOMMU if present
      * (or when not disabled on the command line)
      */
-    r = kvm_check_extension(kvm_context, KVM_CAP_IOMMU);
+    r = kvm_check_extension(kvm_state, KVM_CAP_IOMMU);
     if (r && !adev->disable_iommu)
 	assigned_dev_data.flags |= KVM_DEV_ASSIGN_ENABLE_IOMMU;
 #endif
diff --git a/kvm-all.c b/kvm-all.c
index 0ec6475..b4b5a35 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -383,6 +383,7 @@  int kvm_uncoalesce_mmio_region(target_phys_addr_t start, ram_addr_t size)
     return ret;
 }
 
+#endif
 int kvm_check_extension(KVMState *s, unsigned int extension)
 {
     int ret;
@@ -394,6 +395,7 @@  int kvm_check_extension(KVMState *s, unsigned int extension)
 
     return ret;
 }
+#ifdef KVM_UPSTREAM
 
 int kvm_init(int smp_cpus)
 {
diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
index c9f9ac3..499e305 100644
--- a/qemu-kvm-x86.c
+++ b/qemu-kvm-x86.c
@@ -303,7 +303,7 @@  int kvm_has_pit_state2(kvm_context_t kvm)
 	int r = 0;
 
 #ifdef KVM_CAP_PIT_STATE2
-	r = kvm_check_extension(kvm, KVM_CAP_PIT_STATE2);
+	r = kvm_check_extension(kvm_state, KVM_CAP_PIT_STATE2);
 #endif
 	return r;
 }
@@ -657,7 +657,7 @@  uint32_t kvm_get_supported_cpuid(kvm_context_t kvm, uint32_t function, int reg)
 	uint32_t ret = 0;
 	uint32_t cpuid_1_edx;
 
-	if (!kvm_check_extension(kvm, KVM_CAP_EXT_CPUID)) {
+	if (!kvm_check_extension(kvm_state, KVM_CAP_EXT_CPUID)) {
 		return -1U;
 	}
 
@@ -1189,7 +1189,7 @@  static int get_para_features(kvm_context_t kvm_context)
 	int i, features = 0;
 
 	for (i = 0; i < ARRAY_SIZE(para_features)-1; i++) {
-		if (kvm_check_extension(kvm_context, para_features[i].cap))
+		if (kvm_check_extension(kvm_state, para_features[i].cap))
 			features |= (1 << para_features[i].feature);
 	}
 
diff --git a/qemu-kvm.c b/qemu-kvm.c
index 98cfee0..e200dea 100644
--- a/qemu-kvm.c
+++ b/qemu-kvm.c
@@ -589,16 +589,6 @@  static int kvm_create_default_phys_mem(kvm_context_t kvm,
 	return -1;
 }
 
-int kvm_check_extension(kvm_context_t kvm, int ext)
-{
-	int ret;
-
-	ret = kvm_ioctl(kvm_state, KVM_CHECK_EXTENSION, ext);
-	if (ret > 0)
-		return ret;
-	return 0;
-}
-
 void kvm_create_irqchip(kvm_context_t kvm)
 {
 	int r;
@@ -1345,7 +1335,7 @@  int kvm_has_gsi_routing(kvm_context_t kvm)
     int r = 0;
 
 #ifdef KVM_CAP_IRQ_ROUTING
-    r = kvm_check_extension(kvm, KVM_CAP_IRQ_ROUTING);
+    r = kvm_check_extension(kvm_state, KVM_CAP_IRQ_ROUTING);
 #endif
     return r;
 }
@@ -1353,7 +1343,7 @@  int kvm_has_gsi_routing(kvm_context_t kvm)
 int kvm_get_gsi_count(kvm_context_t kvm)
 {
 #ifdef KVM_CAP_IRQ_ROUTING
-	return kvm_check_extension(kvm, KVM_CAP_IRQ_ROUTING);
+	return kvm_check_extension(kvm_state, KVM_CAP_IRQ_ROUTING);
 #else
 	return -EINVAL;
 #endif
@@ -1606,7 +1596,7 @@  int kvm_irqfd(kvm_context_t kvm, int gsi, int flags)
 	int r;
 	int fd;
 
-	if (!kvm_check_extension(kvm, KVM_CAP_IRQFD))
+	if (!kvm_check_extension(kvm_state, KVM_CAP_IRQFD))
 		return -ENOENT;
 
 	fd = eventfd(0, 0);
@@ -2381,7 +2371,7 @@  int kvm_setup_guest_memory(void *area, unsigned long size)
 
 int kvm_qemu_check_extension(int ext)
 {
-    return kvm_check_extension(kvm_context, ext);
+    return kvm_check_extension(kvm_state, ext);
 }
 
 int kvm_qemu_init_env(CPUState *cenv)
diff --git a/qemu-kvm.h b/qemu-kvm.h
index 8c9b72f..ec35f29 100644
--- a/qemu-kvm.h
+++ b/qemu-kvm.h
@@ -167,7 +167,6 @@  int kvm_create(kvm_context_t kvm,
 	       unsigned long phys_mem_bytes,
 	       void **phys_mem);
 int kvm_create_vm(kvm_context_t kvm);
-int kvm_check_extension(kvm_context_t kvm, int ext);
 void kvm_create_irqchip(kvm_context_t kvm);
 
 /*!
@@ -1198,5 +1197,6 @@  extern KVMState *kvm_state;
 
 int kvm_ioctl(KVMState *s, int type, ...);
 int kvm_vm_ioctl(KVMState *s, int type, ...);
+int kvm_check_extension(KVMState *s, unsigned int ext);
 
 #endif