Populate the cpu_enabled_map correctly. Note that this patch does not actually make any decisions based on the contents of the map. However, as the map is presented via sysfs in: /sys/devices/system/cpu/ It should be populated correctly. Signed-off-by: Alex Chiang <achiang@xxxxxx> Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx> Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx> --- arch/s390/kernel/smp.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 5d4fa4b..f7ae20b 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c @@ -458,6 +458,7 @@ static int smp_rescan_cpus_sigp(cpumask_t avail) if (!cpu_stopped(logical_cpu)) continue; cpu_set(logical_cpu, cpu_present_map); + cpu_set(logical_cpu, cpu_enabled_map); smp_cpu_state[logical_cpu] = CPU_STATE_CONFIGURED; logical_cpu = next_cpu(logical_cpu, avail); if (logical_cpu == NR_CPUS) @@ -490,6 +491,7 @@ static int smp_rescan_cpus_sclp(cpumask_t avail) __cpu_logical_map[logical_cpu] = cpu_id; smp_cpu_polarization[logical_cpu] = POLARIZATION_UNKNWN; cpu_set(logical_cpu, cpu_present_map); + cpu_set(logical_cpu, cpu_enabled_map); if (cpu >= info->configured) smp_cpu_state[logical_cpu] = CPU_STATE_STANDBY; else @@ -844,6 +846,7 @@ void __init smp_prepare_boot_cpu(void) current_thread_info()->cpu = 0; cpu_set(0, cpu_present_map); + cpu_set(0, cpu_enabled_map); cpu_set(0, cpu_online_map); S390_lowcore.percpu_offset = __per_cpu_offset[0]; current_set[0] = current; @@ -1104,8 +1107,10 @@ int __ref smp_rescan_cpus(void) cpus_andnot(newcpus, cpu_present_map, newcpus); for_each_cpu_mask(cpu, newcpus) { rc = smp_add_present_cpu(cpu); - if (rc) + if (rc) { cpu_clear(cpu, cpu_present_map); + cpu_clear(cpu, cpu_enabled_map); + } } rc = 0; out: -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html