On Wed, Sep 23, 2015 at 07:15:16PM +0200, Hans-Christian Egtvedt wrote: > Around Wed 23 Sep 2015 21:26:01 +0530 or thereabout, Sudip Mukherjee wrote: > > On Mon, Sep 21, 2015 at 01:31:44PM +0530, Sudip Mukherjee wrote: > >> On Mon, Sep 21, 2015 at 09:33:00AM +0200, Hans-Christian Egtvedt wrote: > >> > Around Mon 21 Sep 2015 12:09:01 +0530 or thereabout, Sudip Mukherjee wrote: > >> > > On Mon, Sep 21, 2015 at 08:09:42AM +0200, Hans-Christian Egtvedt wrote: > >> > >> Around Sat 19 Sep 2015 22:42:57 +0530 or thereabout, Sudip Mukherjee wrote: > >> > >> > While building avr32 with allmodconfig, the build used to fail with the > >> > >> > message: > >> > >> > error: implicit declaration of function 'pci_iomap' > >> > >> > error: implicit declaration of function 'pci_iounmap' > >> > >> > >> > >> What has changed recently that start pulling in these? AVR32 does not have > >> > >> PCI at all, and will never have it either. Is this exposing a bug somewhere > >> > >> else? > >> > > It looks like pci_iomap and pci_iounmap doesnot depend on CONFIG_PCI. > >> > > So drivers/net/ethernet/via/via-rhine.c is calling these functions even > >> > > if PCI is disabled. The build log is at: > >> > > https://travis-ci.org/sudipm-mukherjee/parport/jobs/81127188 > >> > > > >> > > You can find a similar discussion at: > >> > > http://www.linux-mips.org/archives/linux-mips/2013-06/msg00510.html > >> > > >> > If multiple architectures have similar problems, then a more global > >> > definition of these unused functions could be added. > >> > > >> > Just move the implementation for MIPS into include/asm-generic/io.h ? > >> > > >> > That way we do not have to implement and identical stub for every device not > >> > supporting PCI. > >> > >> include/asm-generic/io.h is having: > >> #ifndef CONFIG_GENERIC_IOMAP > >> struct pci_dev; > >> extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned > >> long max); > >> > >> #ifndef pci_iounmap > >> #define pci_iounmap pci_iounmap > >> static inline void pci_iounmap(struct pci_dev *dev, void __iomem *p) > >> { > >> } > >> #endif > >> #endif /* CONFIG_GENERIC_IOMAP */ > >> > >> and CONFIG_GENERIC_IOMAP is not defined when I do allmodconfig with > >> avr32. I have not seen this earlier, maybe in my patch pci_iounmap() was > >> not required. But pci_iomap is declared as extern so we need have it > >> somewhere. > > Hi Hans, > > Please suggest. > > I can ack the original change, but it will only lead to a cluttered code > base. The real problem is somewhere else, where it looks like the > CONFIG_GENERIC_IOMAP symbol assumes PCI is for everybody. I would like if > somebody addressed that problem instead. I was having a look and it looks like generic empty pci_iomap and pci_iounmap are already defined and is used only if CONFIG_PCI is not defined and CONFIG_GENERIC_PCI_IOMAP is defined. So instead of adding empty functions to each architecture where PCI is not supported maybe the driver can have a dependency on CONFIG_GENERIC_PCI_IOMAP. I have submitted the patch and you are in CC list. arch/sh had a similar problem with the same driver. regards sudip -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html