All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Bugfix for system with 32 cpus
@ 2008-06-27 22:30 Luck, Tony
  2008-06-28 10:15 ` Robin Holt
  0 siblings, 1 reply; 2+ messages in thread
From: Luck, Tony @ 2008-06-27 22:30 UTC (permalink / raw)
  To: linux-ia64

commit 180f2319663d6aece02fc0284a02944ad2cc7c98
Author: Tony Luck <tony.luck@intel.com>
Date:   Fri Jun 27 14:04:21 2008 -0700

    [IA64] Bugfix for system with 32 cpus

    On a system where there are no hot pluggable cpus "additional_cpus"
    is still set to -1 at the point where we call per_cpu_scan_finalize().
    If we didn't find an SRAT table and so pick the default "32" for the
    number of cpus, when we get to:
        high_cpu = min(high_cpu + reserve_cpus, NR_CPUS);
    we will end up initializing for just 31 cpus ... and so we will
    die horribly when bringing up cpu#32.

    Problem introduced by: 2c6e6db41f01b6b4eb98809350827c9678996698
    "Minimize per_cpu reservations."

    Signed-off-by: Tony Luck <tony.luck@intel.com>

diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index 4ae15c8..632cda8 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -547,7 +547,8 @@ setup_arch (char **cmdline_p)
 # ifdef CONFIG_ACPI_NUMA
        acpi_numa_init();
        per_cpu_scan_finalize((cpus_weight(early_cpu_possible_map) = 0 ?
-               32 : cpus_weight(early_cpu_possible_map)), additional_cpus);
+               32 : cpus_weight(early_cpu_possible_map)),
+               additional_cpus > 0 ? additional_cpus : 0);
 # endif
 #else
 # ifdef CONFIG_SMP



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-06-28 10:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-27 22:30 [PATCH] Bugfix for system with 32 cpus Luck, Tony
2008-06-28 10:15 ` Robin Holt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.