From: Rafael J. Wysocki Date: Mon, 12 May 2025 13:23:30 +0000 (+0200) Subject: cpufreq: Drop policy locking from cpufreq_policy_is_good_for_eas() X-Git-Tag: v6.16-rc1~109^2~1^2~13 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=f7e9228532beb5c0cbb11101384ed977806ef691;p=linux-block.git cpufreq: Drop policy locking from cpufreq_policy_is_good_for_eas() Policy locking was added to cpufreq_policy_is_good_for_eas() by commit 4854649b1fb4 ("cpufreq/sched: Move cpufreq-specific EAS checks to cpufreq") to address a theoretical race condition, but it turned out to introduce a circular locking dependency between the policy rwsem and sched_domains_mutex via cpuset_mutex. This leads to a board lockup on OdroidN2 that is based on the ARM64 Amlogic Meson SoC. Drop the policy locking from cpufreq_policy_is_good_for_eas() to address this issue. Fixes: 4854649b1fb4 ("cpufreq/sched: Move cpufreq-specific EAS checks to cpufreq") Closes: https://lore.kernel.org/linux-pm/1bf3df62-0641-459f-99fc-fd511e564b84@samsung.com/ Reported-by: Marek Szyprowski Tested-by: Marek Szyprowski Signed-off-by: Rafael J. Wysocki Link: https://patch.msgid.link/2806514.mvXUDI8C0e@rjwysocki.net --- diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 731ecfc178d8..be727da0be4d 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -3067,8 +3067,6 @@ static bool cpufreq_policy_is_good_for_eas(unsigned int cpu) return false; } - guard(cpufreq_policy_read)(policy); - return sugov_is_governor(policy); }