cpufreq: scmi: Avoid overflow of target_freq in fast switch

[ Upstream commit 074cffb5020ddcaa5fafcc55655e5da6ebe8c831 ]

Conversion of target_freq to HZ in scmi_cpufreq_fast_switch()
can lead to overflow if the multiplied result is greater than
UINT_MAX, since type of target_freq is unsigned int. Avoid this
overflow by assigning target_freq to unsigned long variable for
converting it to HZ.

Signed-off-by: Jagadeesh Kona <quic_jkona@quicinc.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Jagadeesh Kona 2024-05-20 12:07:32 +05:30 коммит произвёл Greg Kroah-Hartman
Родитель ec4cb72a9b
Коммит 29f45f2588
1 изменённых файлов: 2 добавлений и 2 удалений

Просмотреть файл

@ -61,9 +61,9 @@ static unsigned int scmi_cpufreq_fast_switch(struct cpufreq_policy *policy,
unsigned int target_freq) unsigned int target_freq)
{ {
struct scmi_data *priv = policy->driver_data; struct scmi_data *priv = policy->driver_data;
unsigned long freq = target_freq;
if (!perf_ops->freq_set(ph, priv->domain_id, if (!perf_ops->freq_set(ph, priv->domain_id, freq * 1000, true))
target_freq * 1000, true))
return target_freq; return target_freq;
return 0; return 0;