]> www.infradead.org Git - users/jedix/linux-maple.git/commit
thermal/of: Fix cdev lookup in thermal_of_should_bind()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 21 Feb 2025 16:57:11 +0000 (17:57 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 25 Feb 2025 11:19:10 +0000 (12:19 +0100)
commit423de5b5bc5b267586b449abd1c4fde562aa0cf9
tree6d924b996581777cc17f0438f32fb101d3162ba0
parent4ecaa75771a75f2b78a431bf67dea165d19d72a6
thermal/of: Fix cdev lookup in thermal_of_should_bind()

Since thermal_of_should_bind() terminates the loop after processing
the first child found in cooling-maps, it will never match more than
one cdev to a given trip point which is incorrect, as there may be
cooling-maps associating one trip point with multiple cooling devices.

Address this by letting the loop continue until either all
children have been processed or a matching one has been found.

To avoid adding conditionals or goto statements, put the loop in
question into a separate function and make that function return
right away after finding a matching cooling-maps entry.

Fixes: 94c6110b0b13 ("thermal/of: Use the .should_bind() thermal zone callback")
Link: https://lore.kernel.org/linux-pm/20250219-fix-thermal-of-v1-1-de36e7a590c4@chromium.org/
Reported-by: Yu-Che Cheng <giver@chromium.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Yu-Che Cheng <giver@chromium.org>
Tested-by: Yu-Che Cheng <giver@chromium.org>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Tested-by: Lukasz Luba <lukasz.luba@arm.com>
Link: https://patch.msgid.link/2788228.mvXUDI8C0e@rjwysocki.net
drivers/thermal/thermal_of.c