s390/smp: Fix fallback CPU detection
[ Upstream commit 07a75d08cfa1b883a6e1256666e5f0617ee99231 ]
In case SCLP CPU detection does not work a fallback mechanism using SIGP is
in place. Since a cleanup this does not work correctly anymore: new CPUs
are only considered if their type matches the boot CPU.
Before the cleanup the information if a CPU type should be considered was
also part of a structure generated by the fallback mechanism and indicated
that a CPU type should not be considered when adding CPUs.
Since the rework a global SCLP state is used instead. If the global SCLP
state indicates that the CPU type should be considered and the fallback
mechanism is used, there may be a mismatch with CPU types if CPUs are
added. This can lead to a system with only a single CPU even tough there
are many more CPUs.
Address this by simply copying the boot cpu type into the generated data
structure from the fallback mechanism.
Reported-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Fixes: d08d94306e ("s390/smp: cleanup core vs. cpu in the SCLP interface")
Reviewed-by: Mete Durlu <meted@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Ulrich Hecht <uli@kernel.org>
This commit is contained in:
1 parent
7d15f3a139
commit
ccd70869be
1 file changed
+1
@@ -707,6 +707,7 @@ static void __ref smp_get_core_info(struct sclp_core_info *info, int early)
|
||||
continue;
|
||||
info->core[info->configured].core_id =
|
||||
address >> smp_cpu_mt_shift;
|
||||
info->core[info->configured].type = boot_core_type;
|
||||
info->configured++;
|
||||
}
|
||||
info->combined = info->configured;
|
||||
|
||||
Reference in new issue
Block a user