Subject: pci_ioremap_bar() breaks s390 build

From: Heiko Carstens <[email-masked]>
Date: Mon, 20 Oct 2008 19:45:43 +0200

Hi Arjan,

your patch "PCI: introduce an pci_ioremap(pdev, barnr) function" breaks s390:

  CC      fs/compat_ioctl.o
In file included from fs/compat_ioctl.c:52:
include/linux/pci.h: In function 'pci_ioremap_bar':
include/linux/pci.h:1136: error: implicit declaration of function 'ioremap_nocache'
include/linux/pci.h:1137: warning: return makes pointer from integer without a cast
make[1]: *** [fs/compat_ioctl.o] Error 1
make: *** [fs] Error 2

please fix :)

maybe something like this:

---
 include/linux/pci.h |    2 ++
 1 file changed, 2 insertions(+)

Index: linux-next/include/linux/pci.h
===================================================================
--- linux-next.orig/include/linux/pci.h
+++ linux-next/include/linux/pci.h
@@ -1124,6 +1124,7 @@ static inline void pci_mmcfg_early_init(
 static inline void pci_mmcfg_late_init(void) { }
 #endif
 
+#ifdef CONFIG_HAS_IOMEM
 static inline void * pci_ioremap_bar(struct pci_dev *pdev, int bar)
 {
 	/*
@@ -1136,6 +1137,7 @@ static inline void * pci_ioremap_bar(str
 	return ioremap_nocache(pci_resource_start(pdev, bar),
 				     pci_resource_len(pdev, bar));
 }
+#endif
 
 #endif /* __KERNEL__ */
 #endif /* LINUX_PCI_H */