Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff8421f7 authored by Juerg Haefliger's avatar Juerg Haefliger Committed by Mark M. Hoffman
Browse files

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: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarMark M. Hoffman <mhoffman@lightlink.com>
parent cb96b8ca
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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)