]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
xen/x86: actually allocate legacy interrupts on PV guests
authorStefano Stabellini <sstabellini@kernel.org>
Wed, 20 Apr 2016 13:15:01 +0000 (14:15 +0100)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 3 Jun 2016 19:37:55 +0000 (15:37 -0400)
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.

Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
CC: stable@vger.kernel.org
(cherry picked from commit 702f926067d2a4b28c10a3c41a1172dd62d9e735)
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
OraBug: 23527575 - UEK4 can't run under Xen nested virtualization

arch/x86/pci/xen.c

index 68399a1feafde9fd8240fbfa840efe27224bced5..64dd6b4b1243ccf78306e7b84facb6c6986b0946 100644 (file)
@@ -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)