Re: [patch] hwmon: prevent some divide by zeros in FAN_TO_REG()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Dec 05, 2013 at 01:06:13PM +0100, Jean Delvare wrote:
> Hi Dan,
> 
> On Thu, 5 Dec 2013 13:58:45 +0300, 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.
> 
> If you believe an overflow can happen (and indeed it can) then this
> isn't the way to handle it. Avoiding a divide by zero is certainly nice
> but properly handling the other overflow cases too would be better.
> 
> In practice, this means for the vt8231 driver:
> 
> 	if (rpm == 0 || rpm > 1310720)
> 		return 0;
> 
> and for the lm78 and sis5595 drivers:
> 
> 	if (rpm <= 0)
> 		return 255;
> 	if (rpm > 1350000)
> 		return 0;
> 
> That way you're certain to never overflow (the maximum value for div is
> 8), and insanely large values are handled properly instead of resulting
> in random register values.

Yes.  I will resend.

regards,
dan carpenter


_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux