Hi Arnd, After merging the asm-generic tree, today's linux-next build (sparc defconfig) failed like this: In file included from include/linux/io.h:22:0, from include/linux/irq.h:23, from include/asm-generic/hardirq.h:12, from arch/sparc/include/asm/hardirq_32.h:10, from arch/sparc/include/asm/hardirq.h:6, from include/linux/hardirq.h:8, from include/linux/memcontrol.h:24, from include/linux/swap.h:8, from arch/sparc/include/asm/pgtable_32.h:17, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:52, from include/linux/pagemap.h:7, from include/linux/blkdev.h:14, from init/do_mounts.h:2, from init/do_mounts_rd.c:21: arch/sparc/include/asm/io.h:14:0: warning: "readb_relaxed" redefined #define readb_relaxed(__addr) readb(__addr) ^ In file included from arch/sparc/include/asm/io_32.h:13:0, from arch/sparc/include/asm/io.h:6, from include/linux/io.h:22, from include/linux/irq.h:23, from include/asm-generic/hardirq.h:12, from arch/sparc/include/asm/hardirq_32.h:10, from arch/sparc/include/asm/hardirq.h:6, from include/linux/hardirq.h:8, from include/linux/memcontrol.h:24, from include/linux/swap.h:8, from arch/sparc/include/asm/pgtable_32.h:17, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:52, from include/linux/pagemap.h:7, from include/linux/blkdev.h:14, from init/do_mounts.h:2, from init/do_mounts_rd.c:21: include/asm-generic/io.h:183:0: note: this is the location of the previous definition #define readb_relaxed readb ^ And many, many more :-( Caused by commit 1191ccb34cf8 ("sparc: io: implement dummy relaxed accessor macros for writes"). I applied the following fix patch: From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Date: Wed, 19 Nov 2014 18:49:07 +1100 Subject: [PATCH] sparc: io: fix for implement dummy relaxed accessor macros for writes Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> --- arch/sparc/include/asm/io.h | 9 --------- arch/sparc/include/asm/io_32.h | 9 +++++++++ arch/sparc/include/asm/io_64.h | 9 +++++++++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/arch/sparc/include/asm/io.h b/arch/sparc/include/asm/io.h index 493f22c4684f..f6902cf3cbe9 100644 --- a/arch/sparc/include/asm/io.h +++ b/arch/sparc/include/asm/io.h @@ -10,15 +10,6 @@ * Defines used for both SPARC32 and SPARC64 */ -/* Relaxed accessors for MMIO */ -#define readb_relaxed(__addr) readb(__addr) -#define readw_relaxed(__addr) readw(__addr) -#define readl_relaxed(__addr) readl(__addr) - -#define writeb_relaxed(__b, __addr) writeb(__b, __addr) -#define writew_relaxed(__w, __addr) writew(__w, __addr) -#define writel_relaxed(__l, __addr) writel(__l, __addr) - /* Big endian versions of memory read/write routines */ #define readb_be(__addr) __raw_readb(__addr) #define readw_be(__addr) __raw_readw(__addr) diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h index 407ac14295f4..9484c8ec18cf 100644 --- a/arch/sparc/include/asm/io_32.h +++ b/arch/sparc/include/asm/io_32.h @@ -4,6 +4,15 @@ #include <linux/kernel.h> #include <linux/ioport.h> /* struct resource */ +/* Relaxed accessors for MMIO */ +#define readb_relaxed(__addr) readb(__addr) +#define readw_relaxed(__addr) readw(__addr) +#define readl_relaxed(__addr) readl(__addr) + +#define writeb_relaxed(__b, __addr) writeb(__b, __addr) +#define writew_relaxed(__w, __addr) writew(__w, __addr) +#define writel_relaxed(__l, __addr) writel(__l, __addr) + #define IO_SPACE_LIMIT 0xffffffff #define memset_io(d,c,sz) _memset_io(d,c,sz) diff --git a/arch/sparc/include/asm/io_64.h b/arch/sparc/include/asm/io_64.h index d50e6127325d..078f600376c6 100644 --- a/arch/sparc/include/asm/io_64.h +++ b/arch/sparc/include/asm/io_64.h @@ -265,6 +265,15 @@ static inline void iowrite32_rep(void __iomem *port, const void *buf, unsigned l outsl((unsigned long __force)port, buf, count); } +/* Relaxed accessors for MMIO */ +#define readb_relaxed(__addr) readb(__addr) +#define readw_relaxed(__addr) readw(__addr) +#define readl_relaxed(__addr) readl(__addr) + +#define writeb_relaxed(__b, __addr) writeb(__b, __addr) +#define writew_relaxed(__w, __addr) writew(__w, __addr) +#define writel_relaxed(__l, __addr) writel(__l, __addr) + /* Valid I/O Space regions are anywhere, because each PCI bus supported * can live in an arbitrary area of the physical address range. */ -- 2.1.3 -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
Attachment:
pgpQLk3DrYcmH.pgp
Description: OpenPGP digital signature