linux/drivers/cpufreq
Lifeng Zheng cd8e505585 cpufreq: conservative: Simplify frequency limit handling
[ Upstream commit 3494dff897 ]

cs_dbs_update() performs explicit checks against policy->min/max
before updating the target frequency. These checks are redundant as
__cpufreq_driver_target() already clamps the requested frequency to
the valid policy limits.

Remove the unnecessary boundary checks and simplify the update logic.

This also fixes an issue introduced by commit 00bfe05889 ("cpufreq:
conservative: Decrease frequency faster for deferred updates"), where
stale target comparisons could cause frequency updates to be skipped
entirely after deferred adjustments.

Closes: https://lore.kernel.org/all/20260421123545.1745998-1-zhenglifeng1@huawei.com/
Fixes: 00bfe05889 ("cpufreq: conservative: Decrease frequency faster for deferred updates")
Signed-off-by: Lifeng Zheng <zhenglifeng1@huawei.com>
Co-developed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Zhongqiu Han <zhongqiu.han@oss.qualcomm.com>
Link: https://patch.msgid.link/292e6d937890f135e30ec0d2107eaad47cb9a976.1779423281.git.viresh.kumar@linaro.org
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-07-24 15:51:30 +02:00
..
acpi-cpufreq.c acpi-cpufreq: Fix nominal_freq units to KHz in get_max_boost_ratio() 2025-06-27 11:05:09 +01:00
amd_freq_sensitivity.c cpufreq: amd_freq_sensitivity: Add missing pci_dev_put() 2022-12-31 13:14:03 +01:00
armada-8k-cpufreq.c cpufreq: armada-8k: Fix off by one in armada_8k_cpufreq_free_table() 2025-08-28 16:24:27 +02:00
armada-37xx-cpufreq.c cpufreq: Explicitly include correct DT includes 2024-03-26 18:21:16 -04:00
bmips-cpufreq.c cpufreq: Make cpufreq_generic_init() return void 2019-07-16 10:20:11 +02:00
brcmstb-avs-cpufreq.c cpufreq: brcmstb-avs-cpufreq: fix up "add check for cpufreq_cpu_get's return value" 2024-04-10 16:18:44 +02:00
cppc_cpufreq.c cpufreq: CPPC: Avoid using CPUFREQ_ETERNAL as transition delay 2025-10-29 14:03:07 +01:00
cpufreq-dt-platdev.c cpufreq: Use of_property_present() for testing DT property presence 2024-01-25 14:52:33 -08:00
cpufreq-dt.c cpufreq: dt: always allocate zeroed cpumask 2024-04-10 16:18:43 +02:00
cpufreq-dt.h cpufreq: dt: Allow platform specific intermediate callbacks 2020-03-12 15:43:52 +05:30
cpufreq-nforce2.c cpufreq: nforce2: fix reference count leak in nforce2 2026-01-19 13:09:51 +01:00
cpufreq.c cpufreq: Fix hotplug-suspend race during reboot 2026-07-24 15:51:22 +02:00
cpufreq_conservative.c cpufreq: conservative: Simplify frequency limit handling 2026-07-24 15:51:30 +02:00
cpufreq_governor.c cpufreq: governor: fix double free in cpufreq_dbs_governor_init() error path 2026-06-01 17:35:11 +02:00
cpufreq_governor.h cpufreq: conservative: Reset requested_freq on limits change 2026-04-18 10:33:27 +02:00
cpufreq_governor_attr_set.c cpufreq: Move to_gov_attr_set() to cpufreq.h 2023-02-01 08:27:29 +01:00
cpufreq_ondemand.c cpufreq: Replace deprecated CPU-hotplug functions 2021-08-04 20:16:32 +02:00
cpufreq_ondemand.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpufreq_performance.c cpufreq: Introduce CPUFREQ_GOV_STRICT_TARGET 2020-11-10 18:31:17 +01:00
cpufreq_powersave.c cpufreq: Introduce CPUFREQ_GOV_STRICT_TARGET 2020-11-10 18:31:17 +01:00
cpufreq_stats.c cpufreq: stats: Fix buffer overflow detection in trans_stats() 2023-11-28 16:56:32 +00:00
cpufreq_userspace.c cpufreq: Register governors at core_initcall 2020-07-02 13:03:30 +02:00
davinci-cpufreq.c cpufreq: Remove CPUFREQ_STICKY flag 2021-02-04 19:23:20 +01:00
e_powersaver.c cpufreq: e_powersaver: remove unreachable break 2020-10-27 18:42:54 +01:00
elanfreq.c cpufreq: Convert to new X86 CPU match macros 2020-03-24 21:31:27 +01:00
freq_table.c cpufreq: Fix scaling_{available,boost}_frequencies_show() comments 2021-03-26 17:43:48 +01:00
gx-suspmod.c cpufreq: Avoid creating excessively large stack frames 2020-01-27 10:33:33 +01:00
highbank-cpufreq.c cpufreq: highbank: Add missing MODULE_DEVICE_TABLE 2020-12-07 13:02:37 +05:30
ia64-acpi-cpufreq.c ia64: fix format string for ia64-acpi-cpu-freq 2021-03-19 17:26:20 +01:00
imx-cpufreq-dt.c cpufreq: Use of_property_present() for testing DT property presence 2024-01-25 14:52:33 -08:00
imx6q-cpufreq.c cpufreq: Use of_property_present() for testing DT property presence 2024-01-25 14:52:33 -08:00
intel_pstate.c cpufreq: intel_pstate: Sync policy->cur during CPU offline 2026-07-24 15:51:22 +02:00
Kconfig cpufreq: Kconfig: fix documentation links 2021-04-21 19:00:42 +02:00
Kconfig.arm cpufreq: mediatek-hw: Add support for CPUFREQ HW 2021-09-06 15:15:19 +05:30
Kconfig.powerpc cpufreq: Fix Kconfig indentation 2019-11-29 11:52:02 +01:00
Kconfig.x86 cpufreq: sfi-cpufreq: Remove driver for deprecated firmware 2021-02-15 20:04:46 +01:00
kirkwood-cpufreq.c cpufreq: kirkwood: convert to devm_platform_ioremap_resource 2020-01-07 13:29:58 +05:30
longhaul.c cpufreq/longhaul: handle NULL policy in longhaul_exit 2025-12-07 06:09:16 +09:00
longhaul.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 166 2019-05-30 11:26:39 -07:00
longrun.c cpufreq: Convert to new X86 CPU match macros 2020-03-24 21:31:27 +01:00
loongson1-cpufreq.c cpufreq: Remove CPUFREQ_STICKY flag 2021-02-04 19:23:20 +01:00
loongson2_cpufreq.c cpufreq: loongson2: Unregister platform_driver on failure 2024-12-14 19:51:01 +01:00
Makefile cpufreq: mediatek-hw: Add support for CPUFREQ HW 2021-09-06 15:15:19 +05:30
maple-cpufreq.c Merge branch 'pm-cpufreq' 2019-07-18 09:49:30 +02:00
mediatek-cpufreq-hw.c cpufreq: mediatek-hw: Fix wrong return value in mtk_cpufreq_get_cpu_power() 2024-12-14 19:51:15 +01:00
mediatek-cpufreq.c cpufreq: mediatek: Unregister platform device on exit 2022-06-09 10:23:14 +02:00
mvebu-cpufreq.c cpufreq: mvebu: Remove OPPs using dev_pm_opp_remove() 2018-09-19 14:56:44 -07:00
omap-cpufreq.c cpufreq: omap: Use .register_em() to register with energy model 2021-08-12 09:54:07 +05:30
p4-clockmod.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pasemi-cpufreq.c cpufreq: pasemi: Include header file for {check,restore}_astate prototypes 2020-07-15 15:17:06 +02:00
pcc-cpufreq.c cpufreq: pcc: fix use-after-free and double free in _OSC evaluation 2026-07-24 15:51:22 +02:00
pmac32-cpufreq.c cpufreq: pmac32-cpufreq: Fix refcount leak bug 2022-07-21 21:24:34 +02:00
pmac64-cpufreq.c Merge branch 'pm-cpufreq' 2019-07-18 09:49:30 +02:00
powernow-k6.c cpufreq: Convert to new X86 CPU match macros 2020-03-24 21:31:27 +01:00
powernow-k7.c cpufreq: Convert to new X86 CPU match macros 2020-03-24 21:31:27 +01:00
powernow-k7.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 166 2019-05-30 11:26:39 -07:00
powernow-k8.c cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit() 2023-09-19 12:22:32 +02:00
powernow-k8.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 347 2019-06-05 17:37:08 +02:00
powernv-cpufreq.c powerpc updates for 5.15 2021-09-03 11:22:50 -07:00
ppc_cbe_cpufreq.c cpufreq: Explicitly include correct DT includes 2024-03-26 18:21:16 -04:00
ppc_cbe_cpufreq.h cpufreq: powerpc_cbe: Switch to QoS requests for freq limits 2019-08-26 10:02:01 +02:00
ppc_cbe_cpufreq_pervasive.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153 2019-05-30 11:26:32 -07:00
ppc_cbe_cpufreq_pmi.c cpufreq: Explicitly include correct DT includes 2024-03-26 18:21:16 -04:00
pxa2xx-cpufreq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
pxa3xx-cpufreq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
qcom-cpufreq-hw.c cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut() 2022-12-31 13:14:01 +01:00
qcom-cpufreq-nvmem.c cpufreq: Explicitly include correct DT includes 2024-03-26 18:21:16 -04:00
qoriq-cpufreq.c drivers: cpufreq: Add missing of_node_put() in qoriq-cpufreq.c 2022-07-07 17:53:33 +02:00
raspberrypi-cpufreq.c cpufreq: add driver for Raspberry Pi 2019-06-13 08:58:22 +05:30
s3c24xx-cpufreq-debugfs.c ARM: s3c: remove cpufreq header dependencies 2020-08-20 17:52:05 +02:00
s3c24xx-cpufreq.c cpufreq: Remove CPUFREQ_STICKY flag 2021-02-04 19:23:20 +01:00
s3c64xx-cpufreq.c cpufreq: s3c64xx: Fix compilation warning 2025-03-13 12:50:23 +01:00
s3c2410-cpufreq.c cpufreq: s3c24xx: move low-level clk reg access into platform code 2020-08-20 17:53:22 +02:00
s3c2412-cpufreq.c cpufreq: s3c24xx: move low-level clk reg access into platform code 2020-08-20 17:53:22 +02:00
s3c2416-cpufreq.c cpufreq: s3c: fix unbalances of cpufreq policy refcount 2020-01-07 13:31:01 +05:30
s3c2440-cpufreq.c cpufreq: s3c24xx: move low-level clk reg access into platform code 2020-08-20 17:53:22 +02:00
s5pv210-cpufreq.c cpufreq: s5pv210: fix refcount leak 2026-01-19 13:09:42 +01:00
sa1100-cpufreq.c cpufreq: Remove CPUFREQ_STICKY flag 2021-02-04 19:23:20 +01:00
sa1110-cpufreq.c cpufreq: Remove CPUFREQ_STICKY flag 2021-02-04 19:23:20 +01:00
sc520_freq.c cpufreq: sc520_freq: add 'fallthrough' to one case 2021-05-21 18:52:13 +02:00
scmi-cpufreq.c cpufreq: scmi: Account for malformed DT in scmi_dev_used_by_cpus() 2025-10-19 16:21:29 +02:00
scpi-cpufreq.c cpufreq: scpi: Fix null-ptr-deref in scpi_cpufreq_get_rate() 2025-05-02 07:44:29 +02:00
sh-cpufreq.c cpufreq: sh: Remove sh_cpufreq_cpu_ready() 2021-09-02 18:04:17 +02:00
sparc-us2e-cpufreq.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
sparc-us3-cpufreq.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
spear-cpufreq.c cpufreq: Remove CPUFREQ_STICKY flag 2021-02-04 19:23:20 +01:00
speedstep-centrino.c cpufreq: Convert to new X86 CPU match macros 2020-03-24 21:31:27 +01:00
speedstep-ich.c cpufreq: Convert to new X86 CPU match macros 2020-03-24 21:31:27 +01:00
speedstep-lib.c cpufreq: speedstep: remove unneeded semicolon 2020-10-28 18:04:07 +01:00
speedstep-lib.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 166 2019-05-30 11:26:39 -07:00
speedstep-smi.c cpufreq: Convert to new X86 CPU match macros 2020-03-24 21:31:27 +01:00
sti-cpufreq.c cpufreq: Explicitly include correct DT includes 2024-03-26 18:21:16 -04:00
sun50i-cpufreq-nvmem.c cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe 2022-05-09 09:14:36 +02:00
tegra20-cpufreq.c cpufreq: Use of_property_present() for testing DT property presence 2024-01-25 14:52:33 -08:00
tegra124-cpufreq.c cpufreq: tegra124: Add suspend and resume support 2019-10-29 13:25:29 +01:00
tegra186-cpufreq.c cpufreq: tegra186: Initialize all cores to max frequencies 2025-12-07 06:09:25 +09:00
tegra194-cpufreq.c cpufreq: Remove CPUFREQ_STICKY flag 2021-02-04 19:23:20 +01:00
ti-cpufreq.c cpufreq: ti-cpufreq: Introduce quirks to handle syscon fails appropriately 2024-10-17 15:10:45 +02:00
vexpress-spc-cpufreq.c cpufreq: Explicitly include correct DT includes 2024-03-26 18:21:16 -04:00