Re: [PATCH] qemu-kvm-x86: consider the irq0override flag in kvm_arch_init_irq_routing

Marcelo Tosatti
2011-02-07T10:13:19Z

On Mon, Feb 07, 2011 at 10:42:22AM +0100, Jan Kiszka wrote:
> Hi Bernhard,
>
> On 2010-09-14 15:51, Bernhard Kohl wrote:
> > The setting of the irq0override flag must be also passed properly
> > to the KVM_IRQCHIP_IOAPIC.
> >
> > Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com>
> > ---
> > qemu-kvm-x86.c | 4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
> > index fd974b3..e35c234 100644
> > --- a/qemu-kvm-x86.c
> > +++ b/qemu-kvm-x86.c
> > @@ -1388,9 +1388,9 @@ int kvm_arch_init_irq_routing(void)
> > }
> > }
> > for (i = 0; i < 24; ++i) {
> > - if (i == 0) {
> > + if (i == 0 && irq0override) {
> > r = kvm_add_irq_route(kvm_context, i, KVM_IRQCHIP_IOAPIC, 2);
> > - } else if (i != 2) {
> > + } else if (i != 2 || !irq0override) {
> > r = kvm_add_irq_route(kvm_context, i, KVM_IRQCHIP_IOAPIC, i);
> > }
> > if (r < 0) {
>
> While cleaning up the irq0override fragments, I stumbled over this
> commit. It is a nop for qemu-kvm, today and also by the time it was applied:
>
> irq0override = !kvm_irqchip || kvm_has_gsi_routing
>
> But, for obvious reasons, the code above is only executed when gsi
> routing is available.
>
> Can you remember what motivated this patch?
>
> Jan

Guest OS which can't cope with 0->2 GSI->IOAPIC pin mapping.