FAILED: patch "[PATCH] arm64: topology: fix possible overflow in amu_fie_setup()" failed to apply to 5.10-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Possible dependencies:
d4955c0ad77d ("arm64: topology: fix possible overflow in amu_fie_setup()") eec73529a932 ("arch_topology: Rename freq_scale as arch_freq_scale")a5f1b187cd24 ("arm64: topology: Make AMUs work with modular cpufreq drivers") 47b10b737c07 ("arm64: topology: Reorder init_amu_fie() a bit")384e5699e101 ("arm64: topology: Avoid the have_policy check")5ba836eb9fdb ("Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From d4955c0ad77dbc684fc716387070ac24801b8bca Mon Sep 17 00:00:00 2001
From: Sergey Shtylyov <[email protected]>
Date: Fri, 16 Sep 2022 23:17:07 +0300
Subject: [PATCH] arm64: topology: fix possible overflow in amu_fie_setup()
cpufreq_get_hw_max_freq() returns max frequency in kHz as *unsigned int*, while freq_inv_set_max_ratio() gets passed this frequency in Hz as 'u64'. Multiplying max frequency by 1000 can potentially result in overflow -- multiplying by 1000ULL instead should avoid that...
Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.
arch/arm64/kernel/topology.c +1 -1
@@ -237,7 +237,7 @@ static void amu_fie_setup(const struct cpumask *cpus)for_each_cpu (cpu, cpus) {if (!freq_counters_valid (cpu) ||freq_inv_set_max_ratio (cpu, -cpufreq_get_hw_max_freq (cpu) *1000 , +cpufreq_get_hw_max_freq (cpu) *1000ULL ,arch_timer_get_rate ()))return ; }