mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 17:12:06 +00:00
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: Jesper Dangaard Brouer <hawk@diku.dk> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Jesper Dangaard Brouer <hawk@diku.dk> Acked-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
57550b27ff
commit
a1967d6441
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user