Re: [PATCH 4/4] sh: machvec: remove custom ioport_{un,}map()

From: Geert Uytterhoeven
Date: Fri Sep 15 2023 - 11:42:32 EST


Hi Arnd,

On Wed, Sep 13, 2023 at 4:30 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Wed, Sep 13, 2023, at 16:13, Geert Uytterhoeven wrote:
> > On Wed, Sep 13, 2023 at 4:08 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> >> On Wed, Sep 13, 2023, at 14:32, Geert Uytterhoeven wrote:
> >> > On Wed, Aug 2, 2023 at 8:49 PM Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
> >>
> >> Do you have a link to that series? I don't understand why you'd
> >> want to enable GENERIC_IOMAP on sh, given that its PIO accesses
> >> are always memory mapped in the end.
> >
> > "[RESEND RFC PATCH 00/12] DeviceTree support for SH7751 based boards."
> > https://lore.kernel.org/linux-sh/cover.1693444193.git.ysato@xxxxxxxxxxxxxxxxxxxx/
>
> Ok, thanks.
>
> > In the meantime, there is a v2, which I wasn't aware of when I wrote
> > my previous email, so perhaps my comment is no longer valid.
> > "[RFC PATCH v2 00/30] Device Tree support for SH7751 based board"
> > https://lore.kernel.org/linux-sh/cover.1694596125.git.ysato@xxxxxxxxxxxxxxxxxxxx
>
> Right, it looks like the GENERIC_IOMAP part if gone from that
> series, and I also see that the PCI host bridge does not actually

No, 02/30 still enables it.

> map the port I/O window. That's usually fine because very few
> drivers actually need it, and it also means that there should be
> no need for GENERIC_IOMAP or the simpler alternative.
>
> The first version probably only did it accidentally, which is a
> common mistake, and I think the ones for hexagon, m68k, and
> mips can probably be removed as well with some simplifiations.

When not selecting GENERIC_IOMAP in v2, the build fails with:

sh4-linux-gnu-ld: lib/devres.o: in function `pcim_iomap_release':
devres.c:(.text+0x234): undefined reference to `pci_iounmap'
sh4-linux-gnu-ld: lib/devres.o: in function `pcim_iounmap':
devres.c:(.text+0x278): undefined reference to `pci_iounmap'
sh4-linux-gnu-ld: drivers/pci/quirks.o: in function `disable_igfx_irq':
quirks.c:(.text+0x1738): undefined reference to `pci_iounmap'
sh4-linux-gnu-ld: drivers/pci/quirks.o: in function
`quirk_switchtec_ntb_dma_alias':
quirks.c:(.text+0x1a04): undefined reference to `pci_iounmap'
sh4-linux-gnu-ld: drivers/pci/quirks.o: in function `reset_hinic_vf_dev':
quirks.c:(.text+0x2260): undefined reference to `pci_iounmap'

So I'm back to building the part of arch/sh/kernel/ioport.c
that provides sh_io_port_base...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds