All of lore.kernel.org
 help / color / mirror / Atom feed
* linux-next: build failure after merge of the asm-generic tree
@ 2022-07-20 12:36 Stephen Rothwell
  2022-07-20 12:51 ` Arnd Bergmann
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2022-07-20 12:36 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Lukas Bulwahn, Linux Kernel Mailing List, Linux Next Mailing List

[-- Attachment #1: Type: text/plain, Size: 851 bytes --]

Hi all,

After merging the asm-generic tree, today's linux-next build (arm64
defconfig) failed like this:

drivers/char/mem.c: In function 'page_is_allowed':
drivers/char/mem.c:66:16: error: implicit declaration of function 'devmem_is_allowed'; did you mean 'page_is_allowed'? [-Werror=implicit-function-declaration]
   66 |         return devmem_is_allowed(pfn);
      |                ^~~~~~~~~~~~~~~~~
      |                page_is_allowed
cc1: some warnings being treated as errors

Caused by commit

  cdfde8f61a00 ("asm-generic: correct reference to GENERIC_LIB_DEVMEM_IS_ALLOWED")

arm64 does not have a separate declaration of devmem_is_allowed() and
was using the asm-generic one by accident ... some other architectures
may be in the same boat.

I have reverted that commit for today.

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the asm-generic tree
@ 2019-02-19  6:36 Stephen Rothwell
  2019-02-19  7:45 ` Hugo Lefeuvre
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2019-02-19  6:36 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Linux Next Mailing List, Linux Kernel Mailing List, Hugo Lefeuvre

