ACPI Thermal Zone driver breaks lm-sensors 2 userspace
PATCH 1/1 ACPI Thermal Zone driver breaks lm-sensors 2 userspace
Hi Linus.
2.6.26-rc gained a hwmon interface to the ACPI Thermal Zone driver which unfortunately breaks lm-sensors 2 userspace and renders all other (subsequent) hwmon sensors inoperable also.
Many systems, current slackware and derivative systems among them, are using lm-sensors 2 and would be affected. A new lm-sensors 2.10.7 release is needed to fix this from the user side.
There's disagreement on how bad the problem is, what it should be called and what correct levels of respect and gratitude are. Thread at:
http://lkml.org/lkml/2008/6/21/173
Admittedly, with lm-sensors 2.10.7 around the corner now, there's opportunity to not care all that deeply but I want to make sure that everyone is aware of this as it is definitely going to be reported and most importantly -- losing sensors can be a vital mistake under some circumstances. Fortunately, it's not silent breakage.
A previous patch just made the support optional:
http://lkml.org/lkml/2008/6/22/83
which also works but is not-nicer still.
Off to my shrubbery now...
Rene.
Quoted 1 line
From
303b6d3f407def5aa15bedc1bc7ff3f090025fe5Mon Sep 17 00:00:00 2001
From: Rene Herman <[email protected]>
Date: Sun, 22 Jun 2008 23:45:04 +0200
Subject: [PATCH] thermal: link the virtual/thermal/thermal_zoneN device for hwmon
2.6.26-rc gained a hwmon interface to the ACPI Thermal Zone driver which unfortunately breaks lm-sensors 2 userspace and renders all other (subsequent) hwmon sensors inoperable also.
Many systems, current slackware and derivative systems among them, are using lm-sensors 2 and would be affected. A new lm-sensors 2.10.7 release is needed to fix this from the user side.
The problem is userspace tripping over an absent "device" link in the ACPI Thermal Zone sysfs /sys/class/hwmon/hwmonN directory. This just adds the virtual "thermal/thermal_zoneN" device as a device backlink which satisfies lm-sensors again.
Tested and fairly obvious; a downside is that the ACPI Thermal Zone driver gathers multiple thermal zones into one hwmon interface which means the device link is sensible only for the first thermal zone. Point here is just to not trip up existing lm-sensors 2 systems though.
---drivers/thermal/thermal_sys.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
drivers/thermal/thermal_sys.c +0 -0
@@ -357,7 +357,7 @@ thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
INIT_LIST_HEAD(&hwmon->tz_list);
strlcpy(hwmon->type, tz->type, THERMAL_NAME_LENGTH);
- hwmon->device = hwmon_device_register(NULL);
+ hwmon->device = hwmon_device_register(&tz->device);
if (IS_ERR(hwmon->device)) {
result = PTR_ERR(hwmon->device);
goto free_mem;Signature · 1 line
1.5.5
Mark M. Hoffman
NAKLinus, Rene, et al:
Quoted 8 lines · Rene Herman
drivers/thermal/thermal_sys.c| 2 +-1 files changed, 1 insertions(+), 1 deletions(-)drivers/thermal/thermal_sys.c +0
-0
drivers/thermal/thermal_sys.c thermal_add_hwmon_sysfs(struct thermal_zone_device *tz) · line 363
Quoted 8 lines
drivers/thermal/thermal_sys.c +1
-1@@ -357,7 +357,7 @@ thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)INIT_LIST_HEAD (&hwmon->tz_list);strlcpy (hwmon->type, tz->type,THERMAL_NAME_LENGTH ); - hwmon->device =hwmon_device_register (NULL ); + hwmon->device =hwmon_device_register (&tz->device);if (IS_ERR (hwmon->device)) { result =PTR_ERR (hwmon->device); goto free_mem;
NACK.
1) The bug is in libsensors (2.10), not the kernel.
- but more importantly -
2) This patch is broken.
Regards,
Signature · 2 lines
Mark M. Hoffman [email protected]