| From 8e6af454117a51dbf6c8a47c00180a0c235052fe Mon Sep 17 00:00:00 2001 |
| From: Eddie James <eajames@linux.ibm.com> |
| Date: Tue, 19 Mar 2019 16:01:58 -0500 |
| Subject: hwmon: (occ) Fix power sensor indexing |
| |
| From: Eddie James <eajames@linux.ibm.com> |
| |
| commit 8e6af454117a51dbf6c8a47c00180a0c235052fe upstream. |
| |
| In the case of power sensor version 0xA0, the sensor indexing overlapped |
| with the "caps" power sensors, resulting in probe failure and kernel |
| warnings. Fix this by specifying the next index for each power sensor |
| version. |
| |
| Fixes: 54076cb3b5ff ("hwmon (occ): Add sensor attributes and register ...") |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Eddie James <eajames@linux.ibm.com> |
| Tested-by: Joel Stanley <joel@jms.id.au> |
| Signed-off-by: Guenter Roeck <linux@roeck-us.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/hwmon/occ/common.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/hwmon/occ/common.c |
| +++ b/drivers/hwmon/occ/common.c |
| @@ -889,6 +889,8 @@ static int occ_setup_sensor_attrs(struct |
| s++; |
| } |
| } |
| + |
| + s = (sensors->power.num_sensors * 4) + 1; |
| } else { |
| for (i = 0; i < sensors->power.num_sensors; ++i) { |
| s = i + 1; |
| @@ -917,11 +919,11 @@ static int occ_setup_sensor_attrs(struct |
| show_power, NULL, 3, i); |
| attr++; |
| } |
| - } |
| |
| - if (sensors->caps.num_sensors >= 1) { |
| s = sensors->power.num_sensors + 1; |
| + } |
| |
| + if (sensors->caps.num_sensors >= 1) { |
| snprintf(attr->name, sizeof(attr->name), "power%d_label", s); |
| attr->sensor = OCC_INIT_ATTR(attr->name, 0444, show_caps, NULL, |
| 0, 0); |