On Thursday, September 06, 2018, Guenter Roeck wrote: > > > + u16 counter; > > > + > > > + if (priv->cks == CKS_4BIT) { > > > + counter = DIV_ROUND_UP((timeout * rate), 4194304) + 1; > > > > two spaces ? > > > > Also, I am not sure how this prevents overflows. Was't the concern > > that timeout * rate might overflow an int ? Actually, I don't have to care about math overflows for large timeout values because the driver sets a max timeout value. if (priv->cks == CKS_4BIT) { /* Assume slowest clock rate possible (CKS=0xF) */ priv->wdev.max_timeout = (4194304 * U8_MAX) / rate; So if a user sends a timeout greater than that, the upper layer returns 'Invalid argument' before it ever gets to the driver. I guess that technically means I don't really have to do the if (counter > 256) counter = 256; either because I will never get a timeout value greater than my max. (but, I might keep it in there anyway) Chris