[PATCH] Bugfix for system with 32 cpus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



commit 180f2319663d6aece02fc0284a02944ad2cc7c98
Author: Tony Luck <tony.luck@xxxxxxxxx>
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@xxxxxxxxx>

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


--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux