Message ID | ADDCD993-5E32-4B8C-AE47-8B9B73914176@ubuntu.com |
---|---|
State | New |
Headers | show |
On 2012-06-05 20:08, Ben Collins wrote: > Things like kroute and direct_msi were not protected by ifdef's for when > this feature is not enabled. Also, virtio-pci was referencing > kvm_irqchip_release_virq() which was not defined without KVM_CAP_IRQ_ROUTING > but when KVM was enabled. There is [1] already which I prefer for the first two issues. Would you like to adjust your patch, or should I adopt the kvm_irqchip_release_virq fix? Thanks, Jan [1] http://thread.gmane.org/gmane.comp.emulators.qemu/153940 > > Signed-off-by: Ben Collins <bcollins@ubuntu.com> > Cc: Avi Kivity <avi@redhat.com> > Cc: Marcelo Tosatti <mtosatti@redhat.com> > --- > kvm-all.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/kvm-all.c b/kvm-all.c > index 489ee53..b0f6e06 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -63,7 +63,9 @@ typedef struct KVMSlot > typedef struct kvm_dirty_log KVMDirtyLog; > > typedef struct KVMMSIRoute { > +#ifdef KVM_CAP_IRQ_ROUTING > struct kvm_irq_routing_entry kroute; > +#endif > QTAILQ_ENTRY(KVMMSIRoute) entry; > } KVMMSIRoute; > > @@ -1143,6 +1145,10 @@ static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool assign) > { > abort(); > } > + > +void kvm_irqchip_release_virq(KVMState *s, int virq) > +{ > +} > #endif /* !KVM_CAP_IRQ_ROUTING */ > > int kvm_irqchip_add_irqfd(KVMState *s, int fd, int virq) > @@ -1286,7 +1292,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) {
Please just adopt the remaining portion. Perhaps just merge it with your patch for one complete fix. Thanks On Jun 5, 2012, at 2:15 PM, Jan Kiszka wrote: > On 2012-06-05 20:08, Ben Collins wrote: >> Things like kroute and direct_msi were not protected by ifdef's for when >> this feature is not enabled. Also, virtio-pci was referencing >> kvm_irqchip_release_virq() which was not defined without KVM_CAP_IRQ_ROUTING >> but when KVM was enabled. > > There is [1] already which I prefer for the first two issues. Would you > like to adjust your patch, or should I adopt the > kvm_irqchip_release_virq fix? > > Thanks, > Jan > > [1] http://thread.gmane.org/gmane.comp.emulators.qemu/153940 > >> >> Signed-off-by: Ben Collins <bcollins@ubuntu.com> >> Cc: Avi Kivity <avi@redhat.com> >> Cc: Marcelo Tosatti <mtosatti@redhat.com> >> --- >> kvm-all.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/kvm-all.c b/kvm-all.c >> index 489ee53..b0f6e06 100644 >> --- a/kvm-all.c >> +++ b/kvm-all.c >> @@ -63,7 +63,9 @@ typedef struct KVMSlot >> typedef struct kvm_dirty_log KVMDirtyLog; >> >> typedef struct KVMMSIRoute { >> +#ifdef KVM_CAP_IRQ_ROUTING >> struct kvm_irq_routing_entry kroute; >> +#endif >> QTAILQ_ENTRY(KVMMSIRoute) entry; >> } KVMMSIRoute; >> >> @@ -1143,6 +1145,10 @@ static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool assign) >> { >> abort(); >> } >> + >> +void kvm_irqchip_release_virq(KVMState *s, int virq) >> +{ >> +} >> #endif /* !KVM_CAP_IRQ_ROUTING */ >> >> int kvm_irqchip_add_irqfd(KVMState *s, int fd, int virq) >> @@ -1286,7 +1292,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) { > > -- > Siemens AG, Corporate Technology, CT T DE IT 1 > Corporate Competence Center Embedded Linux -- Bluecherry: http://www.bluecherrydvr.com/ SwissDisk : http://www.swissdisk.com/ Ubuntu : http://www.ubuntu.com/ My Blog : http://ben-collins.blogspot.com/
diff --git a/kvm-all.c b/kvm-all.c index 489ee53..b0f6e06 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -63,7 +63,9 @@ typedef struct KVMSlot typedef struct kvm_dirty_log KVMDirtyLog; typedef struct KVMMSIRoute { +#ifdef KVM_CAP_IRQ_ROUTING struct kvm_irq_routing_entry kroute; +#endif QTAILQ_ENTRY(KVMMSIRoute) entry; } KVMMSIRoute; @@ -1143,6 +1145,10 @@ static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool assign) { abort(); } + +void kvm_irqchip_release_virq(KVMState *s, int virq) +{ +} #endif /* !KVM_CAP_IRQ_ROUTING */ int kvm_irqchip_add_irqfd(KVMState *s, int fd, int virq) @@ -1286,7 +1292,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) {
Things like kroute and direct_msi were not protected by ifdef's for when this feature is not enabled. Also, virtio-pci was referencing kvm_irqchip_release_virq() which was not defined without KVM_CAP_IRQ_ROUTING but when KVM was enabled. Signed-off-by: Ben Collins <bcollins@ubuntu.com> Cc: Avi Kivity <avi@redhat.com> Cc: Marcelo Tosatti <mtosatti@redhat.com> --- kvm-all.c | 8 ++++++++ 1 file changed, 8 insertions(+)