Skip to contentSkip to conversation

ACPI Thermal Zone driver breaks lm-sensors 2 userspace

PATCH NAK Rene Herman 2 participants 2 messages Jun 23, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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 303b6d3f407def5aa15bedc1bc7ff3f090025fe5 Mon 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
index 6098787..c21e03c 100644
@@ -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
#1 lore raw

Linus, 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
index 6098787..c21e03c 100644

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]