lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 20 Dec 2022 19:11:51 +0200 From: Andy Shevchenko <andriy.shevchenko@...ux.intel.com> To: Hanna Hawa <hhhawa@...zon.com> Cc: wsa@...nel.org, jarkko.nikula@...ux.intel.com, mika.westerberg@...ux.intel.com, jsd@...ihalf.com, linus.walleij@...aro.org, ben-linux@...ff.org, linux-i2c@...r.kernel.org, linux-kernel@...r.kernel.org, dwmw@...zon.co.uk, benh@...zon.com, ronenk@...zon.com, talel@...zon.com, jonnyc@...zon.com, hanochu@...zon.com, farbere@...zon.com, itamark@...zon.com, Lareine Khawaly <lareine@...zon.com> Subject: Re: [PATCH v4 1/1] i2c: designware: use casting of u64 in clock multiplication to avoid overflow On Tue, Dec 20, 2022 at 04:48:06PM +0000, Hanna Hawa wrote: > From: Lareine Khawaly <lareine@...zon.com> > > In functions i2c_dw_scl_lcnt() and i2c_dw_scl_hcnt() may have overflow > by depending on the values of the given parameters including the ic_clk. > For example in our use case where ic_clk is larger than one million, > multiplication of ic_clk * 4700 will result in 32 bit overflow. > > Add cast of u64 to the calculation to avoid multiplication overflow, and > use the corresponding define for divide. ... > - return DIV_ROUND_CLOSEST(ic_clk * tSYMBOL, MICRO) - 8 + offset; > + return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * tSYMBOL, MICRO) - 8 + > + offset; Broken indentation. ... > - return DIV_ROUND_CLOSEST(ic_clk * (tSYMBOL + tf), MICRO) - 3 + offset; > + return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * (tSYMBOL + tf), > + MICRO) - 3 + offset; I would still go with 'MICRO) -' part to be on the previous line despite being over 80, this is logical split which increases readability. > - return DIV_ROUND_CLOSEST(ic_clk * (tLOW + tf), MICRO) - 1 + offset; > + return DIV_ROUND_CLOSEST_ULL((u64)ic_clk * (tLOW + tf), MICRO) - 1 + > + offset; Broken indentation. -- With Best Regards, Andy Shevchenko
Powered by blists - more mailing lists