diff mbox series

m68k: Fix VGA I/O defines

Message ID 20250107095912.130530-1-tzimmermann@suse.de (mailing list archive)
State New
Headers show
Series m68k: Fix VGA I/O defines | expand

Commit Message

Thomas Zimmermann Jan. 7, 2025, 9:58 a.m. UTC
Including m86k's <asm/raw_io.h> in vga.h on nommu platforms results
in conflicting defines with io_no.h for various I/O macros from the
__raw_read and __raw_write families. An example error is

   In file included from arch/m68k/include/asm/vga.h:12,
                 from include/video/vga.h:22,
                 from include/linux/vgaarb.h:34,
		 from drivers/video/aperture.c:12:
>> arch/m68k/include/asm/raw_io.h:39: warning: "__raw_readb" redefined
      39 | #define __raw_readb in_8
	 |
   In file included from arch/m68k/include/asm/io.h:6,
		    from include/linux/io.h:13,
		    from include/linux/irq.h:20,
		    from include/asm-generic/hardirq.h:17,
		    from ./arch/m68k/include/generated/asm/hardirq.h:1,
		    from include/linux/hardirq.h:11,
		    from include/linux/interrupt.h:11,
                    from include/linux/trace_recursion.h:5,
		    from include/linux/ftrace.h:10,
		    from include/linux/kprobes.h:28,
		    from include/linux/kgdb.h:19,
		    from include/linux/fb.h:6,
		    from drivers/video/aperture.c:5:
   arch/m68k/include/asm/io_no.h:16: note: this is the location of the previous definition
      16 | #define __raw_readb(addr) \
	 |

Include <asm/io.h>, which avoid raw_io.h on nommu platforms. Also change
the defined values of some of the read/write symbols in vga.h to
__raw_read/__raw_write as the raw_in/raw_out symbols are not generally
available.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202501071629.DNEswlm8-lkp@intel.com/
Fixes: 5c3f968712ce ("m68k/video: Create <asm/vga.h>")
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org> # v3.5+
---
 arch/m68k/include/asm/vga.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Geert Uytterhoeven Jan. 8, 2025, 4:23 p.m. UTC | #1
Hi Thomas,

On Tue, Jan 7, 2025 at 10:59 AM Thomas Zimmermann <tzimmermann@suse.de> wrote:
> Including m86k's <asm/raw_io.h> in vga.h on nommu platforms results
> in conflicting defines with io_no.h for various I/O macros from the
> __raw_read and __raw_write families. An example error is
>
>    In file included from arch/m68k/include/asm/vga.h:12,
>                  from include/video/vga.h:22,
>                  from include/linux/vgaarb.h:34,
>                  from drivers/video/aperture.c:12:
> >> arch/m68k/include/asm/raw_io.h:39: warning: "__raw_readb" redefined
>       39 | #define __raw_readb in_8
>          |
>    In file included from arch/m68k/include/asm/io.h:6,
>                     from include/linux/io.h:13,
>                     from include/linux/irq.h:20,
>                     from include/asm-generic/hardirq.h:17,
>                     from ./arch/m68k/include/generated/asm/hardirq.h:1,
>                     from include/linux/hardirq.h:11,
>                     from include/linux/interrupt.h:11,
>                     from include/linux/trace_recursion.h:5,
>                     from include/linux/ftrace.h:10,
>                     from include/linux/kprobes.h:28,
>                     from include/linux/kgdb.h:19,
>                     from include/linux/fb.h:6,
>                     from drivers/video/aperture.c:5:
>    arch/m68k/include/asm/io_no.h:16: note: this is the location of the previous definition
>       16 | #define __raw_readb(addr) \
>          |
>
> Include <asm/io.h>, which avoid raw_io.h on nommu platforms. Also change
> the defined values of some of the read/write symbols in vga.h to
> __raw_read/__raw_write as the raw_in/raw_out symbols are not generally
> available.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202501071629.DNEswlm8-lkp@intel.com/
> Fixes: 5c3f968712ce ("m68k/video: Create <asm/vga.h>")
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: linux-fbdev@vger.kernel.org
> Cc: dri-devel@lists.freedesktop.org
> Cc: Helge Deller <deller@gmx.de>
> Cc: <stable@vger.kernel.org> # v3.5+

Thanks for your patch!

> --- a/arch/m68k/include/asm/vga.h
> +++ b/arch/m68k/include/asm/vga.h
> @@ -9,7 +9,7 @@
>   */
>  #ifndef CONFIG_PCI
>
> -#include <asm/raw_io.h>
> +#include <asm/io.h>

It definitely makes sense to include <asm/io.h> instead of
<asm/raw_io.h> in this file.

>  #include <asm/kmap.h>
>
>  /*
> @@ -29,9 +29,9 @@
>  #define inw_p(port)            0
>  #define outb_p(port, val)      do { } while (0)
>  #define outw(port, val)                do { } while (0)
> -#define readb                  raw_inb
> -#define writeb                 raw_outb
> -#define writew                 raw_outw
> +#define readb                  __raw_readb
> +#define writeb                 __raw_writeb
> +#define writew                 __raw_writew

OK

>
>  #endif /* CONFIG_PCI */
>  #endif /* _ASM_M68K_VGA_H */

I gave it a try on various configs, and inspected the impact
(none, except for killing the warnings), so
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
i.e. will queue in the m68k tree for v6.14.

Gr{oetje,eeting}s,

                        Geert
diff mbox series

Patch

diff --git a/arch/m68k/include/asm/vga.h b/arch/m68k/include/asm/vga.h
index 4742e6bc3ab8..cdd414fa8710 100644
--- a/arch/m68k/include/asm/vga.h
+++ b/arch/m68k/include/asm/vga.h
@@ -9,7 +9,7 @@ 
  */
 #ifndef CONFIG_PCI
 
-#include <asm/raw_io.h>
+#include <asm/io.h>
 #include <asm/kmap.h>
 
 /*
@@ -29,9 +29,9 @@ 
 #define inw_p(port)		0
 #define outb_p(port, val)	do { } while (0)
 #define outw(port, val)		do { } while (0)
-#define readb			raw_inb
-#define writeb			raw_outb
-#define writew			raw_outw
+#define readb			__raw_readb
+#define writeb			__raw_writeb
+#define writew			__raw_writew
 
 #endif /* CONFIG_PCI */
 #endif /* _ASM_M68K_VGA_H */