[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20200416021210.170736-1-like.xu@linux.intel.com>
Date: Thu, 16 Apr 2020 10:12:10 +0800
From: Like Xu <like.xu@...ux.intel.com>
To: Giovanni Gherdovich <ggherdovich@...e.cz>
Cc: linux-kernel@...r.kernel.org, Like Xu <like.xu@...ux.intel.com>
Subject: [PATCH] x86, smpboot: Disable frequency invariance when it's unsupported
On the Intel SNR processors such as "Intel Atom(R) C6562", the
turbo_freq for 4C turbo may be zero which causes a divide by zero
exception and blocks the boot process when arch_scale_freq_tick().
When one of the preset base_freq or turbo_freq is meaningless,
we may disable frequency invariance.
Fixes: 1567c3e3467c ("x86, sched: Add support for frequency invariance")
Signed-off-by: Like Xu <like.xu@...ux.intel.com>
---
arch/x86/kernel/smpboot.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index fe3ab9632f3b..741367ce4d14 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1958,6 +1958,9 @@ static bool core_set_max_freq_ratio(u64 *base_freq, u64 *turbo_freq)
*base_freq = (*base_freq >> 8) & 0xFF; /* max P state */
*turbo_freq = (*turbo_freq >> 24) & 0xFF; /* 4C turbo */
+ if (*turbo_freq == 0 || *base_freq == 0)
+ return false;
+
return true;
}
--
2.21.1
Powered by blists - more mailing lists