Re: [PATCH v4 33/41] tty: serial: handle HAS_IOPORT dependencies

From: Arnd Bergmann
Date: Tue May 30 2023 - 07:55:21 EST


On Tue, May 30, 2023, at 12:48, Greg Kroah-Hartman wrote:
> On Tue, May 16, 2023 at 01:00:29PM +0200, Niklas Schnelle wrote:
>> In a future patch HAS_IOPORT=n will result in inb()/outb() and friends
>> not being declared. We thus need to add HAS_IOPORT as dependency for
>> those drivers using them unconditionally. For 8250 based drivers some
>> support MMIO only use so fence only the parts requiring I/O ports.
>
> Why can't you have dummy inb()/outb() so we don't need these #ifdefs all
> over the place in .c files? Was that documented somewhere? We do that
> for other driver/hardware apis, why are these so special they don't
> deserve that?

That was what our original approach did years ago, and Linus rightfully
rejected it. Almost every driver either requires inb()/outb() to do
anything, or it doesn't use them at all. The 8250 uart is one of the
few exceptions to this, as it has many variants.
It would be possible to separate this out more in the 8250 driver
as well and split it out into separate modules and indirect function
pointers, but that would be a larger rework and have a higher
risk of regressions.

Also, the 8250 driver is already full of #ifdef in .c files,

Arnd