Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752174AbcDUJIU (ORCPT ); Thu, 21 Apr 2016 05:08:20 -0400 Received: from mx2.suse.de ([195.135.220.15]:59699 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751520AbcDUJIT (ORCPT ); Thu, 21 Apr 2016 05:08:19 -0400 Subject: Re: [PATCH] xen/x86: actually allocate legacy interrupts on PV guests To: Stefano Stabellini , boris.ostrovsky@oracle.com References: Cc: linux-kernel@vger.kernel.org, david.vrabel@citrix.com, xen-devel@lists.xenproject.org From: Juergen Gross Message-ID: <57189880.6030102@suse.com> Date: Thu, 21 Apr 2016 11:08:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1197 Lines: 35 On 20/04/16 15:15, Stefano Stabellini wrote: > b4ff8389ed14 is incomplete: relies on nr_legacy_irqs() to get the number > of legacy interrupts when actually nr_legacy_irqs() returns 0 after > probe_8259A(). Use NR_IRQS_LEGACY instead. Would you mind describing the resulting problem? With this commit message I'm absolutely not capable to decide whether e.g. the other use of nr_legacy_irqs() in pci_xen_initial_domain() is correct or not. Juergen > > Signed-off-by: Stefano Stabellini > > diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c > index beac4df..349b8ce 100644 > --- a/arch/x86/pci/xen.c > +++ b/arch/x86/pci/xen.c > @@ -491,8 +491,11 @@ int __init pci_xen_initial_domain(void) > #endif > __acpi_register_gsi = acpi_register_gsi_xen; > __acpi_unregister_gsi = NULL; > - /* Pre-allocate legacy irqs */ > - for (irq = 0; irq < nr_legacy_irqs(); irq++) { > + /* > + * Pre-allocate the legacy IRQs. Use NR_LEGACY_IRQS here > + * because we don't have a PIC and thus nr_legacy_irqs() is zero. > + */ > + for (irq = 0; irq < NR_IRQS_LEGACY; irq++) { > int trigger, polarity; > > if (acpi_get_override_irq(irq, &trigger, &polarity) == -1) >