diff options
Diffstat (limited to 'arch/s390/kernel/topology.c')
-rw-r--r-- | arch/s390/kernel/topology.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 7370a41948c..4f8dc942257 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c | |||
@@ -79,12 +79,12 @@ static struct mask_info *add_cpus_to_mask(struct topology_cpu *tl_cpu, | |||
79 | cpu < TOPOLOGY_CPU_BITS; | 79 | cpu < TOPOLOGY_CPU_BITS; |
80 | cpu = find_next_bit(&tl_cpu->mask[0], TOPOLOGY_CPU_BITS, cpu + 1)) | 80 | cpu = find_next_bit(&tl_cpu->mask[0], TOPOLOGY_CPU_BITS, cpu + 1)) |
81 | { | 81 | { |
82 | unsigned int rcpu, lcpu; | 82 | unsigned int rcpu; |
83 | int lcpu; | ||
83 | 84 | ||
84 | rcpu = TOPOLOGY_CPU_BITS - 1 - cpu + tl_cpu->origin; | 85 | rcpu = TOPOLOGY_CPU_BITS - 1 - cpu + tl_cpu->origin; |
85 | for_each_present_cpu(lcpu) { | 86 | lcpu = smp_find_processor_id(rcpu); |
86 | if (cpu_logical_map(lcpu) != rcpu) | 87 | if (lcpu >= 0) { |
87 | continue; | ||
88 | cpumask_set_cpu(lcpu, &book->mask); | 88 | cpumask_set_cpu(lcpu, &book->mask); |
89 | cpu_book_id[lcpu] = book->id; | 89 | cpu_book_id[lcpu] = book->id; |
90 | cpumask_set_cpu(lcpu, &core->mask); | 90 | cpumask_set_cpu(lcpu, &core->mask); |