[PATCH] x86: fix probe_nr_irqs for xen

From: Yinghai Lu
Date: Thu Aug 21 2008 - 16:11:17 EST


otherwise Xen is _completely_ unusable with 5 or more VCPUs.
( when !CONFIG_HAVE_SPARSE_IRQ)

based on Alex's patch

also add +1 offset after redir_entries

Signed-off-by: Yinghai Lu <yhlu.kernel@xxxxxxxxx>
Cc: Alex Nixon <alex.nixon@xxxxxxxxxx>

Index: linux-2.6/arch/x86/kernel/io_apic.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/io_apic.c
+++ linux-2.6/arch/x86/kernel/io_apic.c
@@ -3625,16 +3625,21 @@ 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);
+ nr += io_apic_get_redir_entries(idx) + 1;

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

/* something wrong ? */
- if (nr < 32)
- nr = 32;
+ if (nr < nr_min)
+ nr = nr_min;

return nr;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/