qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 4/4] include/exec/poison: Mark CONFIG_KVM as poisone


From: Thomas Huth
Subject: [Qemu-devel] [PATCH 4/4] include/exec/poison: Mark CONFIG_KVM as poisoned, too
Date: Wed, 14 Jun 2017 21:21:53 +0200

We unfortunately need some additional "#ifndef NEED_CPU_H" fuzz in
include/sysemu/kvm.h for this, so that the header can still be included
from common code (which is done all over the place), but now we can
finally be sure that nobody uses this define in a wrong place anymore.

Signed-off-by: Thomas Huth <address@hidden>
---
 hw/acpi/ich9.c        |  1 -
 include/exec/poison.h |  1 +
 include/sysemu/kvm.h  | 37 +++++++++++++++++++++++++++++++++++--
 3 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index 5c279bb..c5d8646 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -33,7 +33,6 @@
 #include "sysemu/sysemu.h"
 #include "hw/acpi/acpi.h"
 #include "hw/acpi/tco.h"
-#include "sysemu/kvm.h"
 #include "exec/address-spaces.h"
 
 #include "hw/i386/ich9.h"
diff --git a/include/exec/poison.h b/include/exec/poison.h
index 5ffed4d..540fc70 100644
--- a/include/exec/poison.h
+++ b/include/exec/poison.h
@@ -80,6 +80,7 @@
 
 #pragma GCC poison CONFIG_LINUX_USER
 #pragma GCC poison CONFIG_VHOST_NET
+#pragma GCC poison CONFIG_KVM
 
 #endif
 #endif
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index 1e91613..8cc57e4 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -19,6 +19,8 @@
 #include "exec/memattrs.h"
 #include "hw/irq.h"
 
+#ifdef NEED_CPU_H
+
 #ifdef CONFIG_KVM
 #include <linux/kvm.h>
 #include <linux/kvm_para.h>
@@ -39,6 +41,8 @@
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 0
 #endif
 
+#endif /* NEED_CPU_H */
+
 extern bool kvm_allowed;
 extern bool kvm_kernel_irqchip;
 extern bool kvm_split_irqchip;
@@ -55,7 +59,8 @@ extern bool kvm_direct_msi_allowed;
 extern bool kvm_ioeventfd_any_length_allowed;
 extern bool kvm_msi_use_devid;
 
-#if defined CONFIG_KVM || !defined NEED_CPU_H
+#if !defined(NEED_CPU_H)
+
 #define kvm_enabled()           (kvm_allowed)
 /**
  * kvm_irqchip_in_kernel:
@@ -178,6 +183,31 @@ extern bool kvm_msi_use_devid;
 #define kvm_msi_devid_required() (kvm_msi_use_devid)
 
 #else
+
+#ifdef CONFIG_KVM
+
+/*
+ * Same definitions again, but we need to keep them separate
+ * since CONFIG_KVM is poisoned without NEED_CPU_H
+ */
+#define kvm_enabled()           (kvm_allowed)
+#define kvm_irqchip_in_kernel() (kvm_kernel_irqchip)
+#define kvm_irqchip_is_split() (kvm_split_irqchip)
+#define kvm_async_interrupts_enabled() (kvm_async_interrupts_allowed)
+#define kvm_halt_in_kernel() (kvm_halt_in_kernel_allowed)
+#define kvm_eventfds_enabled() (kvm_eventfds_allowed)
+#define kvm_irqfds_enabled() (kvm_irqfds_allowed)
+#define kvm_resamplefds_enabled() (kvm_resamplefds_allowed)
+#define kvm_msi_via_irqfd_enabled() (kvm_msi_via_irqfd_allowed)
+#define kvm_gsi_routing_enabled() (kvm_gsi_routing_allowed)
+#define kvm_gsi_direct_mapping() (kvm_gsi_direct_mapping)
+#define kvm_readonly_mem_enabled() (kvm_readonly_mem_allowed)
+#define kvm_direct_msi_enabled() (kvm_direct_msi_allowed)
+#define kvm_ioeventfd_any_length_enabled() (kvm_ioeventfd_any_length_allowed)
+#define kvm_msi_devid_required() (kvm_msi_use_devid)
+
+#else
+
 #define kvm_enabled()           (0)
 #define kvm_irqchip_in_kernel() (false)
 #define kvm_irqchip_is_split() (false)
@@ -193,7 +223,10 @@ extern bool kvm_msi_use_devid;
 #define kvm_direct_msi_enabled() (false)
 #define kvm_ioeventfd_any_length_enabled() (false)
 #define kvm_msi_devid_required() (false)
-#endif
+
+#endif  /* CONFIG_KVM */
+
+#endif  /* NEED_CPU_H */
 
 struct kvm_run;
 struct kvm_lapic_state;
-- 
1.8.3.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]