summaryrefslogtreecommitdiff
path: root/sys/dev/ofw/ofw_thermal.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2024-07-01 14:13:44 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2024-07-01 14:13:44 +0000
commit8b90154fb59eac9250acd023f91537fa1542c6f8 (patch)
tree908ac5177cda92134090d7ee3b47ff37f793ff56 /sys/dev/ofw/ofw_thermal.c
parented40669e26c5a05d1afa2e38ed43fd68f5cf7af3 (diff)
Don't crash if we can't read the temperature for a zone while polling it.
ok dv@
Diffstat (limited to 'sys/dev/ofw/ofw_thermal.c')
-rw-r--r--sys/dev/ofw/ofw_thermal.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/ofw/ofw_thermal.c b/sys/dev/ofw/ofw_thermal.c
index 3e7ab68136d..b895281f9ef 100644
--- a/sys/dev/ofw/ofw_thermal.c
+++ b/sys/dev/ofw/ofw_thermal.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ofw_thermal.c,v 1.9 2024/06/27 09:37:07 kettenis Exp $ */
+/* $OpenBSD: ofw_thermal.c,v 1.10 2024/07/01 14:13:43 kettenis Exp $ */
/*
* Copyright (c) 2019 Mark Kettenis
*
@@ -306,12 +306,12 @@ thermal_zone_poll(void *arg)
int32_t temp, delta;
int i;
+ tp = tz->tz_trips;
temp = thermal_get_temperature_cells(tz->tz_sensors);
if (temp == THERMAL_SENSOR_MAX)
goto out;
newtp = NULL;
- tp = tz->tz_trips;
for (i = 0; i < tz->tz_ntrips; i++) {
if (temp < tp->tp_temperature && tp != tz->tz_tp)
break;
@@ -372,7 +372,7 @@ out:
if (polling_delay > 0)
timeout_add_msec(&tz->tz_poll_to, polling_delay);
- else
+ else if (tp)
thermal_set_limit_cells(tz->tz_sensors, tp->tp_temperature);
}