Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1967d64 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Ingo Molnar
Browse files

x86: revert irq number limitation

Impact: fix MSIx not enough irq numbers available regression

The manual revert of the sparse_irq patches missed to bring the number
of possible irqs back to the .27 status. This resulted in a regression
when two multichannel network cards were placed in a system with only
one IO_APIC - causing the networking driver to not have the right
IRQ and the device not coming up.

Remove the dynamic allocation logic leftovers and simply return
NR_IRQS in probe_nr_irqs() for now.

   Fixes: http://lkml.org/lkml/2008/11/19/354



Reported-by: default avatarJesper Dangaard Brouer <hawk@diku.dk>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Tested-by: default avatarJesper Dangaard Brouer <hawk@diku.dk>
Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 57550b27
Loading
Loading
Loading
Loading
+1 −21
Original line number Original line Diff line number Diff line
@@ -3608,27 +3608,7 @@ int __init io_apic_get_redir_entries (int ioapic)


int __init probe_nr_irqs(void)
int __init probe_nr_irqs(void)
{
{
	int idx;
	return NR_IRQS;
	int nr = 0;
#ifndef CONFIG_XEN
	int nr_min = 32;
#else
	int nr_min = NR_IRQS;
#endif

	for (idx = 0; idx < nr_ioapics; idx++)
		nr += io_apic_get_redir_entries(idx) + 1;

	/* double it for hotplug and msi and nmi */
	nr <<= 1;

	/* something wrong ? */
	if (nr < nr_min)
		nr = nr_min;
	if (WARN_ON(nr > NR_IRQS))
		nr = NR_IRQS;

	return nr;
}
}


/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------