The following patch fixes the problem for me:

We start at the end of the chip list, going backwards, and we want the
later ones to override the early ones (as documented in the sensors.conf
manual page), so we must stop as soon as any match is found.

---
 lib/access.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- lm-sensors-3.orig/lib/access.c      2008-04-11 14:56:39.000000000 +0200
+++ lm-sensors-3/lib/access.c   2008-04-11 14:59:45.000000000 +0200
@@ -249,7 +249,8 @@ int sensors_get_value(const sensors_chip
                                        subfeature->mapping);
 
                chip = NULL;
-               while ((chip = sensors_for_all_config_chips(name, chip)))
+               while (!expr &&
+                      (chip = sensors_for_all_config_chips(name, chip)))
                        for (i = 0; i < chip->computes_count; i++) {
                                if (!strcmp(feature->name,
                                            chip->computes[i].name)) {
@@ -300,7 +301,8 @@ int sensors_set_value(const sensors_chip
                                        subfeature->mapping);
 
                chip = NULL;
-               while ((chip = sensors_for_all_config_chips(name, chip)))
+               while (!expr &&
+                      (chip = sensors_for_all_config_chips(name, chip)))
                        for (i = 0; i < chip->computes_count; i++) {
                                if (!strcmp(feature->name,
                                            chip->computes[i].name)) {


-- 
Jean Delvare



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to