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

From: Greg Kroah-Hartman
Date: Tue May 30 2023 - 10:32:12 EST


On Tue, May 30, 2023 at 01:53:50PM +0200, Arnd Bergmann wrote:
> 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,

Yeah, just trying to hope it could be better :(

Ok, I'll go queue up the v5 version of this patch now, thanks.

greg k-h