thermal: core: Drop excessive lockdep_assert_held() calls
PATCH 1/1 thermal: core: Drop excessive lockdep_assert_held() calls
From: Rafael J. Wysocki <[email protected]>
The lockdep_assert_held() calls added to cooling_device_stats_setup() and cooling_device_stats_destroy() by commit 790930f44289 ("thermal:
core: Introduce thermal_cooling_device_update()") trigger false-positive lockdep reports in code paths that are not subject to race conditions (before cooling device registration and after cooling device removal).
For this reason, remove the lockdep_assert_held() calls from both cooling_device_stats_setup() and cooling_device_stats_destroy() and add one to thermal_cooling_device_stats_reinit() that has to be called under the cdev lock.
Fixes 790930f44289 ("thermal: core: Introduce thermal_cooling_device_update()")
Reported-by Imre Deak <[email protected]>
Signed-off-by Rafael J. Wysocki <[email protected]>
--- drivers/thermal/thermal_sysfs.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/thermal/thermal_sysfs.c +2 -4
@@ -876,8 +876,6 @@ static void cooling_device_stats_setup(sunsigned long states = cdev->max_state +1 ;int var; -lockdep_assert_held (&cdev->lock); - var =sizeof (*stats); var +=sizeof (*stats->time_in_state) * states; var +=sizeof (*stats->trans_table) * states * states;
@@ -903,8 +901,6 @@ out:static void cooling_device_stats_destroy (struct thermal_cooling_device *cdev) { -lockdep_assert_held (&cdev->lock); -kfree (cdev->stats); cdev->stats =NULL ; }
@@ -931,6 +927,8 @@ void thermal_cooling_device_destroy_sysfvoid thermal_cooling_device_stats_reinit (struct thermal_cooling_device *cdev) { +lockdep_assert_held (&cdev->lock); +cooling_device_stats_destroy (cdev);cooling_device_stats_setup (cdev); }