diff options
| -rw-r--r-- | drivers/thermal/thermal_sys.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c index 0a69672097a8..4e83c297ec9e 100644 --- a/drivers/thermal/thermal_sys.c +++ b/drivers/thermal/thermal_sys.c | |||
| @@ -953,7 +953,12 @@ void thermal_zone_device_update(struct thermal_zone_device *tz) | |||
| 953 | 953 | ||
| 954 | mutex_lock(&tz->lock); | 954 | mutex_lock(&tz->lock); |
| 955 | 955 | ||
| 956 | tz->ops->get_temp(tz, &temp); | 956 | if (tz->ops->get_temp(tz, &temp)) { |
| 957 | /* get_temp failed - retry it later */ | ||
| 958 | printk(KERN_WARNING PREFIX "failed to read out thermal zone " | ||
| 959 | "%d\n", tz->id); | ||
| 960 | goto leave; | ||
| 961 | } | ||
| 957 | 962 | ||
| 958 | for (count = 0; count < tz->trips; count++) { | 963 | for (count = 0; count < tz->trips; count++) { |
| 959 | tz->ops->get_trip_type(tz, count, &trip_type); | 964 | tz->ops->get_trip_type(tz, count, &trip_type); |
| @@ -1005,6 +1010,8 @@ void thermal_zone_device_update(struct thermal_zone_device *tz) | |||
| 1005 | THERMAL_TRIPS_NONE); | 1010 | THERMAL_TRIPS_NONE); |
| 1006 | 1011 | ||
| 1007 | tz->last_temperature = temp; | 1012 | tz->last_temperature = temp; |
| 1013 | |||
| 1014 | leave: | ||
| 1008 | if (tz->passive) | 1015 | if (tz->passive) |
| 1009 | thermal_zone_device_set_polling(tz, tz->passive_delay); | 1016 | thermal_zone_device_set_polling(tz, tz->passive_delay); |
| 1010 | else if (tz->polling_delay) | 1017 | else if (tz->polling_delay) |
