thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type()
[ Upstream commit acd7e9ee57c880b99671dd99680cb707b7b5b0ee ] 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@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
e249cea3ab
commit
92a65b0f20
@ -80,11 +80,13 @@ static int int340x_thermal_get_trip_type(struct thermal_zone_device *zone,
|
|||||||
enum thermal_trip_type *type)
|
enum thermal_trip_type *type)
|
||||||
{
|
{
|
||||||
struct int34x_thermal_zone *d = zone->devdata;
|
struct int34x_thermal_zone *d = zone->devdata;
|
||||||
int i;
|
int i, ret = 0;
|
||||||
|
|
||||||
if (d->override_ops && d->override_ops->get_trip_type)
|
if (d->override_ops && d->override_ops->get_trip_type)
|
||||||
return d->override_ops->get_trip_type(zone, trip, type);
|
return d->override_ops->get_trip_type(zone, trip, type);
|
||||||
|
|
||||||
|
mutex_lock(&d->trip_mutex);
|
||||||
|
|
||||||
if (trip < d->aux_trip_nr)
|
if (trip < d->aux_trip_nr)
|
||||||
*type = THERMAL_TRIP_PASSIVE;
|
*type = THERMAL_TRIP_PASSIVE;
|
||||||
else if (trip == d->crt_trip_id)
|
else if (trip == d->crt_trip_id)
|
||||||
@ -102,10 +104,12 @@ static int int340x_thermal_get_trip_type(struct thermal_zone_device *zone,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i == INT340X_THERMAL_MAX_ACT_TRIP_COUNT)
|
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,
|
static int int340x_thermal_set_trip_temp(struct thermal_zone_device *zone,
|
||||||
|
Loading…
Reference in New Issue
Block a user