From: Hanjun Guo guohanjun@huawei.com
Offering: HULK hulk inclusion category: bugfix bugzilla: 46864 CVE: NA
-------------------------------------------------
With 64 cpus in the system, we need to wait longer to stop cpus for kexec, so just set it to 50 seconds as it is long enough to stop no-boot cpus.
It has no side effects for system with small number cpus because it will break out when other cpus offlined, no need to wait 50 seconds.
Signed-off-by: Hanjun Guo guohanjun@huawei.com Signed-off-by: Chen Zhou chenzhou10@huawei.com --- arch/arm64/kernel/smp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c index 18e9727d3f64..25f3eb1e927a 100644 --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c @@ -1041,8 +1041,8 @@ void smp_send_stop(void) smp_cross_call(&mask, IPI_CPU_STOP); }
- /* Wait up to one second for other CPUs to stop */ - timeout = USEC_PER_SEC; + /* Wait up to 50 seconds for other CPUs to stop */ + timeout = USEC_PER_SEC * 50; while (num_other_online_cpus() && timeout--) udelay(1);