[-- Attachment #1: Type: text/plain, Size: 6512 bytes --]

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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the asm-generic tree
@ 2018-03-15 22:13 Stephen Rothwell
  2018-03-15 22:47 ` Bin Liu
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2018-03-15 22:13 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Linux-Next Mailing List, Linux Kernel Mailing List,
	Greg Kroah-Hartman, Aaron Wu, Bin Liu

[-- Attachment #1: Type: text/plain, Size: 3839 bytes --]

Hi Arnd,

After merging the asm-generic tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

drivers/usb/musb/musb_host.c: In function 'musb_rx_reinit':
drivers/usb/musb/musb_host.c:577:10: error: 'struct musb' has no member named 'double_buffer_not_ok'
  if (musb->double_buffer_not_ok)
          ^~
drivers/usb/musb/musb_host.c: In function 'musb_ep_program':
drivers/usb/musb/musb_host.c:807:12: error: 'struct musb' has no member named 'double_buffer_not_ok'
    if (musb->double_buffer_not_ok) {
            ^~

Caused by commit

  8312c0cad792 ("usb: musb: remove blackfin port")

I have applied the following patch for today:

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Fri, 16 Mar 2018 08:58:41 +1100
Subject: [PATCH] usb: musb: more blackfin removal

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/usb/musb/musb_gadget.c | 21 +++++++--------------
 drivers/usb/musb/musb_host.c   | 12 +++---------
 2 files changed, 10 insertions(+), 23 deletions(-)

diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 58a41b54763b..e564695c6c8d 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -995,15 +995,11 @@ static int musb_gadget_enable(struct usb_ep *ep,
 		/* Set TXMAXP with the FIFO size of the endpoint
 		 * to disable double buffering mode.
 		 */
-		if (musb->double_buffer_not_ok) {
-			musb_writew(regs, MUSB_TXMAXP, hw_ep->max_packet_sz_tx);
-		} else {
-			if (can_bulk_split(musb, musb_ep->type))
-				musb_ep->hb_mult = (hw_ep->max_packet_sz_tx /
-							musb_ep->packet_sz) - 1;
-			musb_writew(regs, MUSB_TXMAXP, musb_ep->packet_sz
-					| (musb_ep->hb_mult << 11));
-		}
+		if (can_bulk_split(musb, musb_ep->type))
+			musb_ep->hb_mult = (hw_ep->max_packet_sz_tx /
+						musb_ep->packet_sz) - 1;
+		musb_writew(regs, MUSB_TXMAXP, musb_ep->packet_sz
+				| (musb_ep->hb_mult << 11));
 
 		csr = MUSB_TXCSR_MODE | MUSB_TXCSR_CLRDATATOG;
 		if (musb_readw(regs, MUSB_TXCSR)
@@ -1038,11 +1034,8 @@ static int musb_gadget_enable(struct usb_ep *ep,
 		/* Set RXMAXP with the FIFO size of the endpoint
 		 * to disable double buffering mode.
 		 */
-		if (musb->double_buffer_not_ok)
-			musb_writew(regs, MUSB_RXMAXP, hw_ep->max_packet_sz_tx);
-		else
-			musb_writew(regs, MUSB_RXMAXP, musb_ep->packet_sz
-					| (musb_ep->hb_mult << 11));
+		musb_writew(regs, MUSB_RXMAXP, musb_ep->packet_sz
+				| (musb_ep->hb_mult << 11));
 
 		/* force shared fifo to OUT-only mode */
 		if (hw_ep->is_shared_fifo) {
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 45ed32c2cba9..3a8451a15f7f 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -574,11 +574,8 @@ musb_rx_reinit(struct musb *musb, struct musb_qh *qh, u8 epnum)
 	/* Set RXMAXP with the FIFO size of the endpoint
 	 * to disable double buffer mode.
 	 */
-	if (musb->double_buffer_not_ok)
-		musb_writew(ep->regs, MUSB_RXMAXP, ep->max_packet_sz_rx);
-	else
-		musb_writew(ep->regs, MUSB_RXMAXP,
-				qh->maxpacket | ((qh->hb_mult - 1) << 11));
+	musb_writew(ep->regs, MUSB_RXMAXP,
+			qh->maxpacket | ((qh->hb_mult - 1) << 11));
 
 	ep->rx_reinit = 0;
 }
@@ -804,10 +801,7 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
 		/* protocol/endpoint/interval/NAKlimit */
 		if (epnum) {
 			musb_writeb(epio, MUSB_TXTYPE, qh->type_reg);
-			if (musb->double_buffer_not_ok) {
-				musb_writew(epio, MUSB_TXMAXP,
-						hw_ep->max_packet_sz_tx);
-			} else if (can_bulk_split(musb, qh->type)) {
+			if (can_bulk_split(musb, qh->type)) {
 				qh->hb_mult = hw_ep->max_packet_sz_tx
 						/ packet_sz;
 				musb_writew(epio, MUSB_TXMAXP, packet_sz
-- 
2.16.1

-- 
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the asm-generic tree
@ 2015-10-14 22:55 Stephen Rothwell
  2015-10-14 23:32 ` kbuild test robot
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2015-10-14 22:55 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linux-next, linux-kernel, Christoph Hellwig

Hi Arnd,

After merging the asm-generic tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/acpi/osl.c:46:47: fatal error: asm-generic/io-64-nonatomic-lo-hi.h: No such file or directory
 #include <asm-generic/io-64-nonatomic-lo-hi.h>
                                               ^

Caused by commit

  f626fe17485b ("move io-64-nonatomic*.h out of asm-generic")

interacting with commit

  3277b4ea216e ("ACPI / osl: replace custom implementation of readq / writeq")

from Linus' tree (added before v4.3-rc1).

I added the following build fix:

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Thu, 15 Oct 2015 09:50:08 +1100
Subject: [PATCH] fix for "move io-64-nonatomic*.h out of asm-generic"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/acpi/osl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 739a4a6b3b9b..ed219da94904 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -40,10 +40,10 @@
 #include <linux/list.h>
 #include <linux/jiffies.h>
 #include <linux/semaphore.h>
+#include <linux/io-64-nonatomic-lo-hi.h>
 
 #include <asm/io.h>
 #include <asm/uaccess.h>
-#include <asm-generic/io-64-nonatomic-lo-hi.h>
 
 #include "internal.h"
 
-- 
2.5.1

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

^ permalink raw reply related	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the asm-generic tree
@ 2014-11-19  7:54 Stephen Rothwell
  2014-11-19  9:21 ` Arnd Bergmann
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2014-11-19  7:54 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-next, linux-kernel, Will Deacon, David S. Miller, Sam Ravnborg

[-- Attachment #1: Type: text/plain, Size: 5085 bytes --]

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@canb.auug.org.au>
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@canb.auug.org.au>
---
 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@canb.auug.org.au

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply related	[flat|nested] 21+ messages in thread
* linux-next: build failure after merge of the asm-generic tree
@ 2014-09-26 10:02 Stephen Rothwell
  2014-09-26 10:53 ` Will Deacon
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Rothwell @ 2014-09-26 10:02 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: linux-next, linux-kernel, Will Deacon, David S. Miller

[-- Attachment #1: Type: text/plain, Size: 2881 bytes --]

Hi Arnd,

After merging the asm-generic tree, today's linux-next build (sparc
defconfig) failed like this:

In file included from /scratch/sfr/next/include/linux/clocksource.h:19:0,
                 from /scratch/sfr/next/arch/sparc/include/asm/timer_32.h:11,
                 from /scratch/sfr/next/arch/sparc/include/asm/timer.h:6,
                 from /scratch/sfr/next/arch/sparc/kernel/sun4m_irq.c:14:
/scratch/sfr/next/arch/sparc/include/asm/io.h:14:0: error: "readb_relaxed" redefined [-Werror]
 #define readb_relaxed(__addr)  readb(__addr)
 ^
In file included from /scratch/sfr/next/arch/sparc/include/asm/io_32.h:13:0,
                 from /scratch/sfr/next/arch/sparc/include/asm/io.h:6,
                 from /scratch/sfr/next/include/linux/clocksource.h:19,
                 from /scratch/sfr/next/arch/sparc/include/asm/timer_32.h:11,
                 from /scratch/sfr/next/arch/sparc/include/asm/timer.h:6,
                 from /scratch/sfr/next/arch/sparc/kernel/sun4m_irq.c:14:
/scratch/sfr/next/include/asm-generic/io.h:182:0: note: this is the location of the previous definition
 #define readb_relaxed readb
 ^

And so on several hundred times ... :-(

Caused by commits 95a668b0452e ("sparc: io: implement dummy relaxed
accessor macros for writes") and 4c255791ffd6 ("asm-generic: io:
implement relaxed accessor macros as conditional wrappers").

arch/sparc/include/asm_32.h includes asm-generic/io.h which means it is
include before the arch specific versions of the relaxed functions are
defined ...

I have added this patch for today:

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Fri, 26 Sep 2014 19:57:03 +1000
Subject: [PATCH] sparc: io: fix for asm-generic: io: implement relaxed
 accessor macros as conditional wrappers

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 arch/sparc/include/asm/io.h | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/sparc/include/asm/io.h b/arch/sparc/include/asm/io.h
index 493f22c4684f..79b167674010 100644
--- a/arch/sparc/include/asm/io.h
+++ b/arch/sparc/include/asm/io.h
@@ -1,10 +1,5 @@
 #ifndef ___ASM_SPARC_IO_H
 #define ___ASM_SPARC_IO_H
-#if defined(__sparc__) && defined(__arch64__)
-#include <asm/io_64.h>
-#else
-#include <asm/io_32.h>
-#endif
 
 /*
  * Defines used for both SPARC32 and SPARC64
@@ -19,6 +14,12 @@
 #define writew_relaxed(__w, __addr)	writew(__w, __addr)
 #define writel_relaxed(__l, __addr)	writel(__l, __addr)
 
+#if defined(__sparc__) && defined(__arch64__)
+#include <asm/io_64.h>
+#else
+#include <asm/io_32.h>
+#endif
+
 /* Big endian versions of memory read/write routines */
 #define readb_be(__addr)	__raw_readb(__addr)
 #define readw_be(__addr)	__raw_readw(__addr)
-- 
2.1.1

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2022-07-21  6:57 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-20 12:36 linux-next: build failure after merge of the asm-generic tree Stephen Rothwell
2022-07-20 12:51 ` Arnd Bergmann
2022-07-21  6:57   ` Lukas Bulwahn
  -- strict thread matches above, loose matches on Subject: below --
2019-02-19  6:36 Stephen Rothwell
2019-02-19  7:45 ` Hugo Lefeuvre
2019-02-19 10:14   ` Arnd Bergmann
2019-02-19 11:19     ` Hugo Lefeuvre
2019-02-19 14:42       ` Arnd Bergmann
2018-03-15 22:13 Stephen Rothwell
2018-03-15 22:47 ` Bin Liu
2018-03-16  8:07   ` Arnd Bergmann
2015-10-14 22:55 Stephen Rothwell
2015-10-14 23:32 ` kbuild test robot
2015-10-15  2:37   ` Stephen Rothwell
2014-11-19  7:54 Stephen Rothwell
2014-11-19  9:21 ` Arnd Bergmann
2014-09-26 10:02 Stephen Rothwell
2014-09-26 10:53 ` Will Deacon
2014-09-26 11:14   ` Arnd Bergmann
2014-09-29 22:31     ` Stephen Rothwell
2014-09-30 10:00       ` Arnd Bergmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.