parisc: io: Improve the outb(), outw() and outl() macros
authorBart Van Assche <bvanassche@acm.org>
Thu, 6 Jan 2022 17:29:00 +0000 (09:29 -0800)
committerHelge Deller <deller@gmx.de>
Fri, 7 Jan 2022 00:29:22 +0000 (01:29 +0100)
This patch fixes the following build error for source file
drivers/scsi/pcmcia/sym53c500_cs.c:

In file included from ./include/linux/bug.h:5,
                 from ./include/linux/cpumask.h:14,
                 from ./include/linux/mm_types_task.h:14,
                 from ./include/linux/mm_types.h:5,
                 from ./include/linux/buildid.h:5,
                 from ./include/linux/module.h:14,
                 from drivers/scsi/pcmcia/sym53c500_cs.c:42:
drivers/scsi/pcmcia/sym53c500_cs.c: In function ‘SYM53C500_intr’:
./arch/parisc/include/asm/bug.h:28:2: error: expected expression before ‘do’
   28 |  do {        \
      |  ^~
./arch/parisc/include/asm/io.h:276:20: note: in expansion of macro ‘BUG’
  276 | #define outb(x, y) BUG()
      |                    ^~~
drivers/scsi/pcmcia/sym53c500_cs.c:124:19: note: in expansion of macro ‘outb’
  124 | #define REG0(x)  (outb(C4_IMG, (x) + CONFIG4))
      |                   ^~~~
drivers/scsi/pcmcia/sym53c500_cs.c:362:2: note: in expansion of macro ‘REG0’
  362 |  REG0(port_base);
      |  ^~~~

Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-parisc@vger.kernel.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/include/asm/io.h

index 0b5259102319fabb7435694890be90959b02f3b8..837ddddbac6a518ef73b3d42137f9c2ce40591f7 100644 (file)
@@ -273,9 +273,9 @@ static inline int inl(unsigned long addr)
        return -1;
 }
 
-#define outb(x, y)     BUG()
-#define outw(x, y)     BUG()
-#define outl(x, y)     BUG()
+#define outb(x, y)     ({(void)(x); (void)(y); BUG(); 0;})
+#define outw(x, y)     ({(void)(x); (void)(y); BUG(); 0;})
+#define outl(x, y)     ({(void)(x); (void)(y); BUG(); 0;})
 #endif
 
 /*