From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] testdev: adjust for ISA irq changes Date: Sun, 29 May 2011 18:10:55 +0300 Message-ID: <4DE261FF.20002@redhat.com> References: <1306673851-23152-1-git-send-email-avi@redhat.com> <4DE260D3.4090507@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , kvm@vger.kernel.org To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:41939 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753778Ab1E2PLB (ORCPT ); Sun, 29 May 2011 11:11:01 -0400 In-Reply-To: <4DE260D3.4090507@web.de> Sender: kvm-owner@vger.kernel.org List-ID: On 05/29/2011 06:05 PM, Jan Kiszka wrote: > On 2011-05-29 14:57, Avi Kivity wrote: > > Recent changes killed the ioapic_irq_hack hack, use the isa_get_irq() API > > instead. > > > > Signed-off-by: Avi Kivity > > --- > > hw/isa-bus.c | 2 +- > > hw/testdev.c | 4 +--- > > 2 files changed, 2 insertions(+), 4 deletions(-) > > > > diff --git a/hw/isa-bus.c b/hw/isa-bus.c > > index 2765543..7e06efc 100644 > > --- a/hw/isa-bus.c > > +++ b/hw/isa-bus.c > > @@ -66,7 +66,7 @@ void isa_bus_irqs(qemu_irq *irqs) > > */ > > qemu_irq isa_get_irq(int isairq) > > { > > - if (isairq< 0 || isairq> 15) { > > + if (isairq< 0 || isairq> 23) { > > That's a fairly evil hack. It will break again when we clean up the kvm > irqchips (not to speak of side effects in non-irqchip/non-kvm mode). > > Why not hook into the kvm irqchip directly? Would keep generic code out > of this business until we have real irq pin manipulation in qemu. Firstly, I did the minimal patch to get things working, as is my custom when fixing up merge/refactoring problems. Not that I often follow up with the clean fix. Second, I'm not sure it's such a hack. Suppose our motherboard wired the PCI links to GSI16-19 (or GSI16-23, as we once wanted before we had MSI-X)? We'd need an API to access non-ISA interrupt lines. So what's the clean fix here? gsi_get_irq()? -- error compiling committee.c: too many arguments to function