2023-10-11 15:55:42

by Rafael J. Wysocki

[permalink] [raw]
Subject: [PATCH v1] thermal: trip: Drop lockdep assertion from thermal_zone_trip_id()

From: Rafael J. Wysocki <[email protected]>

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 <[email protected]>
---

The commit mentioned above is in linux-next at this time.

---
drivers/thermal/thermal_trip.c | 2 --
1 file changed, 2 deletions(-)

Index: linux-pm/drivers/thermal/thermal_trip.c
===================================================================
--- linux-pm.orig/drivers/thermal/thermal_trip.c
+++ linux-pm/drivers/thermal/thermal_trip.c
@@ -175,8 +175,6 @@ int thermal_zone_trip_id(struct thermal_
{
int i;

- lockdep_assert_held(&tz->lock);
-
for (i = 0; i < tz->num_trips; i++) {
if (&tz->trips[i] == trip)
return i;