diff mbox

[v4,2/7] Move CONFIG_KVM related definitions to kvm_i386.h

Message ID 1498454578-18709-3-git-send-email-thuth@redhat.com
State New
Headers show

Commit Message

Thomas Huth June 26, 2017, 5:22 a.m. UTC
pc.h and sysemu/kvm.h are also included from common code (where
CONFIG_KVM is not available), so the #defines that depend on CONFIG_KVM
should not be declared here to avoid that anybody is using them in a
wrong way. Since we're also going to poison CONFIG_KVM for common code,
let's move them to kvm_i386.h instead. Most of the dummy definitions
from sysemu/kvm.h are also unused since the code that uses them is
only compiled for CONFIG_KVM (e.g. target/i386/kvm.c), so the unused
defines are also simply dropped here instead of being moved.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/i386/pc_q35.c       |  1 +
 include/hw/i386/pc.h   | 13 -------------
 include/sysemu/kvm.h   | 15 ---------------
 target/i386/kvm_i386.h | 23 +++++++++++++++++++++++
 4 files changed, 24 insertions(+), 28 deletions(-)

Comments

Philippe Mathieu-Daudé June 26, 2017, 11:12 a.m. UTC | #1
On 06/26/2017 02:22 AM, Thomas Huth wrote:
> pc.h and sysemu/kvm.h are also included from common code (where
> CONFIG_KVM is not available), so the #defines that depend on CONFIG_KVM
> should not be declared here to avoid that anybody is using them in a
> wrong way. Since we're also going to poison CONFIG_KVM for common code,
> let's move them to kvm_i386.h instead. Most of the dummy definitions
> from sysemu/kvm.h are also unused since the code that uses them is
> only compiled for CONFIG_KVM (e.g. target/i386/kvm.c), so the unused
> defines are also simply dropped here instead of being moved.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>   hw/i386/pc_q35.c       |  1 +
>   include/hw/i386/pc.h   | 13 -------------
>   include/sysemu/kvm.h   | 15 ---------------
>   target/i386/kvm_i386.h | 23 +++++++++++++++++++++++
>   4 files changed, 24 insertions(+), 28 deletions(-)
> 
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 1523ef3..8f696b7 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -36,6 +36,7 @@
>   #include "hw/timer/mc146818rtc.h"
>   #include "hw/xen/xen.h"
>   #include "sysemu/kvm.h"
> +#include "kvm_i386.h"
>   #include "hw/kvm/clock.h"
>   #include "hw/pci-host/q35.h"
>   #include "exec/address-spaces.h"
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 233216a..f48d167 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -20,19 +20,6 @@
>   
>   #define HPET_INTCAP "hpet-intcap"
>   
> -#ifdef CONFIG_KVM
> -#define kvm_pit_in_kernel() \
> -    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
> -#define kvm_pic_in_kernel()  \
> -    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
> -#define kvm_ioapic_in_kernel() \
> -    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
> -#else
> -#define kvm_pit_in_kernel()      0
> -#define kvm_pic_in_kernel()      0
> -#define kvm_ioapic_in_kernel()   0
> -#endif
> -
>   /**
>    * PCMachineState:
>    * @acpi_dev: link to ACPI PM device that performs ACPI hotplug handling
> diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
> index 1e91613..ca40b6e 100644
> --- a/include/sysemu/kvm.h
> +++ b/include/sysemu/kvm.h
> @@ -22,21 +22,6 @@
>   #ifdef CONFIG_KVM
>   #include <linux/kvm.h>
>   #include <linux/kvm_para.h>
> -#else
> -/* These constants must never be used at runtime if kvm_enabled() is false.
> - * They exist so we don't need #ifdefs around KVM-specific code that already
> - * checks kvm_enabled() properly.
> - */
> -#define KVM_CPUID_SIGNATURE      0
> -#define KVM_CPUID_FEATURES       0
> -#define KVM_FEATURE_CLOCKSOURCE  0
> -#define KVM_FEATURE_NOP_IO_DELAY 0
> -#define KVM_FEATURE_MMU_OP       0
> -#define KVM_FEATURE_CLOCKSOURCE2 0
> -#define KVM_FEATURE_ASYNC_PF     0
> -#define KVM_FEATURE_STEAL_TIME   0
> -#define KVM_FEATURE_PV_EOI       0
> -#define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 0
>   #endif
>   
>   extern bool kvm_allowed;
> diff --git a/target/i386/kvm_i386.h b/target/i386/kvm_i386.h
> index bfce427..1de9876 100644
> --- a/target/i386/kvm_i386.h
> +++ b/target/i386/kvm_i386.h
> @@ -15,6 +15,29 @@
>   
>   #define kvm_apic_in_kernel() (kvm_irqchip_in_kernel())
>   
> +#ifdef CONFIG_KVM
> +
> +#define kvm_pit_in_kernel() \
> +    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
> +#define kvm_pic_in_kernel()  \
> +    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
> +#define kvm_ioapic_in_kernel() \
> +    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
> +
> +#else
> +
> +#define kvm_pit_in_kernel()      0
> +#define kvm_pic_in_kernel()      0
> +#define kvm_ioapic_in_kernel()   0
> +
> +/* These constants must never be used at runtime if kvm_enabled() is false.
> + * They exist so we don't need #ifdefs around KVM-specific code that already
> + * checks kvm_enabled() properly.
> + */
> +#define KVM_CPUID_FEATURES       0
> +
> +#endif  /* CONFIG_KVM */
> +
>   bool kvm_allows_irq0_override(void);
>   bool kvm_has_smm(void);
>   bool kvm_has_adjust_clock_stable(void);
>
diff mbox

