On , Dan Carpenter wrote:
It's not enough to just test if "rpm" is zero, the "rpm * div"
operation
could overflow and that could also lead to a divide by zero.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
diff --git a/drivers/hwmon/vt8231.c b/drivers/hwmon/vt8231.c
index 0e7017841f7d..923c18034a5f 100644
--- a/drivers/hwmon/vt8231.c
+++ b/drivers/hwmon/vt8231.c
@@ -145,7 +145,7 @@ static const u8 regtempmin[] = { 0x3a, 0x3e, 0x2c,
0x2e, 0x30, 0x32 };
*/
static inline u8 FAN_TO_REG(long rpm, int div)
{
- if (rpm == 0)
+ if (rpm * div == 0)
return 0;
return clamp_val(1310720 / (rpm * div), 1, 255);
}
Seems a reasonable improvement to me, so ACK'd.
diff --git a/drivers/hwmon/lm78.c b/drivers/hwmon/lm78.c
index 6cf6bff79003..fc4578195674 100644
SNIP
return 255;
return clamp_val((1350000 + rpm * div / 2) / (rpm * div), 1, 254);
}
- Roger
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html