> --- a/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c
> @@ -52,8 +52,7 @@ static ssize_t mlxsw_hwmon_temp_show(struct device *dev,
>                       container_of(attr, struct mlxsw_hwmon_attr, dev_attr);
>       struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon;
>       char mtmp_pl[MLXSW_REG_MTMP_LEN];
> -     unsigned int temp;
> -     int index;
> +     int temp, index;
>       int err;
>  
>       index = mlxsw_hwmon_get_attr_index(mlwsw_hwmon_attr->type_index,
> @@ -65,7 +64,7 @@ static ssize_t mlxsw_hwmon_temp_show(struct device *dev,
>               return err;
>       }
>       mlxsw_reg_mtmp_unpack(mtmp_pl, &temp, NULL, NULL);
> -     return sprintf(buf, "%u\n", temp);
> +     return sprintf(buf, "%d\n", temp);
>  }

If you had used the hwmon core, rather than implementing it yourself,
you could of avoided this part of the bug.

>  static ssize_t mlxsw_hwmon_temp_rst_store(struct device *dev,
> @@ -215,8 +213,8 @@ static ssize_t mlxsw_hwmon_module_temp_show(struct device 
> *dev,
>                       container_of(attr, struct mlxsw_hwmon_attr, dev_attr);
>       struct mlxsw_hwmon *mlxsw_hwmon = mlwsw_hwmon_attr->hwmon;
>       char mtmp_pl[MLXSW_REG_MTMP_LEN];
> -     unsigned int temp;
>       u8 module;
> +     int temp;
>       int err;
>  
>       module = mlwsw_hwmon_attr->type_index - mlxsw_hwmon->sensor_count;

I think you missed changing the %u to %d in this function.

> @@ -519,14 +519,14 @@ static int mlxsw_thermal_module_temp_get(struct 
> thermal_zone_device *tzdev,
>               return 0;
>       }
>       mlxsw_reg_mtmp_unpack(mtmp_pl, &temp, NULL, NULL);
> -     *p_temp = (int) temp;
> +     *p_temp = temp;
>  
>       if (!temp)
>               return 0;
>  
>       /* Update trip points. */
>       err = mlxsw_thermal_module_trips_update(dev, thermal->core, tz);
> -     if (!err)
> +     if (!err && temp > 0)
>               mlxsw_thermal_tz_score_update(thermal, tzdev, tz->trips, temp);

Why the > 0?

    Andrew

Reply via email to