Re: iomap: make IOPORT/PCI mapping functions conditional

From: Randy Dunlap
Date: Sun Jul 24 2011 - 15:06:07 EST


On Sun, 24 Jul 2011 18:01:07 GMT Linux Kernel Mailing List wrote:

> Gitweb: http://git.kernel.org/linus/82ed223c264def2b15ee4bec2e8c3048092ceb5f
> Commit: 82ed223c264def2b15ee4bec2e8c3048092ceb5f
> Parent: f1ecc69838a2d7c8a3e1909f637d4083c071777d
> Author: Jonas Bonn <jonas@xxxxxxxxxxxx>
> AuthorDate: Sat Jul 2 17:23:29 2011 +0200
> Committer: Jonas Bonn <jonas@xxxxxxxxxxxx>
> CommitDate: Fri Jul 22 18:46:26 2011 +0200
>
> iomap: make IOPORT/PCI mapping functions conditional
>
> Use the CONFIG_HAS_IOPORT and CONFIG_PCI options to decide whether or
> not functions for mapping these areas are provided.
>
> Signed-off-by: Jonas Bonn <jonas@xxxxxxxxxxxx>
> Acked-by: Arnd Bergmann <arnd@xxxxxxxx>

This patch caused a randconfig build error when CONFIG_EISA=y and CONFIG_PCI=n,
as reported on 2011-JULY-18. My patch from that email is repeated below
(with Andrew's S-O-B since he merged it into his tree).


---
From: Randy Dunlap <rdunlap@xxxxxxxxxxxx>

When CONFIG_PCI is not enabled, CONFIG_EISA=y, and CONFIG_GENERIC_IOMAP=y,
drivers/net/3c59x.c build fails due to a recent small change to
<asm-generic/iomap.h> that surrounds pci_iomap() and pci_iounmap()
with #ifdef CONFIG_PCI/#endif. Since that patch to iomap.h looks
correct, add stubs for pci_iomap() and pci_iounmap() with CONFIG_PCI
is not enabled to fix the build errors.

drivers/net/3c59x.c:1026: error: implicit declaration of function 'pci_iomap'
drivers/net/3c59x.c:1038: error: implicit declaration of function 'pci_iounmap'

Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxx>
Cc: Jonas Bonn <jonas@xxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---
include/asm-generic/iomap.h | 8 ++++++++
1 file changed, 8 insertions(+)

--- linux-next-20110718.orig/include/asm-generic/iomap.h
+++ linux-next-20110718/include/asm-generic/iomap.h
@@ -71,6 +71,14 @@ extern void ioport_unmap(void __iomem *)
struct pci_dev;
extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
+#else
+struct pci_dev;
+static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
+{
+ return NULL;
+}
+static inline void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
+{ }
#endif

#endif
--
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/