Re: [PATCH 09/18] serial: sc16is7xx: add macro for max number of UART ports

From: Andy Shevchenko
Date: Thu Dec 21 2023 - 11:57:06 EST


On Thu, Dec 21, 2023 at 11:41:03AM -0500, Hugo Villeneuve wrote:
> On Wed, 20 Dec 2023 17:50:34 +0200
> Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> wrote:
> > On Tue, Dec 19, 2023 at 12:18:53PM -0500, Hugo Villeneuve wrote:

...

> > > - if (count < 0 || count > ARRAY_SIZE(irda_port))
> > > + if (count < 0 || count > SC16IS7XX_MAX_PORTS)
> >
> > ARRAY_SIZE() is more robust than this. What if you change to support different
> > devices where this won't be as defined?
>
> not sure that I understand your point, because SC16IS7XX_MAX_PORTS is
> the maximum for all devices supported by this driver. The irda_port
> array always has a fixed number of elements set to SC16IS7XX_MAX_PORTS,
> even if the device that we are probing has only one port for example.

For current models of the device, yes. Who knows the future?
Also, ARRAY_SIZE() make it less points to update if ever needed.

> But I can change it back to ARRAY_SIZE(irda_port) if you want.

Please change it back.

> > > return;

...

> > > + WARN_ON(devtype->nr_uart > SC16IS7XX_MAX_PORTS);
> >
> > Not sure about this, perhaps it's fine.
>
> This check is only there if we add support for a new device and we
> incorrectly set nr_uart to an incorrect value, which will cause other
> problems anyway, of course :)
>
> This could be removed.

Let's remove. We can add it back in case something like this (quite unlikely)
happens.

--
With Best Regards,
Andy Shevchenko