Changeset 5835

Show
Ignore:
Timestamp:
05/07/10 11:01:58 (21 months ago)
Author:
khali
Message:

Fix support of multiple chips. Regression in 3.1.2, faulty commit is
r5792. Fixes ticket #2377.

Location:
lm-sensors/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/CHANGES

    r5833 r5835  
    44SVN HEAD 
    55  libsensors: Increase MAX_SENSORS_PER_TYPE to 24 
     6  sensord: Fix support of multiple chips (#2377) 
    67  sensors-detect: Give udev time to settle before accessing i2c nodes 
    78                  Add support for Intel PCH (SMBus) 
  • lm-sensors/trunk/prog/sensord/rrd.c

    r5793 r5835  
    138138} 
    139139 
     140/* Returns the number of features processed, or -1 on error */ 
    140141static int _applyToFeatures(FeatureFN fn, void *data, 
    141142                            const sensors_chip_name *chip, 
    142                             const ChipDescriptor *desc) 
     143                            const ChipDescriptor *desc, 
     144                            int labelOffset) 
    143145{ 
    144146        int i; 
     
    148150        char *label; 
    149151 
    150         for (i = 0; i < MAX_RRD_SENSORS && features[i].format; ++i) { 
     152        for (i = 0; labelOffset + i < MAX_RRD_SENSORS && features[i].format; ++i) { 
    151153                feature = features + i; 
    152154                rawLabel = feature->feature->name; 
     
    159161                } 
    160162 
    161                 rrdCheckLabel(rawLabel, i); 
    162                 fn(data, rrdLabels[i], label, feature); 
     163                rrdCheckLabel(rawLabel, labelOffset + i); 
     164                fn(data, rrdLabels[labelOffset + i], label, feature); 
    163165                free(label); 
    164166        } 
    165         return 0; 
     167        return i; 
    166168} 
    167169 
     
    185187static int applyToFeatures(FeatureFN fn, void *data) 
    186188{ 
    187         int i, i_detected, ret; 
     189        int i, i_detected, ret, labelOffset = 0; 
    188190        const sensors_chip_name *chip, *chip_arg; 
    189191        ChipDescriptor *desc; 
     
    198200                                continue; 
    199201 
    200                         ret = _applyToFeatures(fn, data, chip, desc); 
    201                         if (ret) 
     202                        ret = _applyToFeatures(fn, data, chip, desc, labelOffset); 
     203                        if (ret < 0) 
    202204                                return ret; 
     205                        labelOffset += ret; 
    203206                } 
    204207        }