[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231221114103.557409e9875a0f2f95eacfb6@hugovil.com>
Date: Thu, 21 Dec 2023 11:41:03 -0500
From: Hugo Villeneuve <hugo@...ovil.com>
To: Andy Shevchenko <andriy.shevchenko@...el.com>
Cc: gregkh@...uxfoundation.org, jirislaby@...nel.org, jringle@...dpoint.com,
kubakici@...pl, phil@...pberrypi.org, linux-kernel@...r.kernel.org,
linux-serial@...r.kernel.org, Hugo Villeneuve <hvilleneuve@...onoff.com>
Subject: Re: [PATCH 09/18] serial: sc16is7xx: add macro for max number of
UART ports
On Wed, 20 Dec 2023 17:50:34 +0200
Andy Shevchenko <andriy.shevchenko@...el.com> wrote:
> On Tue, Dec 19, 2023 at 12:18:53PM -0500, Hugo Villeneuve wrote:
> > From: Hugo Villeneuve <hvilleneuve@...onoff.com>
> >
> > Add macro to hold the maximum number of UART ports per IC/device.
>
> ...
>
> > - 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?
Hi,
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.
But I can change it back to ARRAY_SIZE(irda_port) if you want.
>
> > return;
>
> ...
>
> > - if (count < 0 || count > ARRAY_SIZE(mctrl_port))
> > + if (count < 0 || count > SC16IS7XX_MAX_PORTS)
> > return 0;
>
> Ditto.
>
> ...
>
> > + 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.
Hugo Villeneuve
Powered by blists - more mailing lists