Re: [PATCH v2 2/2] iio: light: Add support for APDS9306 Light Sensor

From: Andy Shevchenko
Date: Thu Nov 02 2023 - 08:50:15 EST


On Wed, Nov 01, 2023 at 08:16:32AM +0200, Matti Vaittinen wrote:
> On 10/31/23 15:42, Andy Shevchenko wrote:
> > On Tue, Oct 31, 2023 at 02:07:46PM +0200, Matti Vaittinen wrote:
> > > On 10/31/23 12:38, Andy Shevchenko wrote:
> > > > On Tue, Oct 31, 2023 at 09:11:37AM +0200, Matti Vaittinen wrote:
> > > > > On 10/30/23 12:21, Matti Vaittinen wrote:
> > > > > > On 10/29/23 17:51, Matti Vaittinen wrote:
> > > > > > > On 10/28/23 18:20, Jonathan Cameron wrote:

...

> > > > > tmp = gts->max_scale;
> > > > >
> > > > > rem = do_div(tmp, total_gain);
> > > > > if (total_gain > 1 && rem >= total_gain / 2)
> > > > > tmp += 1ULL;
> > > >
> > > > ...which is NIH DIV_ROUND_CLOSEST_ULL()
> > >
> > > There is a difference though. The DIV_ROUND_CLOSEST_ULL() does
> > >
> > > tmp + total_gain / 2;
> > >
> > > before division - which in theory may overflow.
> >
> > Then you can fix it there for everybody, no?
>
> Now that I know of this macro - Maybe. It's just always scary to touch
> things which seem like fundamental building blocks and which may be used by
> many. Odds are something breaks, so I tend to be very conservative when
> suggesting changes to widely used stuff. Especially when I have no idea when
> and why the API has been added - and if the thing I'm trying to "fix" has
> been a deliberate choice.

Welcome to the club of the div overflow in macros discussion:

https://lore.kernel.org/linux-clk/20231024161931.78567-1-sebastian.reichel@xxxxxxxxxxxxx/T/#t

--
With Best Regards,
Andy Shevchenko