Re: [PATCH 1/3] avr32: fix build failure

From: Hans-Christian Egtvedt
Date: Wed Sep 23 2015 - 13:15:28 EST


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.

--
Hans-Christian Egtvedt
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/