From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pekka Enberg Subject: Re: [PATCH] kvm tools: Fix IRQ mapping Date: Thu, 11 Aug 2011 12:17:28 +0300 Message-ID: <4E439E28.1040300@kernel.org> References: <1313053448-13315-1-git-send-email-levinsasha928@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, mingo@elte.hu, asias.hejun@gmail.com, gorcunov@gmail.com To: Sasha Levin Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:59191 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753592Ab1HKJRd (ORCPT ); Thu, 11 Aug 2011 05:17:33 -0400 Received: by wyg24 with SMTP id 24so1271807wyg.19 for ; Thu, 11 Aug 2011 02:17:32 -0700 (PDT) In-Reply-To: <1313053448-13315-1-git-send-email-levinsasha928@gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: On 8/11/11 12:04 PM, Sasha Levin wrote: > This thread fixes two issues: > - Slave IRQCHIP was mapped wrong, this caused all IRQs which belong > to it to be ignored (breaking such things as the mouse). > - Line 2 was being mapped, since it's the link between slave and master > IRQCHIPs it shouldn't be. > > Signed-off-by: Sasha Levin Asias, does this fix the VNC mouse problem for you? > --- > tools/kvm/irq.c | 7 ++++--- > 1 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/tools/kvm/irq.c b/tools/kvm/irq.c > index 85e2238..e35bf18 100644 > --- a/tools/kvm/irq.c > +++ b/tools/kvm/irq.c > @@ -147,17 +147,18 @@ void irq__init(struct kvm *kvm) > > /* Hook first 8 GSIs to master IRQCHIP */ > for (i = 0; i< 8; i++) > - irq__add_routing(i, KVM_IRQ_ROUTING_IRQCHIP, IRQCHIP_MASTER, i); > + if (i != 2) > + irq__add_routing(i, KVM_IRQ_ROUTING_IRQCHIP, IRQCHIP_MASTER, i); > > /* Hook next 8 GSIs to slave IRQCHIP */ > for (i = 8; i< 16; i++) > - irq__add_routing(i, KVM_IRQ_ROUTING_IRQCHIP, IRQCHIP_SLAVE, 8-i); > + irq__add_routing(i, KVM_IRQ_ROUTING_IRQCHIP, IRQCHIP_SLAVE, i - 8); > > /* Last but not least, IOAPIC */ > for (i = 0; i< 24; i++) { > if (i == 0) > irq__add_routing(i, KVM_IRQ_ROUTING_IRQCHIP, IRQCHIP_IOAPIC, 2); > - else > + else if (i != 2) > irq__add_routing(i, KVM_IRQ_ROUTING_IRQCHIP, IRQCHIP_IOAPIC, i); > } >