mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
hwmon: (dme1737) fix divide-by-0
This patch fixes a possible divide-by-0 and a minor bug in the FAN_FROM_REG macro (in TPC mode). Signed-off-by: Juerg Haefliger <juergh at gmail.com> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
This commit is contained in:
parent
cb96b8ca11
commit
ff8421f733
@ -283,14 +283,21 @@ static inline int TEMP_HYST_TO_REG(int val, int ix, int reg)
|
||||
/* Fan input RPM */
|
||||
static inline int FAN_FROM_REG(int reg, int tpc)
|
||||
{
|
||||
return (reg == 0 || reg == 0xffff) ? 0 :
|
||||
(tpc == 0) ? 90000 * 60 / reg : tpc * reg;
|
||||
if (tpc) {
|
||||
return tpc * reg;
|
||||
} else {
|
||||
return (reg == 0 || reg == 0xffff) ? 0 : 90000 * 60 / reg;
|
||||
}
|
||||
}
|
||||
|
||||
static inline int FAN_TO_REG(int val, int tpc)
|
||||
{
|
||||
return SENSORS_LIMIT((tpc == 0) ? 90000 * 60 / val : val / tpc,
|
||||
0, 0xffff);
|
||||
if (tpc) {
|
||||
return SENSORS_LIMIT(val / tpc, 0, 0xffff);
|
||||
} else {
|
||||
return (val <= 0) ? 0xffff :
|
||||
SENSORS_LIMIT(90000 * 60 / val, 0, 0xfffe);
|
||||
}
|
||||
}
|
||||
|
||||
/* Fan TPC (tach pulse count)
|
||||
|
Loading…
Reference in New Issue
Block a user