Message ID | Pine.LNX.4.64.0811212022520.29808@ask.diku.dk |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
On Fri, 21 Nov 2008, Jesper Dangaard Brouer wrote: > > Ok, I queue it for mainline. This solves just the number of irqs > > limitation, the rmmod problem still persists, right ? > > It solves both the irq limit and the NIU driver unload bug. I don't believe that it solves it. It hides it at the best. > We should give it a good description. > I have cooked up a patch with a description below, will you accept that? > > Who's tree do you want it to go upsteam via? > (You are listed as one of the X86 maintainers, but Ingo's tree seems more > up-to-date. My patch below is agains DaveM's tree) I queued it already with a description of the irq nr. problem. The rmmod problem is something different and should be investigated thoroughly instead of declaring it solved by magic. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Jesper Dangaard Brouer <hawk@diku.dk> Date: Fri, 21 Nov 2008 20:35:32 +0100 (CET) > On Fri, 21 Nov 2008, Thomas Gleixner wrote: > > > On Fri, 21 Nov 2008, Jesper Dangaard Brouer wrote: > >>> Can you please try the attached patch ? > >> > >> I have tried the patch and it solved the problem! :-) > >> > >> I'll gladly test other patches from your. Guess this patch needs to be > >> brushed up before a mainline patch is ready. > > > > Ok, I queue it for mainline. This solves just the number of irqs > > limitation, the rmmod problem still persists, right ? > > It solves both the irq limit and the NIU driver unload bug. I think it "solves" the unload BUG because the driver never has to fallback to IO_APIC irqs and abort trying to use MSI-X any longer. Only the IRQ limit bug is fixed by Thomas's patch. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c index c9513e1..1fec0f9 100644 --- a/arch/x86/kernel/io_apic.c +++ b/arch/x86/kernel/io_apic.c @@ -3608,27 +3608,7 @@ int __init io_apic_get_redir_entries (int ioapic) int __init probe_nr_irqs(void) { - int idx; - 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; + return NR_IRQS; } /* --------------------------------------------------------------------------