On Tue, Aug 20, 2019 at 02:07:13PM +0000, Christophe Leroy wrote: > ppc_md.ioremap() is only used for I/O workaround on CELL platform, > so indirect function call can be avoided. > > This patch reworks the io-workaround and ioremap() functions to > use the global 'io_workaround_inited' flag for the activation > of io-workaround. > > When CONFIG_PPC_IO_WORKAROUNDS or CONFIG_PPC_INDIRECT_MMIO are not > selected, the I/O workaround ioremap() voids and the global flag is > not used.
Note that CONFIG_PPC_IO_WORKAROUNDS is only selected by a specific cell config, and CONFIG_PPC_INDIRECT_MMIO is always selected by cell, so I think we can make CONFIG_PPC_IO_WORKAROUNDS depend on CONFIG_PPC_INDIRECT_MMIO > #define _IO_WORKAROUNDS_H > > +#ifdef CONFIG_PPC_IO_WORKAROUNDS > #include <linux/io.h> > #include <asm/pci-bridge.h> > > @@ -32,4 +33,23 @@ extern int spiderpci_iowa_init(struct iowa_bus *, void *); > #define SPIDER_PCI_DUMMY_READ 0x0810 > #define SPIDER_PCI_DUMMY_READ_BASE 0x0814 > > +#endif > + > +#if defined(CONFIG_PPC_IO_WORKAROUNDS) && defined(CONFIG_PPC_INDIRECT_MMIO) and simplify the ifdefs here a bit. Otherwise this looks fine: Reviewed-by: Christoph Hellwig <h...@lst.de>