Hi Arnd, After merging the asm-generic tree, today's linux-next build (powerpc allnoconfig) failed like this: arch/powerpc/kernel/iomap.c:18:14: error: conflicting types for 'ioread8' unsigned int ioread8(void __iomem *addr) ^~~~~~~ In file included from arch/powerpc/include/asm/io.h:653, from include/linux/io.h:25, from include/linux/irq.h:20, from arch/powerpc/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from include/linux/pci.h:32, from arch/powerpc/kernel/iomap.c:7: include/asm-generic/iomap.h:29:21: note: previous declaration of 'ioread8' was here extern unsigned int ioread8(const void __iomem *addr); ^~~~~~~ arch/powerpc/kernel/iomap.c:22:14: error: conflicting types for 'ioread16' unsigned int ioread16(void __iomem *addr) ^~~~~~~~ In file included from arch/powerpc/include/asm/io.h:653, from include/linux/io.h:25, from include/linux/irq.h:20, from arch/powerpc/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from include/linux/pci.h:32, from arch/powerpc/kernel/iomap.c:7: include/asm-generic/iomap.h:30:21: note: previous declaration of 'ioread16' was here extern unsigned int ioread16(const void __iomem *addr); ^~~~~~~~ arch/powerpc/kernel/iomap.c:26:14: error: conflicting types for 'ioread16be' unsigned int ioread16be(void __iomem *addr) ^~~~~~~~~~ In file included from arch/powerpc/include/asm/io.h:653, from include/linux/io.h:25, from include/linux/irq.h:20, from arch/powerpc/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from include/linux/pci.h:32, from arch/powerpc/kernel/iomap.c:7: include/asm-generic/iomap.h:31:21: note: previous declaration of 'ioread16be' was here extern unsigned int ioread16be(const void __iomem *addr); ^~~~~~~~~~ arch/powerpc/kernel/iomap.c:30:14: error: conflicting types for 'ioread32' unsigned int ioread32(void __iomem *addr) ^~~~~~~~ In file included from arch/powerpc/include/asm/io.h:653, from include/linux/io.h:25, from include/linux/irq.h:20, from arch/powerpc/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from include/linux/pci.h:32, from arch/powerpc/kernel/iomap.c:7: include/asm-generic/iomap.h:32:21: note: previous declaration of 'ioread32' was here extern unsigned int ioread32(const void __iomem *addr); ^~~~~~~~ arch/powerpc/kernel/iomap.c:34:14: error: conflicting types for 'ioread32be' unsigned int ioread32be(void __iomem *addr) ^~~~~~~~~~ In file included from arch/powerpc/include/asm/io.h:653, from include/linux/io.h:25, from include/linux/irq.h:20, from arch/powerpc/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from include/linux/pci.h:32, from arch/powerpc/kernel/iomap.c:7: include/asm-generic/iomap.h:33:21: note: previous declaration of 'ioread32be' was here extern unsigned int ioread32be(const void __iomem *addr); ^~~~~~~~~~ arch/powerpc/kernel/iomap.c:142:6: error: conflicting types for 'ioread8_rep' void ioread8_rep(void __iomem *addr, void *dst, unsigned long count) ^~~~~~~~~~~ In file included from arch/powerpc/include/asm/io.h:653, from include/linux/io.h:25, from include/linux/irq.h:20, from arch/powerpc/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from include/linux/pci.h:32, from arch/powerpc/kernel/iomap.c:7: include/asm-generic/iomap.h:82:13: note: previous declaration of 'ioread8_rep' was here extern void ioread8_rep(const void __iomem *port, void *buf, unsigned long count); ^~~~~~~~~~~ arch/powerpc/kernel/iomap.c:146:6: error: conflicting types for 'ioread16_rep' void ioread16_rep(void __iomem *addr, void *dst, unsigned long count) ^~~~~~~~~~~~ In file included from arch/powerpc/include/asm/io.h:653, from include/linux/io.h:25, from include/linux/irq.h:20, from arch/powerpc/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from include/linux/pci.h:32, from arch/powerpc/kernel/iomap.c:7: include/asm-generic/iomap.h:83:13: note: previous declaration of 'ioread16_rep' was here extern void ioread16_rep(const void __iomem *port, void *buf, unsigned long count); ^~~~~~~~~~~~ arch/powerpc/kernel/iomap.c:150:6: error: conflicting types for 'ioread32_rep' void ioread32_rep(void __iomem *addr, void *dst, unsigned long count) ^~~~~~~~~~~~ In file included from arch/powerpc/include/asm/io.h:653, from include/linux/io.h:25, from include/linux/irq.h:20, from arch/powerpc/include/asm/hardirq.h:6, from include/linux/hardirq.h:9, from include/linux/interrupt.h:11, from include/linux/pci.h:32, from arch/powerpc/kernel/iomap.c:7: include/asm-generic/iomap.h:84:13: note: previous declaration of 'ioread32_rep' was here extern void ioread32_rep(const void __iomem *port, void *buf, unsigned long count); ^~~~~~~~~~~~ Caused by commit 8e074c243ed3 ("iomap: add missing const to ioread*/iowrite addr arg") The const qualifiers are also missing in: arch/parisc/lib/iomap.c arch/sh/kernel/iomap.c I have reverted that commit for today. BTW, that commit only added the const to the ioread* functions ... -- Cheers, Stephen Rothwell
Attachment:
pgp0e1KTgEFgx.pgp
Description: OpenPGP digital signature