hwmon: (ina3221) Clamp shunt resistor value from DT
PATCH 1/1 hwmon: (ina3221) Clamp shunt resistor value from DT
The input->shunt_resistor is int type while the value from DT is unsigned int. Meanwhile, a divide-by-zero error would happen if the value is 0. So this patch just simply clamps the value.
Signed-off-by Nicolin Chen <[email protected]>
--- drivers/hwmon/ina3221.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/hwmon/ina3221.c +3 -1
@@ -536,8 +536,10 @@ static int ina3221_probe_child_from_dt(struct device *dev,of_property_read_string (child,"label" , &input->label);/* Overwrite default shunt resistor value optionally */ -if (!of_property_read_u32 (child,"shunt-resistor-micro-ohms" , &val)) +if (!of_property_read_u32 (child,"shunt-resistor-micro-ohms" , &val)) { + val =clamp_val (val,1 ,INT_MAX ); input->shunt_resistor = val; + }return 0 ; }
Signature · 1 line
2.17.1
Guenter Roeck
maintainerQuoted 4 lines · Nicolin Chen
The
input->shunt_resistoris int type while the value from DT is unsigned int. Meanwhile, a divide-by-zero error would happen if the value is 0. So this patch just simply clamps the value.
I think it would be better to validate the numbers here instead of silently accepting bad values, and return -EINVAL if the property value is bad.
Thanks,
Guenter
Quoted 24 lines
Signed-off-by Nicolin Chen <[email protected]>--- drivers/hwmon/ina3221.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)drivers/hwmon/ina3221.c +3
-1@@ -536,8 +536,10 @@ static int ina3221_probe_child_from_dt(struct device *dev,of_property_read_string (child,"label" , &input->label);/* Overwrite default shunt resistor value optionally */ -if (!of_property_read_u32 (child,"shunt-resistor-micro-ohms" , &val)) +if (!of_property_read_u32 (child,"shunt-resistor-micro-ohms" , &val)) { + val =clamp_val (val,1 ,INT_MAX ); input->shunt_resistor = val; + }return 0 ; }Signature · 1 line
2.17.1