diff mbox series

hwmon: occ: Fix power sensor indexing

Message ID 1553029318-31703-1-git-send-email-eajames@linux.ibm.com (mailing list archive)
State Accepted
Headers show
Series hwmon: occ: Fix power sensor indexing | expand

Commit Message

Eddie James March 19, 2019, 9:01 p.m. UTC
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: 54076cb ("hwmon (occ): Add sensor attributes and register ...")
Signed-off-by: Eddie James <eajames@linux.ibm.com>
---
 drivers/hwmon/occ/common.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Joel Stanley March 20, 2019, 6:15 a.m. UTC | #1
On Tue, 19 Mar 2019 at 21:04, Eddie James <eajames@linux.ibm.com> wrote:
>
> 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: 54076cb ("hwmon (occ): Add sensor attributes and register ...")
> Signed-off-by: Eddie James <eajames@linux.ibm.com>

You forgot to cc stable:

cc: stable@vger.kernel.org # 4.21

Tested-by: Joel Stanley <joel@jms.id.au>

Cheers,

Joel
Guenter Roeck March 20, 2019, 1:29 p.m. UTC | #2
On Tue, Mar 19, 2019 at 04:01:58PM -0500, Eddie James wrote:
> 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: 54076cb ("hwmon (occ): Add sensor attributes and register ...")
> Signed-off-by: Eddie James <eajames@linux.ibm.com>
> Tested-by: Joel Stanley <joel@jms.id.au>

Applied.

Side note: There is no v4.21.

Thanks,
Guenter

> ---
>  drivers/hwmon/occ/common.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hwmon/occ/common.c b/drivers/hwmon/occ/common.c
> index 391118c..c888f4a 100644
> --- a/drivers/hwmon/occ/common.c
> +++ b/drivers/hwmon/occ/common.c
> @@ -889,6 +889,8 @@ static int occ_setup_sensor_attrs(struct occ *occ)
>  				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 occ *occ)
>  						     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);
diff mbox series

Patch

diff --git a/drivers/hwmon/occ/common.c b/drivers/hwmon/occ/common.c
index 391118c..c888f4a 100644
--- a/drivers/hwmon/occ/common.c
+++ b/drivers/hwmon/occ/common.c
@@ -889,6 +889,8 @@  static int occ_setup_sensor_attrs(struct occ *occ)
 				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 occ *occ)
 						     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);