Patch

diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 1523ef3..8f696b7 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -36,6 +36,7 @@ 
 #include "hw/timer/mc146818rtc.h"
 #include "hw/xen/xen.h"
 #include "sysemu/kvm.h"
+#include "kvm_i386.h"
 #include "hw/kvm/clock.h"
 #include "hw/pci-host/q35.h"
 #include "exec/address-spaces.h"
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 233216a..f48d167 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -20,19 +20,6 @@ 
 
 #define HPET_INTCAP "hpet-intcap"
 
-#ifdef CONFIG_KVM
-#define kvm_pit_in_kernel() \
-    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
-#define kvm_pic_in_kernel()  \
-    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
-#define kvm_ioapic_in_kernel() \
-    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
-#else
-#define kvm_pit_in_kernel()      0
-#define kvm_pic_in_kernel()      0
-#define kvm_ioapic_in_kernel()   0
-#endif
-
 /**
  * PCMachineState:
  * @acpi_dev: link to ACPI PM device that performs ACPI hotplug handling
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index 1e91613..ca40b6e 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -22,21 +22,6 @@ 
 #ifdef CONFIG_KVM
 #include <linux/kvm.h>
 #include <linux/kvm_para.h>
-#else
-/* These constants must never be used at runtime if kvm_enabled() is false.
- * They exist so we don't need #ifdefs around KVM-specific code that already
- * checks kvm_enabled() properly.
- */
-#define KVM_CPUID_SIGNATURE      0
-#define KVM_CPUID_FEATURES       0
-#define KVM_FEATURE_CLOCKSOURCE  0
-#define KVM_FEATURE_NOP_IO_DELAY 0
-#define KVM_FEATURE_MMU_OP       0
-#define KVM_FEATURE_CLOCKSOURCE2 0
-#define KVM_FEATURE_ASYNC_PF     0
-#define KVM_FEATURE_STEAL_TIME   0
-#define KVM_FEATURE_PV_EOI       0
-#define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 0
 #endif
 
 extern bool kvm_allowed;
diff --git a/target/i386/kvm_i386.h b/target/i386/kvm_i386.h
index bfce427..1de9876 100644
--- a/target/i386/kvm_i386.h
+++ b/target/i386/kvm_i386.h
@@ -15,6 +15,29 @@ 
 
 #define kvm_apic_in_kernel() (kvm_irqchip_in_kernel())
 
+#ifdef CONFIG_KVM
+
+#define kvm_pit_in_kernel() \
+    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
+#define kvm_pic_in_kernel()  \
+    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
+#define kvm_ioapic_in_kernel() \
+    (kvm_irqchip_in_kernel() && !kvm_irqchip_is_split())
+
+#else
+
+#define kvm_pit_in_kernel()      0
+#define kvm_pic_in_kernel()      0
+#define kvm_ioapic_in_kernel()   0
+
+/* These constants must never be used at runtime if kvm_enabled() is false.
+ * They exist so we don't need #ifdefs around KVM-specific code that already
+ * checks kvm_enabled() properly.
+ */
+#define KVM_CPUID_FEATURES       0
+
+#endif  /* CONFIG_KVM */
+
 bool kvm_allows_irq0_override(void);
 bool kvm_has_smm(void);
 bool kvm_has_adjust_clock_stable(void);