thermal: trip: Drop lockdep assertion from thermal_zone_trip_id()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 11 Oct 2023 15:45:42 +0000 (17:45 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 11 Oct 2023 15:45:42 +0000 (17:45 +0200)
The lockdep assertion in thermal_zone_trip_id() triggers when the
trip point sysfs attribute of a thermal instance is read, because
there is no thermal zone locking in that code path.

This is not verly useful, though, because there is no mechanism by which
the location of the trips[] table in a thermal zone or its size can
change after binding cooling devices to the trips in that thermal
zone and before those cooling devices are unbound from them.  Thus
it is not in fact necessary to hold the thermal zone lock when
thermal_zone_trip_id() is called from trip_point_show() and so the
lockdep asserion in the former is invalid.

Accordingly, drop that lockdep assertion.

Fixes: 2c7b4bfadef0 ("thermal: core: Store trip pointer in struct thermal_instance")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/thermal/thermal_trip.c

index 9f10e2ff924842e85060aee5eaf5f654f5a18a0f..80f3cdb2f30ee8c3e589697b9e85d38f52a8925d 100644 (file)
@@ -175,8 +175,6 @@ int thermal_zone_trip_id(struct thermal_zone_device *tz,
 {
        int i;
 
-       lockdep_assert_held(&tz->lock);
-
        for (i = 0; i < tz->num_trips; i++) {
                if (&tz->trips[i] == trip)
                        return i;