Comment 252 for bug 22336

Revision history for this message
Daugirdas (daugirdas) wrote :

I did some source comparison between suse and vanilla 2.6.25.5 kernels. The ./drivers/acpi/processor_thermal.c and processor_throttling.c were identical. Thermal.c were different (vanilla on the left):

daugirdas@dtrsuse64:~/Desktop/linux-2.6.25.5/drivers/acpi> diff thermal.c thermal.cs
443,445c443
< if (ACPI_FAILURE(status))
< tz->trips.passive.flags.valid = 0;
< else
---
> if (ACPI_SUCCESS(status)) {
447,452c445,454
<
< if (memcmp(&tz->trips.passive.devices, &devices,
< sizeof(struct acpi_handle_list))) {
< memcpy(&tz->trips.passive.devices, &devices,
< sizeof(struct acpi_handle_list));
< ACPI_THERMAL_TRIPS_EXCEPTION(flag, "device");
---
> if (memcmp(&tz->trips.passive.devices, &devices,
> sizeof(struct acpi_handle_list))) {
> memcpy(&tz->trips.passive.devices, &devices,
> sizeof(struct acpi_handle_list));
> ACPI_THERMAL_TRIPS_EXCEPTION(flag, "device");
> }
> } else {
> tz->trips.passive.flags.valid = 0;
> ACPI_EXCEPTION((AE_INFO, status, "Invalid passiv trip"
> " point\n"));

I can't read this but hopefully this would suggest something. Especially since thermal.c contains these lines further down:

 /* take no action if nocrt is set */
 if(!nocrt) {
  printk(KERN_EMERG
   "Critical temperature reached (%ld C), shutting down.\n",
   KELVIN_TO_CELSIUS(tz->temperature));
  orderly_poweroff(true);
 }

Another point: THRC critical point on my system is 97C. 90C is PASSIVE, but I get shutdowns at 90C. That may also mean kernel confuses CRITICAL with PASSIVE!