[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2688799.mvXUDI8C0e@kreacher>
Date: Wed, 25 Jan 2023 13:17:42 +0100
From: "Rafael J. Wysocki" <rjw@...ysocki.net>
To: Linux PM <linux-pm@...r.kernel.org>,
Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>
Cc: LKML <linux-kernel@...r.kernel.org>,
Zhang Rui <rui.zhang@...el.com>,
Daniel Lezcano <daniel.lezcano@...aro.org>
Subject: [PATCH v1] thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type()
From: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
In order to prevent int340x_thermal_get_trip_type() from possibly
racing with int340x_thermal_read_trips() invoked by int3403_notify()
add locking to it in analogy with int340x_thermal_get_trip_temp().
Fixes: 6757a7abe47b ("thermal: intel: int340x: Protect trip temperature from concurrent updates")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
---
On top of the linux-next branch in linux-pm.git from today.
---
drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
Index: linux-pm/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
===================================================================
--- linux-pm.orig/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
+++ linux-pm/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
@@ -75,7 +75,9 @@ static int int340x_thermal_get_trip_type
enum thermal_trip_type *type)
{
struct int34x_thermal_zone *d = zone->devdata;
- int i;
+ int i, ret = 0;
+
+ mutex_lock(&d->trip_mutex);
if (trip < d->aux_trip_nr)
*type = THERMAL_TRIP_PASSIVE;
@@ -94,10 +96,12 @@ static int int340x_thermal_get_trip_type
}
}
if (i == INT340X_THERMAL_MAX_ACT_TRIP_COUNT)
- return -EINVAL;
+ ret = -EINVAL;
}
- return 0;
+ mutex_unlock(&d->trip_mutex);
+
+ return ret;
}
static int int340x_thermal_set_trip_temp(struct thermal_zone_device *zone,
Powered by blists - more mailing lists