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: > > From: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx> > > > > 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