On Thu, 2023-02-16 at 15:34 +0800, Baoquan He wrote: > On s390 systems (aka mainframes), it has classic channel devices for > networking and permanent storage that are currently even more common > than PCI devices. Hence it could have a fully functional s390 kernel > with CONFIG_PCI=n, then the relevant iomem mapping functions > [including ioremap(), devm_ioremap(), etc.] are not available. > > Here let depend PCMCIA on HAS_IOMEM so that it won't be built to > cause below compiling error if PCI is unset. > > ------------------------------------------------------- > ld: drivers/pcmcia/cistpl.o: in function `set_cis_map': > cistpl.c:(.text+0x1202): undefined reference to `ioremap' > ld: cistpl.c:(.text+0x13b0): undefined reference to `iounmap' > ld: cistpl.c:(.text+0x14a6): undefined reference to `iounmap' > ld: cistpl.c:(.text+0x1544): undefined reference to `ioremap' > ld: drivers/pcmcia/cistpl.o: in function `release_cis_mem': > cistpl.c:(.text+0x3f14): undefined reference to `iounmap' > > Link: https://lore.kernel.org/all/Y0TcaZD4nB1w+mAQ@MiWiFi-R3L-srv/T/#u > Signed-off-by: Baoquan He <bhe@xxxxxxxxxx> > Cc: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx> > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Cc: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> > Cc: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> > --- > drivers/pcmcia/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig > index 1525023e49b6..7c412bbe8bbe 100644 > --- a/drivers/pcmcia/Kconfig > +++ b/drivers/pcmcia/Kconfig > @@ -20,6 +20,7 @@ if PCCARD > > config PCMCIA > tristate "16-bit PCMCIA support" > + depends on HAS_IOMEM > select CRC32 > default y > help Not sure how many PCMCIA drivers only use I/O memory but not I/O ports the latter of which are badly stubbed out on s390, though at leat they compile. I have a series on that part that I intend to send a new version for soon™. That said yes this does solve the compilation issue and there could be drivers which rely only on I/O memory and are not broken in principle. Reviewed-by: Niklas Schnelle <schnelle@xxxxxxxxxxxxx>