| From ad178c323a8e95631b162abb6352dd0bf199de0b Mon Sep 17 00:00:00 2001 |
| From: Max Filippov <jcmvbkbc@gmail.com> |
| Date: Sat, 26 Jan 2019 20:35:18 -0800 |
| Subject: xtensa: SMP: limit number of possible CPUs by NR_CPUS |
| |
| [ Upstream commit 25384ce5f9530def39421597b1457d9462df6455 ] |
| |
| This fixes the following warning at boot when the kernel is booted on a |
| board with more CPU cores than was configured in NR_CPUS: |
| |
| smp_init_cpus: Core Count = 8 |
| smp_init_cpus: Core Id = 0 |
| ------------[ cut here ]------------ |
| WARNING: CPU: 0 PID: 0 at include/linux/cpumask.h:121 smp_init_cpus+0x54/0x74 |
| Modules linked in: |
| CPU: 0 PID: 0 Comm: swapper Not tainted 5.0.0-rc3-00015-g1459333f88a0 #124 |
| Call Trace: |
| __warn$part$3+0x6a/0x7c |
| warn_slowpath_null+0x35/0x3c |
| smp_init_cpus+0x54/0x74 |
| setup_arch+0x1c0/0x1d0 |
| start_kernel+0x44/0x310 |
| _startup+0x107/0x107 |
| |
| Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/xtensa/kernel/smp.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| diff --git a/arch/xtensa/kernel/smp.c b/arch/xtensa/kernel/smp.c |
| index 80be6449c497..be1f280c322c 100644 |
| --- a/arch/xtensa/kernel/smp.c |
| +++ b/arch/xtensa/kernel/smp.c |
| @@ -96,6 +96,11 @@ void __init smp_init_cpus(void) |
| pr_info("%s: Core Count = %d\n", __func__, ncpus); |
| pr_info("%s: Core Id = %d\n", __func__, core_id); |
| |
| + if (ncpus > NR_CPUS) { |
| + ncpus = NR_CPUS; |
| + pr_info("%s: limiting core count by %d\n", __func__, ncpus); |
| + } |
| + |
| for (i = 0; i < ncpus; ++i) |
| set_cpu_possible(i, true); |
| } |
| -- |
| 2.19.1 |
| |