hwmon: (f71882fg) prevent possible division by zero
[ Upstream commit0babf89c9c
] In the unlikely event that something goes wrong with the device and its registers, the fan_from_reg() function may return 0. This value will cause a division-by-zero error in the show_pwm() function. To prevent this, test the value of fan_from_reg(data->fan_full_speed[nr]) against 0 before performing the division. If the division-by-zero error is avoided, assign 0 to the val variable. Found by Linux Verification Center (linuxtesting.org) with static analysis tool SVACE. Fixes:df9ec2dae0
("hwmon: (f71882fg) Reorder symbols to get rid of a few forward declarations") Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru> Link: https://lore.kernel.org/r/20230510143537.145060-1-n.zhandarovich@fintech.ru Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
08cc7cd2c2
commit
280e58d8b0
|
@ -1096,8 +1096,11 @@ static ssize_t show_pwm(struct device *dev,
|
|||
val = data->pwm[nr];
|
||||
else {
|
||||
/* RPM mode */
|
||||
val = 255 * fan_from_reg(data->fan_target[nr])
|
||||
/ fan_from_reg(data->fan_full_speed[nr]);
|
||||
if (fan_from_reg(data->fan_full_speed[nr]))
|
||||
val = 255 * fan_from_reg(data->fan_target[nr])
|
||||
/ fan_from_reg(data->fan_full_speed[nr]);
|
||||
else
|
||||
val = 0;
|
||||
}
|
||||
mutex_unlock(&data->update_lock);
|
||||
return sprintf(buf, "%d\n", val);
|
||||
|
|
Loading…
Reference in New Issue