On Tue, 2021-07-13 at 13:40 +0300, Andy Shevchenko wrote: > The loop can be refactored by using ARRAY_SIZE() instead of NULL terminator. > This reduces code base and makes it easier to read and understand. [] > diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c [] > @@ -897,37 +897,31 @@ static int pci_netmos_init(struct pci_dev *dev) > /* enable IO_Space bit */ > #define ITE_887x_POSIO_ENABLE (1 << 31) > > > +/* inta_addr are the configuration addresses of the ITE */ > +static const short inta_addr[] = { 0x2a0, 0x2c0, 0x220, 0x240, 0x1e0, 0x200, 0x280, }; Why move this outside the only function it's used in? The trailing comma isn't necessary/useful and possibly confusing too. > static int pci_ite887x_init(struct pci_dev *dev) > { > - /* inta_addr are the configuration addresses of the ITE */ > - static const short inta_addr[] = { 0x2a0, 0x2c0, 0x220, 0x240, 0x1e0, > - 0x200, 0x280, 0 }; > int ret, i, type; > struct resource *iobase = NULL; > u32 miscr, uartbar, ioport; > > /* search for the base-ioport */ > - i = 0; > - while (inta_addr[i] && iobase == NULL) { > - iobase = request_region(inta_addr[i], ITE_887x_IOSIZE, > - "ite887x"); > + for (i = 0; i < ARRAY_SIZE(inta_addr); i++) { > + iobase = request_region(inta_addr[i], ITE_887x_IOSIZE, "ite887x"); > if (iobase != NULL) { continue and unindent the block below? > /* write POSIO0R - speed | size | ioport */ > pci_write_config_dword(dev, ITE_887x_POSIO0, > ITE_887x_POSIO_ENABLE | ITE_887x_POSIO_SPEED | > ITE_887x_POSIO_IOSIZE_32 | inta_addr[i]); > /* write INTCBAR - ioport */ > - pci_write_config_dword(dev, ITE_887x_INTCBAR, > - inta_addr[i]); > + pci_write_config_dword(dev, ITE_887x_INTCBAR, inta_addr[i]); > ret = inb(inta_addr[i]); > if (ret != 0xff) { > /* ioport connected */ > break; > } > release_region(iobase->start, ITE_887x_IOSIZE); > - iobase = NULL; > } > - i++; > } > > > if (!inta_addr[i]) {