Patchwork kvm: Fix build for non-CAP_IRQ_ROUTING targets

login
register
mail settings
Submitter Jan Kiszka
Date June 5, 2012, 7:31 a.m.
Message ID <4FCDB5D8.60701@web.de>
Download mbox | patch
Permalink /patch/163042/
State New
Headers show

Comments

Jan Kiszka - June 5, 2012, 7:31 a.m.
On 2012-06-05 02:54, Andreas Färber wrote:
> Am 05.06.2012 01:33, schrieb qemu@buildbot.b1-systems.de:
>> The Buildbot has detected a new failure on builder default_ppc while building qemu.
>> Full details are available at:
>>  http://buildbot.b1-systems.de/qemu/builders/default_ppc/builds/417
>>
>> Buildbot URL: http://buildbot.b1-systems.de/qemu/
>>
>> Buildslave for this Build: qemu-ppc.opensuse.org
>>
>> Build Reason: The Nightly scheduler named 'nightly_default' triggered this build
>> Build Source Stamp: [branch master] HEAD
>> Blamelist: 
>>
>> BUILD FAILED: failed compile
> 
>   CC    ppc-softmmu/kvm-all.o
> /home/build/qemu/default_ppc/build/kvm-all.c:66: error: field 'kroute'
> has incomplete type
> /home/build/qemu/default_ppc/build/kvm-all.c: In function 'kvm_init':
> /home/build/qemu/default_ppc/build/kvm-all.c:1289: error: 'KVMState' has
> no member named 'direct_msi'
> make[1]: *** [kvm-all.o] Error 1
> make: *** [subdir-ppc-softmmu] Error 2
> 
> /-F
> 

Sorry for missing this, here is the fix:

-----8<-----

From: Jan Kiszka <jan.kiszka@siemens.com>

A type definition and a KVMState field initialization escaped the
required wrapping with KVM_CAP_IRQ_ROUTING.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 kvm-all.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

Patch

diff --git a/kvm-all.c b/kvm-all.c
index 489ee53..275dc52 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -62,11 +62,6 @@  typedef struct KVMSlot
 
 typedef struct kvm_dirty_log KVMDirtyLog;
 
-typedef struct KVMMSIRoute {
-    struct kvm_irq_routing_entry kroute;
-    QTAILQ_ENTRY(KVMMSIRoute) entry;
-} KVMMSIRoute;
-
 struct KVMState
 {
     KVMSlot slots[32];
@@ -867,6 +862,11 @@  int kvm_irqchip_set_irq(KVMState *s, int irq, int level)
 }
 
 #ifdef KVM_CAP_IRQ_ROUTING
+typedef struct KVMMSIRoute {
+    struct kvm_irq_routing_entry kroute;
+    QTAILQ_ENTRY(KVMMSIRoute) entry;
+} KVMMSIRoute;
+
 static void set_gsi(KVMState *s, unsigned int gsi)
 {
     s->used_gsi_bitmap[gsi / 32] |= 1U << (gsi % 32);
@@ -1286,7 +1286,9 @@  int kvm_init(void)
     s->pit_state2 = kvm_check_extension(s, KVM_CAP_PIT_STATE2);
 #endif
 
+#ifdef KVM_CAP_IRQ_ROUTING
     s->direct_msi = (kvm_check_extension(s, KVM_CAP_SIGNAL_MSI) > 0);
+#endif
 
     ret = kvm_arch_init(s);
     if (ret < 0) {