lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070409185702.bbea2cb9.akpm@linux-foundation.org>
Date:	Mon, 9 Apr 2007 18:57:02 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	wally@...blackmoor.net
Cc:	linux-kernel@...r.kernel.org, "Jung-Ik  Lee" <jilee@...gle.com>,
	linux-acpi@...r.kernel.org
Subject: Re: PROBLEM:  ACPI Thermal Zone for CPU0 does not update after   
 hibernation

On Mon, 9 Apr 2007 21:47:38 -0400 (EDT) "Walter Francis" <wally@...blackmoor.net> wrote:

> > On Fri, 6 Apr 2007 16:13:55 -0400 (EDT)
> > "Walter Francis" <wally@...blackmoor.net> wrote:
> 
> >> After hibernating, the CPU0 thermal zone never updates.  It will stay at 59C
> >> forever for example.
> 
> > 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;
> 
> No joy, didn't help.
>
> Didn't apply clean to 21-pre6 (still latest I see on kernel.org), but here's
> the section that seemed right.
> 
>         /*
>          * Schedule Next Poll
>          * ------------------
>          */
>         if (!sleep_time) {
>                 if (timer_pending(&(tz->timer)))
>                         del_timer(&(tz->timer));
>         } else {
>                 if (timer_pending(&(tz->timer)))
>                         mod_timer(&(tz->timer),jiffies + (HZ * sleep_time) /
> 1000);
>                 else {
>                         tz->timer.data = (unsigned long)tz;
>                         tz->timer.function = acpi_thermal_run;
>                         tz->timer.expires = jiffies + (HZ * sleep_time) / 1000;
>                         add_timer(&(tz->timer));

Yes, the above looks like the correct change.

> Also, I think this is new with the line replaced..  Not sure exactly what's
> causing it, but when I restart the cpuspeed daemon:
> 
> Starting cpuspeed: Error: Not an integer:
> /proc/acpi/thermal_zone/TZS1/temperature

Strange.  Maybe a timing thing.

> # cat /proc/acpi/thermal_zone/TZS1/temperature
> temperature:             41 C
> 
> Looks normal to me?

Yes it does.  What happens of you stop and restart the daemon a second
time?

fwiw, /proc/acpi/thermal_zone/ATF0/temperature seems to do the right thing
here.

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