Re: PROBLEM: ACPI Thermal Zone for CPU0 does not update after hibernation

From: Andrew Morton
Date: Mon Apr 09 2007 - 20:47:27 EST


On Fri, 6 Apr 2007 16:13:55 -0400 (EDT)
"Walter Francis" <wally@xxxxxxxxxxxxxxxx> wrote:

> After hibernating, the CPU0 thermal zone never updates. It will stay at 59C
> forever for example.
>
> I've tried making the thermal driver a module and unloading it before
> hibernating and it didn't help, also went back as far as 2.6.19 and saw the
> same behavior there. Currently using 2.6.21-pre6. If I reboot or suspend to
> *RAM*, the problem fixes itself. And CPU1's thermal zone is fine. But CPU0
> if it's (example) 59C, it stays 59C forever. I'm seeing it in gkrellm, but
> it's coming from /proc/acpi/thermal_zone/*/temperature and verified to match
> there.

Yeah, John spotted a bug in there the other day.

Does this fix it?

--- a/drivers/acpi/thermal.c~acpi-thermal-fix-mod_timer-interval
+++ a/drivers/acpi/thermal.c
@@ -758,7 +758,8 @@ static void acpi_thermal_check(void *dat
del_timer(&(tz->timer));
} else {
if (timer_pending(&(tz->timer)))
- mod_timer(&(tz->timer), (HZ * sleep_time) / 1000);
+ mod_timer(&(tz->timer),
+ jiffies + (HZ * sleep_time) / 1000);
else {
tz->timer.data = (unsigned long)tz;
tz->timer.function = acpi_thermal_run;
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/