m68k: W=1 fixes
Subsystems (7)
Geert Uytterhoeven
maintainercover m68k: W=1 fixes
Hi all,
This patch series addresses the remaining (after [1]) warnings seen when building arch/m68k/ with W=1. Perhaps surprisingly, this work has identified and fixes a genuine bug in the Sun-3 TLB handling (see [PATCH 39/52]).
Most of the patches in these series are fairly trivial changes with a very low risk of introducing any regressions. For the less trivial patches, I did look at the assembler output before and after. As Arnd is working actively on enabling W=1 rather sooner than later, and if no one objects, I plan to rebase [1] and this series after the release of v6.6-rc1, and send it as a fixes pull request to Linus.
Note that this series does not address warnings on Coldfire or MMU-less systems.
Thanks for your comments!
[1] "[PATCH 0/6] m68k: math-emu: Miscellaneous esthetical improvements"
https://lore.kernel.org/r/[email protected]
Geert Uytterhoeven (52):
m68k: kernel: Add missing asmlinkage to do_notify_resume()
m68k: kernel: Include <linux/cpu.h> for trap_init()
m68k: kernel: Make bad_super_trap() static
m68k: kernel: Add and use <asm/syscalls.h>
m68k: kernel: Add and use "ints.h"
m68k: kernel: Add and use "process.h"
m68k: kernel: Add and use "ptrace.h"
m68k: kernel: Add and use "signal.h"
m68k: kernel: Add and use "traps.h"
m68k: kernel: Add and use "vectors.h"
m68k: mm: Include <asm/hwtest.h> for hwreg_()
m68k: mm: Move paging_init() to common <asm/pgtable.h>
m68k: mm: Add and use "fault.h"
m68k: emu: Remove unused vsnprintf() return value in nfprint()
m68k: emu: Mark version[] __maybe_unused
m68k: amiga: pcmcia: Replace set but not used variable by READ_ONCE()
m68k: amiga: Add and use "amiga.h"
m68k: atari: Document data parameter of stdma_try_lock()
m68k: atari: Make ikbd_reset() static
m68k: atari: Make atari_platform_init() static
m68k: atari: Make atari_stram_map_pages() static
m68k: atari: Add and use "atari.h"
m68k: apollo: Remove unused debug console functions
m68k: apollo: Make local reset, serial, and irq functions static
m68k: apollo: Replace set but not used variable by READ_ONCE()
m68k: apollo: Add and use "apollo.h"
m68k: bvme6000: Make bvme6000_abort_int() static
m68k: hp300: Include "time.h" for hp300_sched_init()
m68k: mac: Remove unused sine_data[]
m68k: mac: Remove unused yday in unmktime()
m68k: mac: Make mac_platform_init() static
m68k: mac: Add and use "mac.h"
m68k: mvme147: Make mvme147_init_IRQ() static
m68k: mvme16x: Remove unused sink in mvme16x_cons_write()
m68k: mvme16x: Add and use "mvme16x.h"
m68k: q40: Add and use "q40.h"
m68k: sun3/3x: Include <asm/config.h> for config_sun3*()
m68k: sun3: Improve Sun3/3x DVMA abstraction in <asm/dvma.h>
m68k: sun3: Fix context restore in flush_tlb_range()
m68k: sun3: Fix signature of sun3_get_model()
m68k: sun3: Add missing asmlinkage to sun3_init()
m68k: sun3: Remove unused orig_baddr in free_baddr()
m68k: sun3: Remove unused start_page in sun3_bootmem_alloc()
m68k: sun3: Remove unused vsprintf() return value in prom_printf()
m68k: sun3: Annotate prom_printf() with __printf()
m68k: sun3: Make print_pte() static
m68k: sun3: Make sun3_platform_init() static
m68k: sun3x: Fix signature of sun3_leds()
m68k: sun3x: Do not mark dvma_map_iommu() inline
m68k: sun3x: Make sun3x_halt() static
m68k: sun3x: Make dvma_print() static
m68k: sun3/3x: Add and use "sun3.h"
arch/m68k/amiga/amiga.h | 5 ++++ arch/m68k/amiga/amisound.c | 2 ++ arch/m68k/amiga/config.c | 4 +-- arch/m68k/amiga/pcmcia.c | 3 +- arch/m68k/apollo/apollo.h | 4 +++ arch/m68k/apollo/config.c | 45 ++++++------------------------ arch/m68k/apollo/dn_ints.c | 8 ++++-- arch/m68k/atari/ataints.c | 3 +- arch/m68k/atari/atakeyb.c | 2 +- arch/m68k/atari/atari.h | 15 ++++++++++ arch/m68k/atari/atasound.c | 1 + arch/m68k/atari/config.c | 13 ++------- arch/m68k/atari/stdma.c | 1 + arch/m68k/atari/stram.c | 2 +- arch/m68k/atari/time.c | 2 ++ arch/m68k/bvme6000/config.c | 2 +- arch/m68k/emu/natfeat.c | 3 +- arch/m68k/emu/nfeth.c | 2 +- arch/m68k/hp300/time.c | 2 ++ arch/m68k/include/asm/dvma.h | 8 +++++- arch/m68k/include/asm/oplib.h | 4 ++- arch/m68k/include/asm/pgtable.h | 9 ++++++ arch/m68k/include/asm/pgtable_no.h | 1 - arch/m68k/include/asm/syscalls.h | 20 +++++++++++++ arch/m68k/include/asm/tlbflush.h | 1 + arch/m68k/kernel/early_printk.c | 4 +-- arch/m68k/kernel/ints.c | 2 ++ arch/m68k/kernel/ints.h | 7 +++++ arch/m68k/kernel/process.c | 1 + arch/m68k/kernel/process.h | 8 ++++++ arch/m68k/kernel/ptrace.c | 2 ++ arch/m68k/kernel/ptrace.h | 6 ++++ arch/m68k/kernel/setup_mm.c | 2 -- arch/m68k/kernel/signal.c | 4 ++- arch/m68k/kernel/signal.h | 7 +++++ arch/m68k/kernel/sys_m68k.c | 4 +-- arch/m68k/kernel/traps.c | 11 ++++---- arch/m68k/kernel/traps.h | 10 +++++++ arch/m68k/kernel/vectors.c | 3 ++ arch/m68k/kernel/vectors.h | 3 ++ arch/m68k/mac/baboon.c | 2 ++ arch/m68k/mac/config.c | 14 ++-------- arch/m68k/mac/iop.c | 2 ++ arch/m68k/mac/mac.h | 25 +++++++++++++++++ arch/m68k/mac/macboing.c | 11 ++------ arch/m68k/mac/misc.c | 5 ++-- arch/m68k/mac/oss.c | 2 ++ arch/m68k/mac/psc.c | 2 ++ arch/m68k/mac/via.c | 2 ++ arch/m68k/mm/fault.c | 2 ++ arch/m68k/mm/fault.h | 7 +++++ arch/m68k/mm/hwtest.c | 2 ++ arch/m68k/mm/sun3kmap.c | 6 ++-- arch/m68k/mm/sun3mmu.c | 2 +- arch/m68k/mvme147/config.c | 2 +- arch/m68k/mvme16x/config.c | 5 ++-- arch/m68k/mvme16x/mvme16x.h | 6 ++++ arch/m68k/q40/config.c | 6 ++-- arch/m68k/q40/q40.h | 6 ++++ arch/m68k/q40/q40ints.c | 2 ++ arch/m68k/sun3/config.c | 13 ++++----- arch/m68k/sun3/idprom.c | 4 ++- arch/m68k/sun3/intersil.c | 1 + arch/m68k/sun3/leds.c | 2 ++ arch/m68k/sun3/mmu_emu.c | 3 +- arch/m68k/sun3/prom/printf.c | 5 ++-- arch/m68k/sun3/sun3.h | 22 +++++++++++++++ arch/m68k/sun3/sun3dvma.c | 17 ----------- arch/m68k/sun3/sun3ints.c | 2 +- arch/m68k/sun3x/config.c | 6 ++-- arch/m68k/sun3x/dvma.c | 5 ++-- arch/m68k/sun3x/prom.c | 2 +- 72 files changed, 280 insertions(+), 149 deletions(-) create mode 100644 arch/m68k/amiga/amiga.h create mode 100644 arch/m68k/apollo/apollo.h create mode 100644 arch/m68k/atari/atari.h create mode 100644 arch/m68k/include/asm/syscalls.h create mode 100644 arch/m68k/kernel/ints.h create mode 100644 arch/m68k/kernel/process.h create mode 100644 arch/m68k/kernel/ptrace.h create mode 100644 arch/m68k/kernel/signal.h create mode 100644 arch/m68k/kernel/traps.h create mode 100644 arch/m68k/kernel/vectors.h create mode 100644 arch/m68k/mac/mac.h create mode 100644 arch/m68k/mm/fault.h create mode 100644 arch/m68k/mvme16x/mvme16x.h create mode 100644 arch/m68k/q40/q40.h create mode 100644 arch/m68k/sun3/sun3.h
Signature · 12 lines
2.34.1
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus TorvaldsGeert Uytterhoeven
maintainerPATCH 1/52 m68k: kernel: Add missing asmlinkage to do_notify_resume()
do_notify_resume() is called from assembly code, so it should be marked asmlinkage for documentation purposes.
--- arch/m68k/kernel/signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/kernel/signal.c +1 -1
@@ -1109,7 +1109,7 @@ static void do_signal(struct pt_regs *regs)restore_saved_sigmask (); } -void do_notify_resume (struct pt_regs *regs) +asmlinkage void do_notify_resume(struct pt_regs *regs) {if (test_thread_flag (TIF_NOTIFY_SIGNAL ) ||test_thread_flag (TIF_SIGPENDING ))
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 2/52 m68k: kernel: Include <linux/cpu.h> for trap_init()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/vectors.c:74:13: warning: no previous prototype for ‘trap_init’ [-Wmissing-prototypes]
74 | void __init trap_init (void)
| ^~~~~~~~~
Fix this by including <linux/cpu.h>.
--- arch/m68k/kernel/vectors.c | 1 + 1 file changed, 1 insertion(+)
arch/m68k/kernel/vectors.c +1 -0
@@ -17,6 +17,7 @@/* * Sets up all exception vectors */ +#include <linux/cpu.h> #include <linux/sched.h> #include <linux/kernel.h> #include <linux/linkage.h>
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 3/52 m68k: kernel: Make bad_super_trap() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/traps.c:968:6: warning: no previous prototype for ‘bad_super_trap’ [-Wmissing-prototypes]
968 | void bad_super_trap (struct frame *fp)
| ^~~~~~~~~~~~~~
Fix this by making bad_super_trap() static. There was never a user outside arch/m68k/kernel/traps.c.
--- arch/m68k/kernel/traps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/kernel/traps.c +1 -1
@@ -965,7 +965,7 @@ void show_stack(struct task_struct *task, unsigned long *stack,* real 68k parts, but it won't hurt either. */ -void bad_super_trap (struct frame *fp) +static void bad_super_trap (struct frame *fp) {int vector = (fp->ptregs.vector >>2 ) &0xff ;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 4/52 m68k: kernel: Add and use <asm/syscalls.h>
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/sys_m68k.c:40:17: warning: no previous prototype for ‘sys_mmap2’ [-Wmissing-prototypes]
40 | asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
| ^~~~~~~~~
arch/m68k/kernel/sys_m68k.c:378:1: warning: no previous prototype for ‘sys_cacheflush’ [-Wmissing-prototypes]
378 | sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len)
| ^~~~~~~~~~~~~~
arch/m68k/kernel/sys_m68k.c:463:1: warning: no previous prototype for ‘sys_atomic_cmpxchg_32’ [-Wmissing-prototypes]
463 | sys_atomic_cmpxchg_32(unsigned long newval, int oldval, int d3, int d4, int d5,
| ^~~~~~~~~~~~~~~~~~~~~
arch/m68k/kernel/sys_m68k.c:564:16: warning: no previous prototype for ‘sys_getpagesize’ [-Wmissing-prototypes]
564 | asmlinkage int sys_getpagesize(void)
| ^~~~~~~~~~~~~~~
arch/m68k/kernel/sys_m68k.c:569:26: warning: no previous prototype for ‘sys_get_thread_area’ [-Wmissing-prototypes]
569 | asmlinkage unsigned long sys_get_thread_area(void)
| ^~~~~~~~~~~~~~~~~~~
arch/m68k/kernel/sys_m68k.c:574:16: warning: no previous prototype for ‘sys_set_thread_area’ [-Wmissing-prototypes]
574 | asmlinkage int sys_set_thread_area(unsigned long tp)
| ^~~~~~~~~~~~~~~~~~~
arch/m68k/kernel/sys_m68k.c:580:16: warning: no previous prototype for ‘sys_atomic_barrier’ [-Wmissing-prototypes]
580 | asmlinkage int sys_atomic_barrier(void)
| ^~~~~~~~~~~~~~~~~~
Fix this by introducing a new header file <asm/syscalls.h> for holding the prototypes for m68k-specific syscalls, and including the generic ones.
--- arch/m68k/include/asm/syscalls.h | 20 ++++++++++++++++++++ arch/m68k/kernel/sys_m68k.c | 1 + 2 files changed, 21 insertions(+) create mode 100644 arch/m68k/include/asm/syscalls.h
arch/m68k/include/asm/syscalls.h new file +20 -0
@@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef _ASM_M68K_SYSCALLS_H +#define _ASM_M68K_SYSCALLS_H + +#include <linux/compiler_types.h> +#include <linux/linkage.h> + +asmlinkage int sys_cacheflush(unsigned long addr, int scope, int cache, +unsigned long len); +asmlinkage int sys_atomic_cmpxchg_32(unsigned long newval, int oldval, int d3, +int d4,int d5,unsigned long __user *mem); +asmlinkage int sys_getpagesize(void); +asmlinkage unsigned long sys_get_thread_area (void ); +asmlinkage int sys_set_thread_area(unsigned long tp); +asmlinkage int sys_atomic_barrier(void); + +#include <asm-generic/syscalls.h> + +#endif /* _ASM_M68K_SYSCALLS_H */ +
arch/m68k/kernel/sys_m68k.c +1 -0
@@ -27,6 +27,7 @@#include <asm/cachectl.h> #include <asm/traps.h> #include <asm/page.h> +#include <asm/syscalls.h> #include <asm/unistd.h> #include <asm/cacheflush.h>
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 5/52 m68k: kernel: Add and use "ints.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/ints.c:165:17: warning: no previous prototype for ‘handle_badint’ [-Wmissing-prototypes]
165 | asmlinkage void handle_badint(struct pt_regs *regs)
| ^~~~~~~~~~~~~
Fix this by introducing a new header file "ints.h" for holding the prototypes of functions implemented in arch/m68k/kernel/ints.c.
--- arch/m68k/kernel/ints.c | 2 ++ arch/m68k/kernel/ints.h | 7 +++++++ 2 files changed, 9 insertions(+) create mode 100644 arch/m68k/kernel/ints.h
arch/m68k/kernel/ints.c +2 -0
@@ -26,6 +26,8 @@#include <asm/q40ints.h> #endif +#include "ints.h" +extern u32 auto_irqhandler_fixup[];extern u16 user_irqvec_fixup[];
arch/m68k/kernel/ints.h new file +7 -0
@@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <linux/linkage.h> + +struct pt_regs ; + +asmlinkage void handle_badint(struct pt_regs *regs);
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 6/52 m68k: kernel: Add and use "process.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/process.c:115:16: warning: no previous prototype for ‘m68k_clone’ [-Wmissing-prototypes]
115 | asmlinkage int m68k_clone(struct pt_regs *regs)
| ^~~~~~~~~~
arch/m68k/kernel/process.c:136:16: warning: no previous prototype for ‘m68k_clone3’ [-Wmissing-prototypes]
136 | asmlinkage int m68k_clone3(struct pt_regs *regs)
| ^~~~~~~~~~~
Fix this by introducing a new header file "process.h" for holding the prototypes of functions implemented in arch/m68k/kernel/process.c.
--- arch/m68k/kernel/process.c | 1 + arch/m68k/kernel/process.h | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 arch/m68k/kernel/process.h
arch/m68k/kernel/process.c +1 -0
@@ -38,6 +38,7 @@#include <asm/machdep.h> #include <asm/setup.h> +#include <process.h> asmlinkage void ret_from_fork(void); asmlinkage void ret_from_kernel_thread(void);
arch/m68k/kernel/process.h new file +8 -0
@@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#include <linux/linkage.h> + +struct pt_regs ; + +asmlinkage int m68k_clone(struct pt_regs *regs); +asmlinkage int m68k_clone3(struct pt_regs *regs);
Signature · 1 line
2.34.1
Greg Ungerer
maintainerRe: [PATCH 06/52] m68k: kernel: Add and use "process.h"
Hi Geert,
Nice cleanups. My plan is to clean up the ColdFire/68000 warnings as well.
Quoted 24 lines · Geert Uytterhoeven
When building with W=1:
arch/m68k/kernel/process.c:115:16: warning: no previous prototype for ‘m68k_clone’ [-Wmissing-prototypes]
115 | asmlinkage intm68k_clone(struct pt_regs *regs)
| ^~~~~~~~~~
arch/m68k/kernel/process.c:136:16: warning: no previous prototype for ‘m68k_clone3’ [-Wmissing-prototypes]
136 | asmlinkage intm68k_clone3(struct pt_regs *regs)
| ^~~~~~~~~~~Fix this by introducing a new header file "
process.h" for holding the prototypes of functions implemented inarch/m68k/kernel/process.c.Signed-off-by Geert Uytterhoeven <[email protected]>--- arch/m68k/kernel/process.c | 1 + arch/m68k/kernel/process.h | 8 ++++++++ 2 files changed, 9 insertions(+)create mode 100644
arch/m68k/kernel/process.harch/m68k/kernel/process.c +0
-0
arch/m68k/kernel/process.c line 41
Quoted 4 lines
arch/m68k/kernel/process.c +1
-0@@ -38,6 +38,7 @@#include <asm/machdep.h> #include <asm/setup.h> +#include <process.h>
I applied all 52 patches to linux-6.6-rc1 and see this:
$ ARCH=m68k CROSS_COMPILE=m68k-linux- make amiga_defconfig
$ ARCH=m68k CROSS_COMPILE=m68k-linux- make W=1
...
CC arch/m68k/kernel/process.o
arch/m68k/kernel/process.c:41:10: fatal error: process.h: No such file or directory
#include <process.h>
^~~~~~~~~~~Of course trivially fixed by doing this:
arch/m68k/kernel/process.c +1 -1
@@ -38,7 +38,7 @@#include <asm/machdep.h> #include <asm/setup.h> -#include <process.h> +#include "process.h" asmlinkage void ret_from_fork(void); asmlinkage void ret_from_kernel_thread(void);
Regards
Greg
Quoted 16 lines
arch/m68k/kernel/process.c +0
-0asmlinkage void ret_from_fork(void); asmlinkage void ret_from_kernel_thread(void);arch/m68k/kernel/process.h new file +8
-0@@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#include <linux/linkage.h> + +struct pt_regs ; + +asmlinkage int m68k_clone(struct pt_regs *regs); +asmlinkage int m68k_clone3(struct pt_regs *regs);
Geert Uytterhoeven
maintainerRe: [PATCH 06/52] m68k: kernel: Add and use "process.h"
Hi Greg,
Quoted 1 line · Greg Ungerer
Nice cleanups. My plan is to clean up the ColdFire/68000 warnings as well.
Thanks in advance!
Quoted 26 lines · Geert Uytterhoeven
arch/m68k/kernel/process.c line 41
Quoted 7 lines
arch/m68k/kernel/process.c +1
-0@@ -38,6 +38,7 @@#include <asm/machdep.h> #include <asm/setup.h> +#include <process.h> I applied all 52 patches to linux-6.6-rc1 and see this:
$ ARCH=m68k CROSS_COMPILE=m68k-linux- make amiga_defconfig $ ARCH=m68k CROSS_COMPILE=m68k-linux- make W=1 ... CC arch/m68k/kernel/process.o arch/m68k/kernel/process.c:41:10: fatal error: process.h: No such file or directory #include <process.h> ^~~~~~~~~~~Of course trivially fixed by doing this:
arch/m68k/kernel/process.c +0
-0
arch/m68k/kernel/process.c line 41
Quoted 5 lines
arch/m68k/kernel/process.c +1
-1@@ -38,7 +38,7 @@#include <asm/machdep.h> #include <asm/setup.h> -#include <process.h> +#include "process.h"
Thanks, will fix (and any other similar typos, if any).
I usually build in separate output directories, which causes
-I${srcdir}/include
-I${srcdir}/arch/m68k/kernel
-I./arch/m68k/kernelto be added to the include path, causing <...> to work as well :-(
Gr{oetje,eeting}s,
Geert
Signature · 5 lines
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Geert Uytterhoeven
maintainerPATCH 7/52 m68k: kernel: Add and use "ptrace.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/ptrace.c:275:16: warning: no previous prototype for ‘syscall_trace_enter’ [-Wmissing-prototypes]
275 | asmlinkage int syscall_trace_enter(void)
| ^~~~~~~~~~~~~~~~~~~
arch/m68k/kernel/ptrace.c:288:17: warning: no previous prototype for ‘syscall_trace_leave’ [-Wmissing-prototypes]
288 | asmlinkage void syscall_trace_leave(void)
| ^~~~~~~~~~~~~~~~~~~
Fix this by introducing a new header file "ptrace.h" for holding the prototypes of functions implemented in arch/m68k/kernel/ptrace.c.
--- arch/m68k/kernel/ptrace.c | 2 ++ arch/m68k/kernel/ptrace.h | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 arch/m68k/kernel/ptrace.h
arch/m68k/kernel/ptrace.c +2 -0
@@ -26,6 +26,8 @@#include <asm/page.h> #include <asm/processor.h> +#include "ptrace.h" +/* * does not yet catch signals sent when the child dies. * in exit.c or in signal.c.
arch/m68k/kernel/ptrace.h new file +6 -0
@@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <linux/linkage.h> + +asmlinkage int syscall_trace_enter(void); +asmlinkage void syscall_trace_leave(void);
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 8/52 m68k: kernel: Add and use "signal.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/signal.c:756:18: warning: no previous prototype for ‘do_sigreturn’ [-Wmissing-prototypes]
756 | asmlinkage void *do_sigreturn(struct pt_regs *regs, struct switch_stack *sw)
| ^~~~~~~~~~~~
arch/m68k/kernel/signal.c:783:18: warning: no previous prototype for ‘do_rt_sigreturn’ [-Wmissing-prototypes]
783 | asmlinkage void *do_rt_sigreturn(struct pt_regs *regs, struct switch_stack *sw)
| ^~~~~~~~~~~~~~~
arch/m68k/kernel/signal.c:1112:17: warning: no previous prototype for ‘do_notify_resume’ [-Wmissing-prototypes]
1112 | asmlinkage void do_notify_resume(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~
Fix this by introducing a new header file "signal.h" for holding the prototypes of functions implemented in arch/m68k/kernel/signal.c.
--- arch/m68k/kernel/signal.c | 2 ++ arch/m68k/kernel/signal.h | 7 +++++++ 2 files changed, 9 insertions(+) create mode 100644 arch/m68k/kernel/signal.h
arch/m68k/kernel/signal.c +2 -0
@@ -51,6 +51,8 @@#include <asm/ucontext.h> #include <asm/cacheflush.h> +#include "signal.h" +#ifdef CONFIG_MMU /*
arch/m68k/kernel/signal.h new file +7 -0
@@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <linux/linkage.h> + +asmlinkage void do_notify_resume(struct pt_regs *regs); +asmlinkage void *do_sigreturn(struct pt_regs *regs, struct switch_stack *sw); +asmlinkage void *do_rt_sigreturn(struct pt_regs *regs, struct switch_stack *sw);
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 9/52 m68k: kernel: Add and use "traps.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/traps.c:754:17: warning: no previous prototype for ‘buserr_c’ [-Wmissing-prototypes]
754 | asmlinkage void buserr_c(struct frame *fp)
| ^~~~~~~~
arch/m68k/kernel/traps.c:1140:17: warning: no previous prototype for ‘set_esp0’ [-Wmissing-prototypes]
1140 | asmlinkage void set_esp0(unsigned long ssp)
| ^~~~~~~~
arch/m68k/kernel/traps.c:1155:17: warning: no previous prototype for ‘fpemu_signal’ [-Wmissing-prototypes]
1155 | asmlinkage void fpemu_signal(int signal, int code, void *addr)
| ^~~~~~~~~~~~
arch/m68k/kernel/traps.c:1149:17: warning: no previous prototype for ‘fpsp040_die’ [-Wmissing-prototypes]
1149 | asmlinkage void fpsp040_die(void)
| ^~~~~~~~~~~
Fix this by introducing a new header file "traps.h" for holding the prototypes of functions implemented in arch/m68k/kernel/traps.c.
--- arch/m68k/kernel/traps.c | 2 ++ arch/m68k/kernel/traps.h | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100644 arch/m68k/kernel/traps.h
arch/m68k/kernel/traps.c +2 -0
@@ -41,6 +41,8 @@#include <asm/siginfo.h> #include <asm/tlbflush.h> +#include "traps.h" +static const char *vec_names[] = { [VEC_RESETSP ] ="RESET SP" , [VEC_RESETPC ] ="RESET PC" ,
arch/m68k/kernel/traps.h new file +10 -0
@@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <linux/linkage.h> + +struct frame ; + +asmlinkage void buserr_c(struct frame *fp); +asmlinkage void fpemu_signal(int signal, int code, void *addr); +asmlinkage void fpsp040_die(void); +asmlinkage void set_esp0(unsigned long ssp);
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 10/52 m68k: kernel: Add and use "vectors.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/kernel/vectors.c:52:13: warning: no previous prototype for ‘base_trap_init’ [-Wmissing-prototypes]
52 | void __init base_trap_init(void)
| ^~~~~~~~~~~~~~
Fix this by introducing a new header file "vectors.h" for holding the prototypes of functions implemented in arch/m68k/kernel/vectors.c.
--- arch/m68k/kernel/vectors.c | 2 ++ arch/m68k/kernel/vectors.h | 3 +++ 2 files changed, 5 insertions(+) create mode 100644 arch/m68k/kernel/vectors.h
arch/m68k/kernel/vectors.c +2 -0
@@ -28,6 +28,8 @@#include <asm/fpu.h> #include <asm/traps.h> +#include "vectors.h" +/* assembler routines */ asmlinkage void system_call(void); asmlinkage void buserr(void);
arch/m68k/kernel/vectors.h new file +3 -0
@@ -0,0 +1,3 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +void base_trap_init (void );
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 11/52 m68k: mm: Include <asm/hwtest.h> for hwreg_()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mm/hwtest.c:29:5: warning: no previous prototype for ‘hwreg_present’ [-Wmissing-prototypes]
29 | int hwreg_present(volatile void *regp)
| ^~~~~~~~~~~~~
arch/m68k/mm/hwtest.c:62:5: warning: no previous prototype for ‘hwreg_write’ [-Wmissing-prototypes]
62 | int hwreg_write(volatile void *regp, unsigned short val)
| ^~~~~~~~~~~
Fix this by including <asm/hwtest.h>.
--- arch/m68k/mm/hwtest.c | 2 ++ 1 file changed, 2 insertions(+)
arch/m68k/mm/hwtest.c +2 -0
@@ -26,6 +26,8 @@#include <linux/module.h> +#include <asm/hwtest.h> +int hwreg_present (volatile void *regp) {int ret =0 ;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 12/52 m68k: mm: Move paging_init() to common <asm/pgtable.h>
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mm/motorola.c:414:13: warning: no previous prototype for ‘paging_init’ [-Wmissing-prototypes]
414 | void __init paging_init(void)
| ^~~~~~~~~~~
arch/m68k/mm/sun3mmu.c:36:13: warning: no previous prototype for ‘paging_init’ [-Wmissing-prototypes]
36 | void __init paging_init(void)
| ^~~~~~~~~~~
Fix this by consolidating the multiple prototypes into the common <asm/pgtable.h>.
--- arch/m68k/include/asm/pgtable.h | 9 +++++++++ arch/m68k/include/asm/pgtable_no.h | 1 - arch/m68k/kernel/setup_mm.c | 2 -- 3 files changed, 9 insertions(+), 3 deletions(-)
arch/m68k/include/asm/pgtable.h +9 -0
@@ -1,6 +1,15 @@/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __M68K_PGTABLE_H +#define __M68K_PGTABLE_H +#ifdef __uClinux__#include <asm/pgtable_no.h> #else #include <asm/pgtable_mm.h> #endif + +#ifndef __ASSEMBLY__ +extern void paging_init (void ); +#endif + +#endif /* __M68K_PGTABLE_H */
arch/m68k/include/asm/pgtable_no.h +0 -1
@@ -28,7 +28,6 @@#define PAGE_READONLY __pgprot(0)#define PAGE_KERNEL __pgprot(0) -extern void paging_init (void );#define swapper_pg_dir ((pgd_t *) 0)/*
arch/m68k/kernel/setup_mm.c +0 -2
@@ -107,8 +107,6 @@ EXPORT_SYMBOL(isa_sex);#define MASK_256K 0xfffc0000 -extern void paging_init (void ); -static void __init m68k_parse_bootinfo (const struct bi_record *record) {const struct bi_record *first_record = record;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 13/52 m68k: mm: Add and use "fault.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mm/fault.c:22:5: warning: no previous prototype for ‘send_fault_sig’ [-Wmissing-prototypes]
22 | int send_fault_sig(struct pt_regs *regs)
| ^~~~~~~~~~~~~~
arch/m68k/mm/fault.c:68:5: warning: no previous prototype for ‘do_page_fault’ [-Wmissing-prototypes]
68 | int do_page_fault(struct pt_regs *regs, unsigned long address,
| ^~~~~~~~~~~~~
Fix this by introducing a new header file "fault.h" for holding the prototypes of functions implemented in arch/m68k/mm/fault.c.
--- arch/m68k/kernel/sys_m68k.c | 3 +-- arch/m68k/kernel/traps.c | 5 +---- arch/m68k/mm/fault.c | 2 ++ arch/m68k/mm/fault.h | 7 +++++++ 4 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 arch/m68k/mm/fault.h
arch/m68k/kernel/sys_m68k.c +1 -2
@@ -35,8 +35,7 @@#include <asm/tlb.h> -asmlinkage int do_page_fault(struct pt_regs *regs, unsigned long address, -unsigned long error_code); +#include "../mm/fault.h" asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags,
arch/m68k/kernel/traps.c +1 -4
@@ -42,6 +42,7 @@#include <asm/tlbflush.h> #include "traps.h" +#include "../mm/fault.h" static const char *vec_names[] = { [VEC_RESETSP ] ="RESET SP" ,
@@ -126,10 +127,6 @@ static const char *space_names[] = { };void die_if_kernel (char *,struct pt_regs *,int ); -asmlinkage int do_page_fault(struct pt_regs *regs, unsigned long address, -unsigned long error_code); -int send_fault_sig (struct pt_regs *regs); - asmlinkage void trap_c(struct frame *fp);#if defined (CONFIG_M68060 )
arch/m68k/mm/fault.c +2 -0
@@ -17,6 +17,8 @@#include <asm/setup.h> #include <asm/traps.h> +#include "fault.h" +extern void die_if_kernel (char *,struct pt_regs *,long );int send_fault_sig (struct pt_regs *regs)
arch/m68k/mm/fault.h new file +7 -0
@@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +struct pt_regs ; + +int do_page_fault (struct pt_regs *regs,unsigned long address, +unsigned long error_code); +int send_fault_sig (struct pt_regs *regs);
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 14/52 m68k: emu: Remove unused vsnprintf() return value in nfprint()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/emu/natfeat.c: In function ‘nfprint’:
arch/m68k/emu/natfeat.c:59:13: warning: variable ‘n’ set but not used [-Wunused-but-set-variable]
59 | int n;
| ^
As the return value of vsnprintf() is unused, and serves no practical purpose here, fix this by removing the variable.
--- arch/m68k/emu/natfeat.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
arch/m68k/emu/natfeat.c +1 -2
@@ -56,10 +56,9 @@ void nfprint(const char *fmt, ...) {static char buf[256 ];va_list ap; -int n;va_start (ap, fmt); - n =vsnprintf (buf,256 , fmt, ap); +vsnprintf (buf,256 , fmt, ap);nf_call (nf_get_id ("NF_STDERR" ),virt_to_phys (buf));va_end (ap); }
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 15/52 m68k: emu: Mark version[] __maybe_unused
In reply to Geert UytterhoevenWhen building with W=1:
m68k/arch/m68k/emu/nfeth.c:42:19: warning: ‘version’ defined but not used [-Wunused-const-variable=]
42 | static const char version[] =
| ^~~~~~~Fix this while obeying the wishes of the original copyright holders by marking version[] with __maybe_unused.
--- arch/m68k/emu/nfeth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/emu/nfeth.c +1 -1
@@ -39,7 +39,7 @@ enum {#define MAX_UNIT 8/* These identify the driver base version and may not be removed. */ -static const char version[] = +static const char version[]__maybe_unused = KERN_INFO KBUILD_MODNAME ".c:v" DRV_VERSION " " DRV_RELDATE" S.Opichal, M.Jurik, P.Stehlik\n" KERN_INFO " http://aranym.org/\n" ;
Signature · 1 line
2.34.1
Re: [PATCH 15/52] m68k: emu: Mark version[] __maybe_unused
Quoted 11 lines · Geert Uytterhoeven
When building with W=1:
m68k/arch/m68k/emu/nfeth.c:42:19: warning: ‘version’ defined but
not used [-Wunused-const-variable=]42 | static const char version[] = | ^~~~~~~Fix this while obeying the wishes of the original copyright holders by marking version[] with
__maybe_unused.Signed-off-by Geert Uytterhoeven <[email protected]>
That will just drop it from the object file, maybe it should instead be marked "__used" ?
Arnd
Geert Uytterhoeven
maintainerRe: [PATCH 15/52] m68k: emu: Mark version[] __maybe_unused
Hi Arnd,
Quoted 8 lines · Arnd Bergmann
Quoted 7 lines · Geert Uytterhoeven
When building with W=1:
m68k/arch/m68k/emu/nfeth.c:42:19: warning: ‘version’ defined but
not used [-Wunused-const-variable=]42 | static const char version[] = | ^~~~~~~
Quoted 7 lines
Quoted 4 lines
Fix this while obeying the wishes of the original copyright holders by marking version[] with
__maybe_unused.Signed-off-by Geert Uytterhoeven <[email protected]>That will just drop it from the object file, maybe it should instead be marked "
__used" ?
Given it's been like this since the beginning, I guess it never showed up in the object file anyway...
Gr{oetje,eeting}s,
Geert
Signature · 5 lines
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Re: [PATCH 15/52] m68k: emu: Mark version[] __maybe_unused
Quoted 14 lines · Geert Uytterhoeven
Hi Arnd,
Quoted 11 lines · Arnd Bergmann
Quoted 10 lines · Geert Uytterhoeven
When building with W=1:
m68k/arch/m68k/emu/nfeth.c:42:19: warning: ‘version’ defined but
not used [-Wunused-const-variable=]42 | static const char version[] = | ^~~~~~~Fix this while obeying the wishes of the original copyright holders by marking version[] with
__maybe_unused.
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
Signed-off-by Geert Uytterhoeven <[email protected]>That will just drop it from the object file, maybe it should instead be marked "
__used" ?Given it's been like this since the beginning, I guess it never showed up in the object file anyway...
Older compilers used to keep unused variables, and all versions still do when building with -O0 instead of the usual -O2.
I can see on godbolt.org that gcc-1.27 did not have that optimization yet, while gcc-4.1 had it, but I haven't found any versions between those. I vaguely remember us throwing out the version strings from most kernel files a long time ago, possibly that was triggered by gcc no longer putting them into the object any more, but I can't find a reference for that.
What I can see is that a lot of old network drivers have version strings like this one, but they are actually printed from the probe function, and lost their __devinitdata annotation in the past.
Arnd
Geert Uytterhoeven
maintainerRe: [PATCH 15/52] m68k: emu: Mark version[] __maybe_unused
Hi Arnd,
Quoted 31 lines · Arnd Bergmann
Quoted 12 lines · Geert Uytterhoeven
Quoted 11 lines · Arnd Bergmann
Quoted 10 lines · Geert Uytterhoeven
When building with W=1:
m68k/arch/m68k/emu/nfeth.c:42:19: warning: ‘version’ defined but
not used [-Wunused-const-variable=]42 | static const char version[] = | ^~~~~~~Fix this while obeying the wishes of the original copyright holders by marking version[] with
__maybe_unused.Quoted 7 lines
Quoted 4 lines
Quoted 1 line
Signed-off-by Geert Uytterhoeven <[email protected]>That will just drop it from the object file, maybe it should instead be marked "
__used" ?Given it's been like this since the beginning, I guess it never showed up in the object file anyway...
Older compilers used to keep unused variables, and all versions still do when building with -O0 instead of the usual -O2.
I can see on godbolt.org that gcc-1.27 did not have that optimization yet, while gcc-4.1 had it, but I haven't found any versions between those. I vaguely remember us throwing out the version strings from most kernel files a long time ago, possibly that was triggered by gcc no longer putting them into the object any more, but I can't find a reference for that.
Quoted 3 lines
What I can see is that a lot of old network drivers have version strings like this one, but they are actually printed from the probe function, and lost their
__devinitdataannotation in the past.
The version string in arch/m68k/emu/nfeth.c used to be __devinitdata, too, but it was never printed. So I'm just gonna silence the warning, as this patch does.
Gr{oetje,eeting}s,
Geert
Signature · 5 lines
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Geert Uytterhoeven
maintainerPATCH 16/52 m68k: amiga: pcmcia: Replace set but not used variable by READ_ONCE()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/amiga/pcmcia.c: In function ‘pcmcia_reset’:
arch/m68k/amiga/pcmcia.c:29:23: warning: variable ‘b’ set but not used [-Wunused-but-set-variable]
29 | unsigned char b;
| ^
Fix this by using READ_ONCE(), and removing the variable.
--- arch/m68k/amiga/pcmcia.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
arch/m68k/amiga/pcmcia.c +1 -2
@@ -26,11 +26,10 @@ static unsigned char cfg_byte = GAYLE_CFG_0V|GAYLE_CFG_150NS;void pcmcia_reset (void ) {unsigned long reset_start_time = jiffies; -unsigned char b; gayle_reset =0x00 ;while (time_before (jiffies, reset_start_time +1 *HZ /100 )); - b = gayle_reset; +READ_ONCE (gayle_reset); }EXPORT_SYMBOL (pcmcia_reset);
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 17/52 m68k: amiga: Add and use "amiga.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/amiga/amisound.c:48:13: warning: no previous prototype for ‘amiga_init_sound’ [-Wmissing-prototypes]
48 | void __init amiga_init_sound(void)
| ^~~~~~~~~~~~~~~~
arch/m68k/amiga/amisound.c:71:6: warning: no previous prototype for ‘amiga_mksound’ [-Wmissing-prototypes]
71 | void amiga_mksound( unsigned int hz, unsigned int ticks )
| ^~~~~~~~~~~~~
Fix this by introducing a new header file "amiga.h" for holding the prototypes of functions implemented in arch/m68k/amiga/.
--- arch/m68k/amiga/amiga.h | 5 +++++ arch/m68k/amiga/amisound.c | 2 ++ arch/m68k/amiga/config.c | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 arch/m68k/amiga/amiga.h
arch/m68k/amiga/amiga.h new file +5 -0
@@ -0,0 +1,5 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +/* amisound.c */ +void amiga_init_sound (void ); +void amiga_mksound (unsigned int hz,unsigned int ticks);
arch/m68k/amiga/amisound.c +2 -0
@@ -16,6 +16,8 @@#include <asm/amigahw.h> +#include "amiga.h" +static unsigned short *snd_data;static const signed char sine_data[] = {0 ,39 ,75 ,103 ,121 ,127 ,121 ,103 ,75 ,39 ,
arch/m68k/amiga/config.c +2 -2
@@ -39,6 +39,8 @@#include <asm/io.h> #include <asm/config.h> +#include "amiga.h" +static unsigned long amiga_model;unsigned long amiga_eclock;
@@ -96,9 +98,7 @@ static char amiga_model_name[13] = "Amiga ";static void amiga_sched_init (void );static void amiga_get_model (char *model);static void amiga_get_hardware_list (struct seq_file *m); -extern void amiga_mksound (unsigned int count,unsigned int ticks);static void amiga_reset (void ); -extern void amiga_init_sound (void );static void amiga_mem_console_write (struct console *co,const char *b,unsigned int count);#ifdef CONFIG_HEARTBEAT
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 18/52 m68k: atari: Document data parameter of stdma_try_lock()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/atari/stdma.c:69: warning: Function parameter or member 'data' not described in 'stdma_try_lock'
Fix this by documenting the data parameter.
--- arch/m68k/atari/stdma.c | 1 + 1 file changed, 1 insertion(+)
arch/m68k/atari/stdma.c +1 -0
@@ -61,6 +61,7 @@ static irqreturn_t stdma_int (int irq, void *dummy);/** * stdma_try_lock - attempt to acquire ST DMA interrupt "lock" * @handler: interrupt handler to use after acquisition +* @data: cookie passed to the interrupt handler function * * Returns !0 if lock was acquired; otherwise 0. */
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 19/52 m68k: atari: Make ikbd_reset() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/atari/atakeyb.c:335:6: warning: no previous prototype for ‘ikbd_reset’ [-Wmissing-prototypes]
335 | void ikbd_reset(void)
| ^~~~~~~~~~Fix this by making ikbd_reset() static.
There was never a user outside arch/m68k/atari/atakey.c.
--- arch/m68k/atari/atakeyb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/atari/atakeyb.c +1 -1
@@ -332,7 +332,7 @@ void ikbd_write(const char *str, int len) }/* Reset (without touching the clock) */ -void ikbd_reset (void ) +static void ikbd_reset (void ) {static const char cmd[2 ] = {0x80 ,0x01 };
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 20/52 m68k: atari: Make atari_platform_init() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/atari/config.c:883:12: warning: no previous prototype for ‘atari_platform_init’ [-Wmissing-prototypes]
883 | int __init atari_platform_init(void)
| ^~~~~~~~~~~~~~~~~~~
Fix this by making atari_platform_init() static. There was never a user outside arch/m68k/atari/config.c.
--- arch/m68k/atari/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/atari/config.c +1 -1
@@ -880,7 +880,7 @@ static const struct resource atari_falconide_rsrc[] __initconst = { DEFINE_RES_MEM(FALCON_IDE_BASE + 0x38, 2), }; -int __init atari_platform_init (void ) +static int __init atari_platform_init (void ) {struct platform_device *pdev;int rv =0 ;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 21/52 m68k: atari: Make atari_stram_map_pages() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/atari/stram.c:118:12: warning: no previous prototype for ‘atari_stram_map_pages’ [-Wmissing-prototypes]
118 | int __init atari_stram_map_pages(void)
| ^~~~~~~~~~~~~~~~~~~~~
Fix this by making atari_stram_map_pages() static. There was never a user outside arch/m68k/atari/stram.c.
--- arch/m68k/atari/stram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/atari/stram.c +1 -1
@@ -115,7 +115,7 @@ void __init atari_stram_reserve_pages(void *start_mem)* This function is called as arch initcall to reserve the pages needed for * ST-RAM management, if the kernel does not reside in ST-RAM. */ -int __init atari_stram_map_pages (void ) +static int __init atari_stram_map_pages (void ) {if (!kernel_in_stram) {/*
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 22/52 m68k: atari: Add and use "atari.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/atari/time.c:59:1: warning: no previous prototype for ‘atari_sched_init’ [-Wmissing-prototypes]
59 | atari_sched_init(void)
| ^~~~~~~~~~~~~~~~
arch/m68k/atari/time.c:140:5: warning: no previous prototype for ‘atari_mste_hwclk’ [-Wmissing-prototypes]
140 | int atari_mste_hwclk( int op, struct rtc_time *t )
| ^~~~~~~~~~~~~~~~
arch/m68k/atari/time.c:199:5: warning: no previous prototype for ‘atari_tt_hwclk’ [-Wmissing-prototypes]
199 | int atari_tt_hwclk( int op, struct rtc_time *t )
| ^~~~~~~~~~~~~~
arch/m68k/atari/ataints.c:267:13: warning: no previous prototype for ‘atari_init_IRQ’ [-Wmissing-prototypes]
267 | void __init atari_init_IRQ(void)
| ^~~~~~~~~~~~~~
arch/m68k/atari/atasound.c:36:6: warning: no previous prototype for ‘atari_microwire_cmd’ [-Wmissing-prototypes]
36 | void atari_microwire_cmd (int cmd)
| ^~~~~~~~~~~~~~~~~~~
arch/m68k/atari/atasound.c:53:6: warning: no previous prototype for ‘atari_mksound’ [-Wmissing-prototypes]
53 | void atari_mksound (unsigned int hz, unsigned int ticks)
| ^~~~~~~~~~~~~
Fix this by introducing a new header file "atari.h" for holding the prototypes of functions implemented in arch/m68k/atari/.
--- arch/m68k/atari/ataints.c | 3 +-- arch/m68k/atari/atari.h | 15 +++++++++++++++ arch/m68k/atari/atasound.c | 1 + arch/m68k/atari/config.c | 11 ++--------- arch/m68k/atari/time.c | 2 ++ 5 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 arch/m68k/atari/atari.h
arch/m68k/atari/ataints.c +1 -2
@@ -52,6 +52,7 @@#include <asm/entry.h> #include <asm/io.h> +#include "atari.h" /* * Atari interrupt handling scheme:
@@ -81,8 +82,6 @@ __ALIGN_STR "\n\t""orw #0x200,%sp@\n\t" /* set saved ipl to 2 */ "rte"); -extern void atari_microwire_cmd (int cmd); -static unsigned int atari_irq_startup (struct irq_data *data) {unsigned int irq = data->irq;
arch/m68k/atari/atari.h new file +15 -0
@@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +struct rtc_time ; + +/* ataints.c */ +void atari_init_IRQ (void ); + +/* atasound.c */ +void atari_microwire_cmd (int cmd); +void atari_mksound (unsigned int hz,unsigned int ticks); + +/* time.c */ +void atari_sched_init (void ); +int atari_mste_hwclk (int op,struct rtc_time *t); +int atari_tt_hwclk (int op,struct rtc_time *t);
arch/m68k/atari/atasound.c +1 -0
@@ -28,6 +28,7 @@#include <asm/irq.h> #include <asm/atariints.h> +#include "atari.h" /* * stuff from the old atasound.c
arch/m68k/atari/config.c +2 -9
@@ -48,6 +48,8 @@#include <asm/io.h> #include <asm/config.h> +#include "atari.h" +u_long atari_mch_cookie;EXPORT_SYMBOL (atari_mch_cookie);
@@ -69,19 +71,10 @@ int atari_rtc_year_offset;static void atari_reset (void );static void atari_get_model (char *model);static void atari_get_hardware_list (struct seq_file *m); - -/* atari specific irq functions */ -extern void atari_init_IRQ (void ); -extern void atari_mksound (unsigned int count,unsigned int ticks);#ifdef CONFIG_HEARTBEAT static void atari_heartbeat (int on);#endif -/* atari specific timer functions (in time.c) */ -extern void atari_sched_init (void ); -extern int atari_mste_hwclk (int ,struct rtc_time *); -extern int atari_tt_hwclk (int ,struct rtc_time *); -/* ++roman: This is a more elaborate test for an SCC chip, since the plain * Medusa board generates DTACK at the SCC's standard addresses, but a SCC * board in the Medusa is possible. Also, the addresses where the ST_ESCC
arch/m68k/atari/time.c +2 -0
@@ -23,6 +23,8 @@#include <asm/atariints.h> #include <asm/machdep.h> +#include "atari.h" +DEFINE_SPINLOCK (rtc_lock);EXPORT_SYMBOL_GPL (rtc_lock);
Signature · 1 line
2.34.1
Re: [PATCH 22/52] m68k: atari: Add and use "atari.h"
Quoted 11 lines · Geert Uytterhoeven
arch/m68k/atari/atari.h new file +5
-0@@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +struct rtc_time ; + +/* ataints.c */
arch/m68k/atari/atari.h line 15
Quoted 10 lines
arch/m68k/atari/atari.h new file +10
-0+void atari_init_IRQ (void ); + +/* atasound.c */ +void atari_microwire_cmd (int cmd); +void atari_mksound (unsigned int hz,unsigned int ticks); + +/* time.c */ +void atari_sched_init (void ); +int atari_mste_hwclk (int op,struct rtc_time *t); +int atari_tt_hwclk (int op,struct rtc_time *t);
Wouldn't atariints.h and atarihw.h be more appropriate places for some of these?
Re: [PATCH 22/52] m68k: atari: Add and use "atari.h"
Hi Finn,
Quoted 17 lines · Finn Thain
Quoted 15 lines · Geert Uytterhoeven
arch/m68k/atari/atari.h new file +9
-0@@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +struct rtc_time ; + +/* ataints.c */ +void atari_init_IRQ (void ); + +/* atasound.c */ +void atari_microwire_cmd (int cmd);
Quoted 8 lines
arch/m68k/atari/atari.h line 15
Quoted 6 lines
arch/m68k/atari/atari.h new file +6
-0+void atari_mksound (unsigned int hz,unsigned int ticks); + +/* time.c */ +void atari_sched_init (void ); +int atari_mste_hwclk (int op,struct rtc_time *t); +int atari_tt_hwclk (int op,struct rtc_time *t);Wouldn't
atariints.handatarihw.hbe more appropriate places for some of these?
atariints.h already has some prototypes, so yes on that account.
atarihw.h only has inlines, but sound and time related prototypes could be added there, too.
Geert's intentions might have been avoiding inclusion of all the hardware specific data in those two files, but the only source file to benefit from this is config.c (the other three already include atariints.h and atarihw.h).
OTOH, considering this patch series adds a lot of other headers that only contain prototypes, it might be better to keep to that pattern everywhere.
Cheers,
Michael
Re: [PATCH 22/52] m68k: atari: Add and use "atari.h"
Quoted 6 lines · Michael Schmitz
atariints.halready has some prototypes, so yes on that account.
atarihw.honly has inlines, but sound and time related prototypes could be added there, too.
Quoted 9 lines
Geert's intentions might have been avoiding inclusion of all the hardware specific data in those two files, but the only source file to benefit from this is
config.c(the other three already includeatariints.handatarihw.h).OTOH, considering this patch series adds a lot of other headers that only contain prototypes, it might be better to keep to that pattern everywhere.
I think Geert's intention may have been to avoid adding definitions to the asm/foo.h headers shipped with "make headers_install". If that's the intention, there would seem to be a mess to be cleaned up, for which I'm partly to blame...
Geert Uytterhoeven
maintainerRe: [PATCH 22/52] m68k: atari: Add and use "atari.h"
Hi Finn,
Quoted 11 lines · Finn Thain
Quoted 10 lines · Michael Schmitz
atariints.halready has some prototypes, so yes on that account.
atarihw.honly has inlines, but sound and time related prototypes could be added there, too.Geert's intentions might have been avoiding inclusion of all the hardware specific data in those two files, but the only source file to benefit from this is
config.c(the other three already includeatariints.handatarihw.h).
Quoted 8 lines
Quoted 3 lines
OTOH, considering this patch series adds a lot of other headers that only contain prototypes, it might be better to keep to that pattern everywhere.
I think Geert's intention may have been to avoid adding definitions to the
asm/foo.hheaders shipped with "makeheaders_install". If that's the intention, there would seem to be a mess to be cleaned up, for which I'm partly to blame...
arch/m68k/include/asm/ is not shipped, (arch/m68k/include/uapi/asm/ is). However, arch/m68k/include/asm/ is shared with the whole tree, while only the core code under arch/m68k/ needs these definitions.
There is (are) definitely (an) opportunit{y,ies} for moving more stuff around (from <asm/...> to "...", more extern declarations in C files, ...). Not to mention the more substantial rework...
But Linux/m68k^WRome wasn't built in a decade neither... ;-)
And TBH, I also went for the "minimum amount of work" ;-) (which didn't work out that well, yet another rabbit hole, as usual...).
Gr{oetje,eeting}s,
Geert
Signature · 5 lines
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Geert Uytterhoeven
maintainerPATCH 23/52 m68k: apollo: Remove unused debug console functions
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/apollo/config.c:111:5: warning: no previous prototype for ‘dn_serial_console_wait_key’ [-Wmissing-prototypes]
111 | int dn_serial_console_wait_key(struct console *co) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
arch/m68k/apollo/config.c:118:6: warning: no previous prototype for ‘dn_serial_console_write’ [-Wmissing-prototypes]
118 | void dn_serial_console_write (struct console *co, const char *str,unsigned int count)
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/m68k/apollo/config.c:238:6: warning: no previous prototype for ‘dn_dummy_waitbut’ [-Wmissing-prototypes]
240 | void dn_dummy_waitbut(void) {
| ^~~~~~~~~~~~~~~~Fix this by removing these unused functions.
The last user of dn_serial_console_write() was removed in v2.3.41. The other functions never had any users.
--- arch/m68k/apollo/config.c | 28 ---------------------------- 1 file changed, 28 deletions(-)
arch/m68k/apollo/config.c +0 -28
@@ -4,7 +4,6 @@#include <linux/kernel.h> #include <linux/mm.h> #include <linux/tty.h> -#include <linux/console.h> #include <linux/rtc.h> #include <linux/vt_kern.h> #include <linux/interrupt.h>
@@ -108,27 +107,6 @@ static void __init dn_setup_model(void) } -int dn_serial_console_wait_key (struct console *co) { - -while (!(sio01.srb_csrb &1 )) -barrier (); -return sio01.rhrb_thrb; -} - -void dn_serial_console_write (struct console *co,const char *str,unsigned int count) -{ -while (count--) { -if (*str =='\n' ) { - sio01.rhrb_thrb = (unsigned char )'\r' ; -while (!(sio01.srb_csrb &0x4 )) - ; - } - sio01.rhrb_thrb = (unsigned char )*str++; -while (!(sio01.srb_csrb &0x4 )) - ; - } -} -void dn_serial_print (const char *str) {while (*str) {
@@ -237,12 +215,6 @@ void dn_dummy_reset(void) { } -void dn_dummy_waitbut (void ) { - -dn_serial_print ("waitbut\n" ); - -} -static void dn_get_model (char *model) {strcpy (model,"Apollo " );
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 24/52 m68k: apollo: Make local reset, serial, and irq functions static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/apollo/config.c:132:6: warning: no previous prototype for ‘dn_serial_print’ [-Wmissing-prototypes]
110 | void dn_serial_print (const char *str)
| ^~~~~~~~~~~~~~~
arch/m68k/apollo/dn_ints.c:8:14: warning: no previous prototype for ‘apollo_irq_startup’ [-Wmissing-prototypes]
8 | unsigned int apollo_irq_startup(struct irq_data *data)
| ^~~~~~~~~~~~~~~~~~
arch/m68k/apollo/dn_ints.c:19:6: warning: no previous prototype for ‘apollo_irq_shutdown’ [-Wmissing-prototypes]
19 | void apollo_irq_shutdown(struct irq_data *data)
| ^~~~~~~~~~~~~~~~~~~
arch/m68k/apollo/dn_ints.c:29:6: warning: no previous prototype for ‘apollo_irq_eoi’ [-Wmissing-prototypes]
29 | void apollo_irq_eoi(struct irq_data *data)
| ^~~~~~~~~~~~~~
Fix this by making all local functions static.
--- arch/m68k/apollo/config.c | 8 ++++---- arch/m68k/apollo/dn_ints.c | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-)
arch/m68k/apollo/config.c +4 -4
@@ -29,7 +29,7 @@ u_long apollo_model;extern void dn_sched_init (void );extern void dn_init_IRQ (void );extern int dn_dummy_hwclk (int ,struct rtc_time *); -extern void dn_dummy_reset (void ); +static void dn_dummy_reset (void );#ifdef CONFIG_HEARTBEAT static void dn_heartbeat (int on);#endif
@@ -107,7 +107,7 @@ static void __init dn_setup_model(void) } -void dn_serial_print (const char *str) +static void dn_serial_print (const char *str) {while (*str) {if (*str =='\n' ) {
@@ -207,8 +207,8 @@ int dn_dummy_hwclk(int op, struct rtc_time *t) { } -void dn_dummy_reset (void ) { - +static void dn_dummy_reset (void ) +{dn_serial_print ("The end !\n" );for (;;);
arch/m68k/apollo/dn_ints.c +3 -3
@@ -5,7 +5,7 @@#include <asm/traps.h> #include <asm/apollohw.h> -unsigned int apollo_irq_startup (struct irq_data *data) +static unsigned int apollo_irq_startup (struct irq_data *data) {unsigned int irq = data->irq;
@@ -16,7 +16,7 @@ unsigned int apollo_irq_startup(struct irq_data *data)return 0 ; } -void apollo_irq_shutdown (struct irq_data *data) +static void apollo_irq_shutdown (struct irq_data *data) {unsigned int irq = data->irq;
@@ -26,7 +26,7 @@ void apollo_irq_shutdown(struct irq_data *data) *(volatile unsigned char *)(picb+1 ) |= (1 << (irq -8 )); } -void apollo_irq_eoi (struct irq_data *data) +static void apollo_irq_eoi (struct irq_data *data) { *(volatile unsigned char *)(pica) =0x20 ; *(volatile unsigned char *)(picb) =0x20 ;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 25/52 m68k: apollo: Replace set but not used variable by READ_ONCE()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/apollo/config.c: In function ‘dn_timer_int’:
arch/m68k/apollo/config.c:171:32: warning: variable ‘x’ set but not used [-Wunused-but-set-variable]
149 | volatile unsigned char x;
| ^
Fix this by using READ_ONCE(), and removing the variable.
--- arch/m68k/apollo/config.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
arch/m68k/apollo/config.c +2 -4
@@ -146,13 +146,11 @@ void __init config_apollo(void)irqreturn_t dn_timer_int (int irq,void *dev_id) { -volatile unsigned char x; -legacy_timer_tick (1 );timer_heartbeat (); - x = *(volatile unsigned char *)(apollo_timer +3 ); - x = *(volatile unsigned char *)(apollo_timer +5 ); +READ_ONCE (*(volatile unsigned char *)(apollo_timer +3 )); +READ_ONCE (*(volatile unsigned char *)(apollo_timer +5 ));return IRQ_HANDLED ; }
Signature · 1 line
2.34.1
Re: [PATCH 25/52] m68k: apollo: Replace set but not used variable by READ_ONCE()
Quoted 9 lines · Geert Uytterhoeven
arch/m68k/apollo/config.c +0
-2@@ -146,13 +146,11 @@ void __init config_apollo(void)irqreturn_t dn_timer_int (int irq,void *dev_id) { -volatile unsigned char x; -
arch/m68k/apollo/config.c void __init config_apollo(void) · line 156
Quoted 10 lines
arch/m68k/apollo/config.c +2
-2legacy_timer_tick (1 );timer_heartbeat (); - x = *(volatile unsigned char *)(apollo_timer +3 ); - x = *(volatile unsigned char *)(apollo_timer +5 ); +READ_ONCE (*(volatile unsigned char *)(apollo_timer +3 )); +READ_ONCE (*(volatile unsigned char *)(apollo_timer +5 ));return IRQ_HANDLED ; }
I believe the volatile cast is redundant here, as READ_ONCE does that. Perhaps the remaining cast could be deduplicated like so:
- volatile unsigned char x;
+ unsigned char *at = (unsigned char *)apollo_timer;
legacy_timer_tick(1); timer_heartbeat();
- x = *(volatile unsigned char *)(apollo_timer + 3);
- x = *(volatile unsigned char *)(apollo_timer + 5);
+ READ_ONCE(*(at + 3));
+ READ_ONCE(*(at + 5));
Geert Uytterhoeven
maintainerRe: [PATCH 25/52] m68k: apollo: Replace set but not used variable by READ_ONCE()
Hi Finn,
Quoted 17 lines · Finn Thain
Quoted 16 lines · Geert Uytterhoeven
arch/m68k/apollo/config.c +2
-4@@ -146,13 +146,11 @@ void __init config_apollo(void)irqreturn_t dn_timer_int (int irq,void *dev_id) { -volatile unsigned char x; -legacy_timer_tick (1 );timer_heartbeat (); - x = *(volatile unsigned char *)(apollo_timer +3 ); - x = *(volatile unsigned char *)(apollo_timer +5 ); +READ_ONCE (*(volatile unsigned char *)(apollo_timer +3 )); +READ_ONCE (*(volatile unsigned char *)(apollo_timer +5 ));
Quoted 5 lines
arch/m68k/apollo/config.c void __init config_apollo(void) · line 156
Quoted 3 lines
arch/m68k/apollo/config.c +0
-0return IRQ_HANDLED ; }I believe the volatile cast is redundant here, as
READ_ONCEdoes that.
Yes it does. I didn't drop the volatile out of fear of introducing some higher W-level warning about casting away volatility, but upon closer look, the apollo_timer definition itself does not use volatile.
arch/m68k/apollo/config.c void __init config_apollo(void)
Quoted 12 lines
Perhaps the remaining cast could be deduplicated like so:
arch/m68k/apollo/config.c +3
-3-volatile unsigned char x; +unsigned char *at = (unsigned char *)apollo_timer;legacy_timer_tick (1 );timer_heartbeat (); - x = *(volatile unsigned char *)(apollo_timer +3 ); - x = *(volatile unsigned char *)(apollo_timer +5 ); +READ_ONCE (*(at +3 )); +READ_ONCE (*(at +5 ));
Thanks for the suggestion!
Gr{oetje,eeting}s,
Geert
Signature · 5 lines
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Re: [PATCH 25/52] m68k: apollo: Replace set but not used variable by READ_ONCE()
Quoted 25 lines · Geert Uytterhoeven
Quoted 17 lines · Finn Thain
Quoted 16 lines · Geert Uytterhoeven
arch/m68k/apollo/config.c +2
-4@@ -146,13 +146,11 @@ void __init config_apollo(void)irqreturn_t dn_timer_int (int irq,void *dev_id) { -volatile unsigned char x; -legacy_timer_tick (1 );timer_heartbeat (); - x = *(volatile unsigned char *)(apollo_timer +3 ); - x = *(volatile unsigned char *)(apollo_timer +5 ); +READ_ONCE (*(volatile unsigned char *)(apollo_timer +3 )); +READ_ONCE (*(volatile unsigned char *)(apollo_timer +5 ));Quoted 5 lines
arch/m68k/apollo/config.c void __init config_apollo(void) · line 156
Quoted 3 lines
arch/m68k/apollo/config.c +0
-0return IRQ_HANDLED ; }I believe the volatile cast is redundant here, as
READ_ONCEdoes that.
Quoted 3 lines
Yes it does. I didn't drop the volatile out of fear of introducing some higher W-level warning about casting away volatility, but upon closer look, the
apollo_timerdefinition itself does not use volatile.
I think ideally you'd want apollo_timer or IO_BASE to be marked __iomem and passed to readb() instead. OTOH, I don't think anyone actually cares about apollo, so your version is probably good enough.
Arnd
Geert Uytterhoeven
maintainerPATCH 26/52 m68k: apollo: Add and use "apollo.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/apollo/dn_ints.c:43:13: warning: no previous prototype for ‘dn_init_IRQ’ [-Wmissing-prototypes]
43 | void __init dn_init_IRQ(void)
| ^~~~~~~~~~~Fix this by introducing a new header file "apollo.h" for holding the prototypes of functions implemented in arch/m68k/apollo/.
--- arch/m68k/apollo/apollo.h | 4 ++++ arch/m68k/apollo/config.c | 3 ++- arch/m68k/apollo/dn_ints.c | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 arch/m68k/apollo/apollo.h
arch/m68k/apollo/apollo.h new file +4 -0
@@ -0,0 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +/* dn_ints.c */ +void dn_init_IRQ (void );
arch/m68k/apollo/config.c +2 -1
@@ -17,6 +17,8 @@#include <asm/machdep.h> #include <asm/config.h> +#include "apollo.h" +u_long sio01_physaddr;u_long sio23_physaddr;u_long rtc_physaddr;
@@ -27,7 +29,6 @@ u_long timer_physaddr;u_long apollo_model;extern void dn_sched_init (void ); -extern void dn_init_IRQ (void );extern int dn_dummy_hwclk (int ,struct rtc_time *);static void dn_dummy_reset (void );#ifdef CONFIG_HEARTBEAT
arch/m68k/apollo/dn_ints.c +2 -0
@@ -5,6 +5,8 @@#include <asm/traps.h> #include <asm/apollohw.h> +#include "apollo.h" +static unsigned int apollo_irq_startup (struct irq_data *data) {unsigned int irq = data->irq;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 27/52 m68k: bvme6000: Make bvme6000_abort_int() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/bvme6000/config.c:133:13: warning: no previous prototype for ‘bvme6000_abort_int’ [-Wmissing-prototypes]
133 | irqreturn_t bvme6000_abort_int (int irq, void *dev_id)
| ^~~~~~~~~~~~~~~~~~Fix this by making bvme6000_abort_int() static. There was never a user outside arch/m68k/bvme6000/config.c.
--- arch/m68k/bvme6000/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/bvme6000/config.c +1 -1
@@ -130,7 +130,7 @@ void __init config_bvme6000(void) } -irqreturn_t bvme6000_abort_int (int irq,void *dev_id) +static irqreturn_t bvme6000_abort_int (int irq,void *dev_id) {unsigned long *new = (unsigned long *)vectors;unsigned long *old = (unsigned long *)0xf8000000 ;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 28/52 m68k: hp300: Include "time.h" for hp300_sched_init()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/hp300/time.c:101:13: warning: no previous prototype for ‘hp300_sched_init’ [-Wmissing-prototypes]
101 | void __init hp300_sched_init(void)
| ^~~~~~~~~~~~~~~~Fix this by including "time.h".
--- arch/m68k/hp300/time.c | 2 ++ 1 file changed, 2 insertions(+)
arch/m68k/hp300/time.c +2 -0
@@ -20,6 +20,8 @@#include <asm/traps.h> #include <asm/blinken.h> +#include "time.h" +static u64 hp300_read_clk (struct clocksource *cs);static struct clocksource hp300_clk = {
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 29/52 m68k: mac: Remove unused sine_data[]
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mac/macboing.c:29:26: warning: ‘sine_data’ defined but not used [-Wunused-const-variable=]
29 | static const signed char sine_data[] = {
| ^~~~~~~~~The predefined sine table was superseded by a table calculated at run-time in v2.2.0.
--- arch/m68k/mac/macboing.c | 9 --------- 1 file changed, 9 deletions(-)
arch/m68k/mac/macboing.c +0 -9
@@ -22,15 +22,6 @@ static int mac_asc_inited;*/ static __u8 mac_asc_wave_tab[0x800 ]; -/* -* Alan's original sine table; needs interpolating to 0x800 -* (hint: interpolate or hardwire [0 -> Pi/2[, it's symmetric) -*/ -static const signed char sine_data[] = { -0 ,39 ,75 ,103 ,121 ,127 ,121 ,103 ,75 ,39 , -0 ,-39 ,-75 ,-103 ,-121 ,-127 ,-121 ,-103 ,-75 ,-39 -}; -/* * where the ASC hides ... */
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 30/52 m68k: mac: Remove unused yday in unmktime()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mac/misc.c: In function ‘unmktime’:
arch/m68k/mac/misc.c:557:33: warning: variable ‘yday’ set but not used [-Wunused-but-set-variable]
557 | int days, rem, y, wday, yday;
| ^~~~
Fix this by removing the unused variable and assignment.
--- arch/m68k/mac/misc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
arch/m68k/mac/misc.c +1 -2
@@ -554,7 +554,7 @@ static void unmktime(time64_t time, long offset,/* Leap years. */ { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } }; -int days, rem, y, wday, yday; +int days, rem, y, wday;const unsigned short int *ip; days =div_u64_rem (time,SECS_PER_DAY , &rem);
@@ -592,7 +592,6 @@ static void unmktime(time64_t time, long offset, y = yg; } *yearp = y -1900 ; - yday = days;/* day in the year. Not currently used. */ ip = __mon_yday[__isleap (y)];for (y =11 ; days < (long int ) ip[y]; --y)continue ;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 31/52 m68k: mac: Make mac_platform_init() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mac/config.c:961:12: warning: no previous prototype for ‘mac_platform_init’ [-Wmissing-prototypes]
961 | int __init mac_platform_init(void)
| ^~~~~~~~~~~~~~~~~
Fix this by making mac_platform_init() static. There was never a user outside arch/m68k/mac/config.c.
--- arch/m68k/mac/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/mac/config.c +1 -1
@@ -958,7 +958,7 @@ static const struct pata_platform_info mac_pata_data __initconst = { .ioport_shift = 2, }; -int __init mac_platform_init (void ) +static int __init mac_platform_init (void ) {phys_addr_t swim_base =0 ;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 32/52 m68k: mac: Add and use "mac.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mac/iop.c:235:13: warning: no previous prototype for ‘iop_init’ [-Wmissing-prototypes]
235 | void __init iop_init(void)
| ^~~~~~~~
arch/m68k/mac/via.c:112:13: warning: no previous prototype for ‘via_init’ [-Wmissing-prototypes]
111 | void __init via_init(void)
| ^~~~~~~~
arch/m68k/mac/via.c:623:13: warning: no previous prototype for ‘via_init_clock’ [-Wmissing-prototypes]
593 | void __init via_init_clock(void)
| ^~~~~~~~~~~~~~
arch/m68k/mac/oss.c:37:13: warning: no previous prototype for ‘oss_init’ [-Wmissing-prototypes]
37 | void __init oss_init(void)
| ^~~~~~~~
arch/m68k/mac/psc.c:76:13: warning: no previous prototype for ‘psc_init’ [-Wmissing-prototypes]
76 | void __init psc_init(void)
| ^~~~~~~~
arch/m68k/mac/baboon.c:25:13: warning: no previous prototype for ‘baboon_init’ [-Wmissing-prototypes]
25 | void __init baboon_init(void)
| ^~~~~~~~~~~
arch/m68k/mac/macboing.c:155:6: warning: no previous prototype for ‘mac_mksound’ [-Wmissing-prototypes]
155 | void mac_mksound( unsigned int freq, unsigned int length )
| ^~~~~~~~~~~
arch/m68k/mac/misc.c:608:5: warning: no previous prototype for ‘mac_hwclk’ [-Wmissing-prototypes]
608 | int mac_hwclk(int op, struct rtc_time *t)
| ^~~~~~~~~Fix this by introducing a new header file "mac.h" for holding the prototypes of functions implemented in arch/m68k/mac/.
--- arch/m68k/mac/baboon.c | 2 ++ arch/m68k/mac/config.c | 12 ++---------- arch/m68k/mac/iop.c | 2 ++ arch/m68k/mac/mac.h | 25 +++++++++++++++++++++++++ arch/m68k/mac/macboing.c | 2 ++ arch/m68k/mac/misc.c | 2 ++ arch/m68k/mac/oss.c | 2 ++ arch/m68k/mac/psc.c | 2 ++ arch/m68k/mac/via.c | 2 ++ 9 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 arch/m68k/mac/mac.h
arch/m68k/mac/baboon.c +2 -0
@@ -15,6 +15,8 @@#include <asm/macints.h> #include <asm/mac_baboon.h> +#include "mac.h" +int baboon_present;static volatile struct baboon *baboon;
arch/m68k/mac/config.c +2 -10
@@ -50,22 +50,14 @@#include <asm/mac_psc.h> #include <asm/config.h> +#include "mac.h" +/* Mac bootinfo struct */ struct mac_booter_data mac_bi_data;/* The phys. video addr. - might be bogus on some machines */ static unsigned long mac_orig_videoaddr; -extern int mac_hwclk (int ,struct rtc_time *); -extern void iop_init (void ); -extern void via_init (void ); -extern void via_init_clock (void ); -extern void oss_init (void ); -extern void psc_init (void ); -extern void baboon_init (void ); - -extern void mac_mksound (unsigned int ,unsigned int ); -static void mac_get_model (char *str);static void mac_identify (void );static void mac_report_hardware (void );
arch/m68k/mac/iop.c +2 -0
@@ -119,6 +119,8 @@#include <asm/macints.h> #include <asm/mac_iop.h> +#include "mac.h" +#ifdef DEBUG #define iop_pr_debug (fmt, ...) \ printk(KERN_DEBUG "%s: " fmt, __func__, ##__VA_ARGS__)
arch/m68k/mac/mac.h new file +25 -0
@@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +struct rtc_time ; + +/* baboon.c */ +void baboon_init (void ); + +/* iop.c */ +void iop_init (void ); + +/* misc.c */ +int mac_hwclk (int op,struct rtc_time *t); + +/* macboing.c */ +void mac_mksound (unsigned int freq,unsigned int length); + +/* oss.c */ +void oss_init (void ); + +/* psc.c */ +void psc_init (void ); + +/* via.c */ +void via_init (void ); +void via_init_clock (void );
arch/m68k/mac/macboing.c +2 -0
@@ -16,6 +16,8 @@#include <asm/macintosh.h> #include <asm/mac_asc.h> +#include "mac.h" +static int mac_asc_inited;/* * dumb triangular wave table
arch/m68k/mac/misc.c +2 -0
@@ -25,6 +25,8 @@#include <asm/machdep.h> +#include "mac.h" +/* * Offset between Unix time (1970-based) and Mac time (1904-based). Cuda and PMU * times wrap in 2040. If we need to handle later times, the read_time functions
arch/m68k/mac/oss.c +2 -0
@@ -27,6 +27,8 @@#include <asm/mac_via.h> #include <asm/mac_oss.h> +#include "mac.h" +int oss_present;volatile struct mac_oss *oss;
arch/m68k/mac/psc.c +2 -0
@@ -26,6 +26,8 @@#include <asm/macints.h> #include <asm/mac_psc.h> +#include "mac.h" +#define DEBUG_PSC volatile __u8 *psc;
arch/m68k/mac/via.c +2 -0
@@ -38,6 +38,8 @@#include <asm/mac_psc.h> #include <asm/mac_oss.h> +#include "mac.h" +volatile __u8 *via1, *via2;int rbv_present;int via_alt_mapping;
Signature · 1 line
2.34.1
Re: [PATCH 32/52] m68k: mac: Add and use "mac.h"
Quoted 61 lines · Geert Uytterhoeven
arch/m68k/mac/baboon.c +2
-0@@ -15,6 +15,8 @@#include <asm/macints.h> #include <asm/mac_baboon.h> +#include "mac.h" +int baboon_present;static volatile struct baboon *baboon;arch/m68k/mac/config.c +2
-10@@ -50,22 +50,14 @@#include <asm/mac_psc.h> #include <asm/config.h> +#include "mac.h" +/* Mac bootinfo struct */ struct mac_booter_data mac_bi_data;/* The phys. video addr. - might be bogus on some machines */ static unsigned long mac_orig_videoaddr; -extern int mac_hwclk (int ,struct rtc_time *); -extern void iop_init (void ); -extern void via_init (void ); -extern void via_init_clock (void ); -extern void oss_init (void ); -extern void psc_init (void ); -extern void baboon_init (void ); - -extern void mac_mksound (unsigned int ,unsigned int ); -static void mac_get_model (char *str);static void mac_identify (void );static void mac_report_hardware (void );arch/m68k/mac/iop.c +2
-0@@ -119,6 +119,8 @@#include <asm/macints.h> #include <asm/mac_iop.h> +#include "mac.h" +#ifdef DEBUG #define iop_pr_debug (fmt, ...) \ printk(KERN_DEBUG "%s: " fmt, __func__, ##__VA_ARGS__)arch/m68k/mac/mac.h new file +0
-0
arch/m68k/mac/mac.h line 4
Quoted 4 lines
arch/m68k/mac/mac.h new file +4
-0@@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +struct rtc_time ; +
I don't think we need a new header file. Related function prototypes already have homes in existing header files --
arch/m68k/mac/mac.h line 7
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* baboon.c */ +void baboon_init (void ); +
this could go into mac_baboon.h
arch/m68k/mac/mac.h line 10
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* iop.c */ +void iop_init (void ); +
mac_iop.h
arch/m68k/mac/mac.h line 13
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* misc.c */ +int mac_hwclk (int op,struct rtc_time *t); +
macintosh.h
arch/m68k/mac/mac.h line 16
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* macboing.c */ +void mac_mksound (unsigned int freq,unsigned int length); +
mac_asc.h
arch/m68k/mac/mac.h line 19
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* oss.c */ +void oss_init (void ); +
mac_oss.h
arch/m68k/mac/mac.h line 22
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* psc.c */ +void psc_init (void ); +
mac_psc.h
arch/m68k/mac/mac.h line 25
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* via.c */ +void via_init (void ); +void via_init_clock (void );
mac_via.h
Quoted 66 lines
arch/m68k/mac/macboing.c +2
-0@@ -16,6 +16,8 @@#include <asm/macintosh.h> #include <asm/mac_asc.h> +#include "mac.h" +static int mac_asc_inited;/* * dumb triangular wave table arch/m68k/mac/misc.c +2
-0@@ -25,6 +25,8 @@#include <asm/machdep.h> +#include "mac.h" +/* * Offset between Unix time (1970-based) and Mac time (1904-based). Cuda and PMU * times wrap in 2040. If we need to handle later times, the read_time functions arch/m68k/mac/oss.c +2
-0@@ -27,6 +27,8 @@#include <asm/mac_via.h> #include <asm/mac_oss.h> +#include "mac.h" +int oss_present;volatile struct mac_oss *oss;arch/m68k/mac/psc.c +2
-0@@ -26,6 +26,8 @@#include <asm/macints.h> #include <asm/mac_psc.h> +#include "mac.h" +#define DEBUG_PSC volatile __u8 *psc;arch/m68k/mac/via.c +2
-0@@ -38,6 +38,8 @@#include <asm/mac_psc.h> #include <asm/mac_oss.h> +#include "mac.h" +volatile __u8 *via1, *via2;int rbv_present;int via_alt_mapping;
Geert Uytterhoeven
maintainerRe: [PATCH 32/52] m68k: mac: Add and use "mac.h"
Hi Finn,
Quoted 48 lines · Finn Thain
arch/m68k/mac/mac.h line 4
Quoted 7 lines · Geert Uytterhoeven
arch/m68k/mac/mac.h new file +4
-0@@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +struct rtc_time ; +I don't think we need a new header file. Related function prototypes already have homes in existing header files --
arch/m68k/mac/mac.h line 7
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* baboon.c */ +void baboon_init (void ); +this could go into
mac_baboon.harch/m68k/mac/mac.h line 10
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* iop.c */ +void iop_init (void ); +
mac_iop.harch/m68k/mac/mac.h line 13
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* misc.c */ +int mac_hwclk (int op,struct rtc_time *t); +
macintosh.harch/m68k/mac/mac.h line 16
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* macboing.c */ +void mac_mksound (unsigned int freq,unsigned int length); +
mac_asc.harch/m68k/mac/mac.h line 19
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* oss.c */ +void oss_init (void ); +
mac_oss.harch/m68k/mac/mac.h line 22
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* psc.c */ +void psc_init (void ); +
mac_psc.h
Quoted 5 lines
arch/m68k/mac/mac.h line 25
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* via.c */ +void via_init (void ); +void via_init_clock (void );
mac_via.h
All mac*.h you suggest live under arch/m68k/include/asm/, and are thus shared with the whole tree, while only the core code under arch/m68k/ needs these definitions.
Gr{oetje,eeting}s,
Geert
Signature · 5 lines
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Re: [PATCH 32/52] m68k: mac: Add and use "mac.h"
Quoted 55 lines · Geert Uytterhoeven
Quoted 48 lines · Finn Thain
arch/m68k/mac/mac.h line 4
Quoted 7 lines · Geert Uytterhoeven
arch/m68k/mac/mac.h new file +4
-0@@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +struct rtc_time ; +I don't think we need a new header file. Related function prototypes already have homes in existing header files --
arch/m68k/mac/mac.h line 7
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* baboon.c */ +void baboon_init (void ); +this could go into
mac_baboon.harch/m68k/mac/mac.h line 10
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* iop.c */ +void iop_init (void ); +
mac_iop.harch/m68k/mac/mac.h line 13
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* misc.c */ +int mac_hwclk (int op,struct rtc_time *t); +
macintosh.harch/m68k/mac/mac.h line 16
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* macboing.c */ +void mac_mksound (unsigned int freq,unsigned int length); +
mac_asc.harch/m68k/mac/mac.h line 19
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* oss.c */ +void oss_init (void ); +
mac_oss.harch/m68k/mac/mac.h line 22
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* psc.c */ +void psc_init (void ); +
mac_psc.hQuoted 5 lines
arch/m68k/mac/mac.h line 25
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* via.c */ +void via_init (void ); +void via_init_clock (void );
mac_via.h
Quoted 4 lines
All mac*.h you suggest live under
arch/m68k/include/asm/, and are thus shared with the whole tree, while only the core code underarch/m68k/needs these definitions.
I guess #include "../mac/mac.h" is expected but #include "../../m68k/mac/mac.h" is not intended (?)
Geert Uytterhoeven
maintainerRe: [PATCH 32/52] m68k: mac: Add and use "mac.h"
Hi Finn,
Quoted 56 lines · Finn Thain
Quoted 55 lines · Geert Uytterhoeven
Quoted 53 lines · Finn Thain
arch/m68k/mac/mac.h line 4
Quoted 7 lines · Geert Uytterhoeven
arch/m68k/mac/mac.h new file +4
-0@@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +struct rtc_time ; +I don't think we need a new header file. Related function prototypes already have homes in existing header files --
arch/m68k/mac/mac.h line 7
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* baboon.c */ +void baboon_init (void ); +this could go into
mac_baboon.harch/m68k/mac/mac.h line 10
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* iop.c */ +void iop_init (void ); +
mac_iop.harch/m68k/mac/mac.h line 13
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* misc.c */ +int mac_hwclk (int op,struct rtc_time *t); +
macintosh.harch/m68k/mac/mac.h line 16
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* macboing.c */ +void mac_mksound (unsigned int freq,unsigned int length); +
mac_asc.harch/m68k/mac/mac.h line 19
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* oss.c */ +void oss_init (void ); +
mac_oss.harch/m68k/mac/mac.h line 22
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* psc.c */ +void psc_init (void ); +
mac_psc.harch/m68k/mac/mac.h line 25
Quoted 3 lines
arch/m68k/mac/mac.h new file +3
-0+/* via.c */ +void via_init (void ); +void via_init_clock (void );
mac_via.h
Quoted 7 lines
Quoted 4 lines
All mac*.h you suggest live under
arch/m68k/include/asm/, and are thus shared with the whole tree, while only the core code underarch/m68k/needs these definitions.I guess #include "
../mac/mac.h" is expected but #include "../../m68k/mac/mac.h" is not intended (?)
Yes indeed.
Gr{oetje,eeting}s,
Geert
Signature · 5 lines
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Geert Uytterhoeven
maintainerPATCH 33/52 m68k: mvme147: Make mvme147_init_IRQ() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mvme147/config.c:76:13: warning: no previous prototype for ‘mvme147_init_IRQ’ [-Wmissing-prototypes]
76 | void __init mvme147_init_IRQ(void)
| ^~~~~~~~~~~~~~~~Fix this by making mvme147_init_IRQ() static.
The function body was moved to arch/m68k/mvme147/config.c in v2.6.18.
--- arch/m68k/mvme147/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/mvme147/config.c +1 -1
@@ -73,7 +73,7 @@ static void mvme147_get_model(char *model)* the mvme147 IRQ handling routines. */ -void __init mvme147_init_IRQ (void ) +static void __init mvme147_init_IRQ (void ) {m68k_setup_user_interrupt (VEC_USER ,192 ); }
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 34/52 m68k: mvme16x: Remove unused sink in mvme16x_cons_write()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mvme16x/config.c: In function ‘mvme16x_cons_write’:
arch/m68k/mvme16x/config.c:211:25: warning: variable ‘sink’ set but not used [-Wunused-but-set-variable]
211 | volatile u_char sink;
| ^~~~
Fix this by removing the unused variable and assignment.
--- arch/m68k/mvme16x/config.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
arch/m68k/mvme16x/config.c +1 -2
@@ -208,7 +208,6 @@ static void __init mvme16x_init_IRQ (void)void mvme16x_cons_write (struct console *co,const char *str,unsigned count) {volatile unsigned char *base_addr = (u_char *)CD2401_ADDR ; -volatile u_char sink;u_char ier;int port;u_char do_lf =0 ;
@@ -229,7 +228,7 @@ void mvme16x_cons_write(struct console *co, const char *str, unsigned count)if (in_8 (PCCSCCTICR ) &0x20 ) {/* We have a Tx int. Acknowledge it */ - sink =in_8 (PCCTPIACKR ); +in_8 (PCCTPIACKR );if ((base_addr[CyLICR] >>2 ) == port) {if (i == count) {/* Last char of string is now output */
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 35/52 m68k: mvme16x: Add and use "mvme16x.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/mvme16x/config.c:208:6: warning: no previous prototype for ‘mvme16x_cons_write’ [-Wmissing-prototypes]
208 | void mvme16x_cons_write(struct console *co, const char *str, unsigned count)
| ^~~~~~~~~~~~~~~~~~
Fix this by introducing a new header file "mvme16x.h" for holding the prototypes of functions implemented in arch/m68k/mvme16x/.
--- arch/m68k/kernel/early_printk.c | 4 ++-- arch/m68k/mvme16x/config.c | 2 ++ arch/m68k/mvme16x/mvme16x.h | 6 ++++++ 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 arch/m68k/mvme16x/mvme16x.h
arch/m68k/kernel/early_printk.c +2 -2
@@ -12,8 +12,8 @@#include <linux/string.h> #include <asm/setup.h> -extern void mvme16x_cons_write (struct console *co, -const char *str,unsigned count); + +#include "../mvme16x/mvme16x.h" asmlinkage void __init debug_cons_nputs(const char *s, unsigned n);
arch/m68k/mvme16x/config.c +2 -0
@@ -38,6 +38,8 @@#include <asm/mvme16xhw.h> #include <asm/config.h> +#include "mvme16x.h" +extern t_bdid mvme_bdid;static MK48T08ptr_t volatile rtc = (MK48T08ptr_t )MVME_RTC_BASE ;
arch/m68k/mvme16x/mvme16x.h new file +6 -0
@@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +struct console ; + +/* config.c */ +void mvme16x_cons_write (struct console *co,const char *str,unsigned count);
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 36/52 m68k: q40: Add and use "q40.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/q40/q40ints.c:84:13: warning: no previous prototype for ‘q40_init_IRQ’ [-Wmissing-prototypes]
84 | void __init q40_init_IRQ(void)
| ^~~~~~~~~~~~
arch/m68k/q40/q40ints.c:112:6: warning: no previous prototype for ‘q40_mksound’ [-Wmissing-prototypes]
112 | void q40_mksound(unsigned int hz, unsigned int ticks)
| ^~~~~~~~~~~
arch/m68k/q40/q40ints.c:152:6: warning: no previous prototype for ‘q40_sched_init’ [-Wmissing-prototypes]
152 | void q40_sched_init (void)
| ^~~~~~~~~~~~~~Fix this by introducing a new header file "q40.h" for holding the prototypes of functions implemented in arch/m68k/q40/.
--- arch/m68k/q40/config.c | 6 ++---- arch/m68k/q40/q40.h | 6 ++++++ arch/m68k/q40/q40ints.c | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 arch/m68k/q40/q40.h
arch/m68k/q40/config.c +2 -4
@@ -36,16 +36,14 @@#include <asm/q40_master.h> #include <asm/config.h> -extern void q40_init_IRQ (void ); +#include "q40.h" +static void q40_get_model (char *model); -extern void q40_sched_init (void );static int q40_hwclk (int ,struct rtc_time *);static int q40_get_rtc_pll (struct rtc_pll_info *pll);static int q40_set_rtc_pll (struct rtc_pll_info *pll); -extern void q40_mksound (unsigned int /*freq*/ ,unsigned int /*ticks*/ ); -static void q40_mem_console_write (struct console *co,const char *b,unsigned int count);
arch/m68k/q40/q40.h new file +6 -0
@@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +/* q40ints.c */ +void q40_init_IRQ (void ); +void q40_mksound (unsigned int hz,unsigned int ticks); +void q40_sched_init (void );
arch/m68k/q40/q40ints.c +2 -0
@@ -24,6 +24,8 @@#include <asm/q40_master.h> #include <asm/q40ints.h> +#include "q40.h" +/* * Q40 IRQs are defined as follows: * 3,4,5,6,7,10,11,14,15 : ISA dev IRQs
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 37/52 m68k: sun3/3x: Include <asm/config.h> for config_sun3*()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/config.c:123:13: warning: no previous prototype for ‘config_sun3’ [-Wmissing-prototypes]
126 | void __init config_sun3(void)
| ^~~~~~~~~~~
arch/m68k/sun3x/config.c:42:13: warning: no previous prototype for ‘config_sun3x’ [-Wmissing-prototypes]
42 | void __init config_sun3x(void)
| ^~~~~~~~~~~~Fix this by including <asm/config.h>
--- arch/m68k/sun3/config.c | 1 + arch/m68k/sun3x/config.c | 1 + 2 files changed, 2 insertions(+)
arch/m68k/sun3/config.c +1 -0
@@ -32,6 +32,7 @@#include <asm/irq.h> #include <asm/sections.h> #include <asm/sun3ints.h> +#include <asm/config.h> char sun3_reserved_pmeg[SUN3_PMEGS_NUM ];
arch/m68k/sun3x/config.c +1 -0
@@ -19,6 +19,7 @@#include <asm/sun3ints.h> #include <asm/setup.h> #include <asm/oplib.h> +#include <asm/config.h> #include "time.h"
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 38/52 m68k: sun3: Improve Sun3/3x DVMA abstraction in <asm/dvma.h>
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/dvma.c:65:13: warning: no previous prototype for ‘sun3_dvma_init’ [-Wmissing-prototypes]
65 | void __init sun3_dvma_init(void)
| ^~~~~~~~~~~~~~
arch/m68k/sun3x/dvma.c:178:6: warning: no previous prototype for ‘dvma_unmap_iommu’ [-Wmissing-prototypes]
179 | void dvma_unmap_iommu(unsigned long baddr, int len)
| ^~~~~~~~~~~~~~~~
Fix this by moving the declarations for sun3_dvma_init() and dvma_unmap_iommu() to <asm/dvma.h>. Avoid #ifdefs in callers by providing dummy static inline functions.
--- arch/m68k/include/asm/dvma.h | 8 +++++++- arch/m68k/sun3/sun3dvma.c | 15 --------------- 2 files changed, 7 insertions(+), 16 deletions(-)
arch/m68k/include/asm/dvma.h +7 -1
@@ -58,12 +58,16 @@ extern void dvma_free(void *vaddr);#define dvma_vtob (x) dvma_vtop(x)#define dvma_btov (x) dvma_ptov(x) +void sun3_dvma_init (void ); +static inline int dvma_map_cpu (unsigned long kaddr,unsigned long vaddr,int len) {return 0 ; } +static inline void dvma_unmap_iommu (unsigned long baddr,int len) { } +#else /* Sun3x */ /* sun3x dvma page support */
@@ -78,9 +82,11 @@ static inline int dvma_map_cpu(unsigned long kaddr, unsigned long vaddr,#define dvma_vtob (x) ((unsigned long)(x) & 0x00ffffff)#define dvma_btov (x) ((unsigned long)(x) | 0xff000000) -extern int dvma_map_cpu (unsigned long kaddr,unsigned long vaddr,int len); +static inline void sun3_dvma_init (void ) { } +int dvma_map_cpu (unsigned long kaddr,unsigned long vaddr,int len); +void dvma_unmap_iommu (unsigned long baddr,int len);/* everything below this line is specific to dma used for the onboard ESP scsi on sun3x */
arch/m68k/sun3/sun3dvma.c +0 -15
@@ -20,18 +20,6 @@#undef DVMA_DEBUG -#ifdef CONFIG_SUN3X -extern void dvma_unmap_iommu (unsigned long baddr,int len); -#else -static inline void dvma_unmap_iommu (unsigned long a,int b) -{ -} -#endif - -#ifdef CONFIG_SUN3 -extern void sun3_dvma_init (void ); -#endif -static unsigned long *iommu_use;#define dvma_index (baddr) ((baddr - DVMA_START) >> DVMA_PAGE_SHIFT)
@@ -274,10 +262,7 @@ void __init dvma_init(void)dvma_unmap_iommu (DVMA_START ,DVMA_SIZE ); -#ifdef CONFIG_SUN3 sun3_dvma_init (); -#endif - }unsigned long dvma_map_align (unsigned long kaddr,int len,int align)
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 39/52 m68k: sun3: Fix context restore in flush_tlb_range()
In reply to Geert UytterhoevenWhen building with W=1:
In file included from arch/m68k/kernel/traps.c:42:
arch/m68k/include/asm/tlbflush.h: In function ‘flush_tlb_range’:
arch/m68k/include/asm/tlbflush.h:191:28: warning: variable ‘oldctx’ set but not used [-Wunused-but-set-variable]
191 | unsigned char seg, oldctx;
| ^~~~~~
Indeed, the old context is saved, but never restored. Fix this by adding the missing call to sun3_put_context().
---
Compile-tested only.
This issue seems to have been present since the introduction of Sun3 support in v2.4.0.
--- arch/m68k/include/asm/tlbflush.h | 1 + 1 file changed, 1 insertion(+)
arch/m68k/include/asm/tlbflush.h +1 -0
@@ -208,6 +208,7 @@ static inline void flush_tlb_range (struct vm_area_struct *vma, next: start +=SUN3_PMEG_SIZE ; } +sun3_put_context (oldctx); }static inline void flush_tlb_kernel_range (unsigned long start,unsigned long end)
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 40/52 m68k: sun3: Fix signature of sun3_get_model()
In reply to Geert UytterhoevenThe mach_get_model() callback takes a "char *", not an "unsigned char *".
--- arch/m68k/sun3/idprom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/sun3/idprom.c +1 -1
@@ -83,7 +83,7 @@ static void __init display_system_type(unsigned char machtype)prom_halt (); } -void sun3_get_model (unsigned char * model) +void sun3_get_model (char *model) { registerint i;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 41/52 m68k: sun3: Add missing asmlinkage to sun3_init()
In reply to Geert Uytterhoevensun3_init() is called from assembly code, so it should be marked asmlinkage for documentation purposes.
--- arch/m68k/sun3/config.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
arch/m68k/sun3/config.c +2 -1
@@ -17,6 +17,7 @@#include <linux/init.h> #include <linux/memblock.h> #include <linux/platform_device.h> +#include <linux/linkage.h> #include <asm/oplib.h> #include <asm/setup.h>
@@ -49,7 +50,7 @@ static void sun3_get_hardware_list(struct seq_file *m)seq_printf (m,"PROM Revision:\t%s\n" , romvec->pv_monid); } -void __init sun3_init (void ) +asmlinkage void __init sun3_init(void) {unsigned char enable_register;int i;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 42/52 m68k: sun3: Remove unused orig_baddr in free_baddr()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/sun3dvma.c: In function ‘free_baddr’:
arch/m68k/sun3/sun3dvma.c:208:23: warning: variable ‘orig_baddr’ set but not used [-Wunused-but-set-variable]
196 | unsigned long orig_baddr;
| ^~~~~~~~~~
Fix this by removing the unused variable and assignment, which were futile since their introduction in v2.4.5.2.
--- arch/m68k/sun3/sun3dvma.c | 2 -- 1 file changed, 2 deletions(-)
arch/m68k/sun3/sun3dvma.c +0 -2
@@ -193,9 +193,7 @@ static inline int free_baddr(unsigned long baddr)unsigned long len;struct hole *hole;struct list_head *cur; -unsigned long orig_baddr; - orig_baddr = baddr; len =dvma_entry_use (baddr);dvma_entry_use (baddr) =0 ; baddr &=DVMA_PAGE_MASK ;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 43/52 m68k: sun3: Remove unused start_page in sun3_bootmem_alloc()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/config.c: In function ‘sun3_bootmem_alloc’:
arch/m68k/sun3/config.c:110:23: warning: variable ‘start_page’ set but not used [-Wunused-but-set-variable]
112 | unsigned long start_page;
| ^~~~~~~~~~
Fix this by removing the variable and the assignment, now the last user is gone.
--- arch/m68k/sun3/config.c | 3 --- 1 file changed, 3 deletions(-)
arch/m68k/sun3/config.c +0 -3
@@ -109,13 +109,10 @@ static void sun3_halt (void)static void __init sun3_bootmem_alloc (unsigned long memory_start,unsigned long memory_end) { -unsigned long start_page; -/* align start/end to page boundaries */ memory_start = ((memory_start + (PAGE_SIZE -1 )) &PAGE_MASK ); memory_end = memory_end &PAGE_MASK ; - start_page =__pa (memory_start) >>PAGE_SHIFT ; max_pfn = num_pages =__pa (memory_end) >>PAGE_SHIFT ; high_memory = (void *)memory_end;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 44/52 m68k: sun3: Remove unused vsprintf() return value in prom_printf()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/prom/printf.c: In function ‘prom_printf’:
arch/m68k/sun3/prom/printf.c:28:13: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]
28 | int i;
| ^
As the return value of vsprintf() is unused, and serves no practical purpose here, fix this by removing the variable.
--- arch/m68k/sun3/prom/printf.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
arch/m68k/sun3/prom/printf.c +2 -3
@@ -25,15 +25,14 @@ prom_printf(char *fmt, ...) {va_list args;char ch, *bptr; -int i;va_start (args, fmt);#ifdef CONFIG_KGDB ppbuf[0 ] ='O' ; - i =vsprintf (ppbuf +1 , fmt, args) +1 ; +vsprintf (ppbuf +1 , fmt, args) +1 ;#else - i =vsprintf (ppbuf, fmt, args); +vsprintf (ppbuf, fmt, args);#endif bptr = ppbuf;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 45/52 m68k: sun3: Annotate prom_printf() with __printf()
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/prom/printf.c: In function ‘prom_printf’:
arch/m68k/sun3/prom/printf.c:35:9: warning: function ‘prom_printf’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
35 | vsprintf(ppbuf, fmt, args);
| ^~~~~~~~
Fix this by annotating prom_printf() with __printf(1, 2).
--- arch/m68k/include/asm/oplib.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
arch/m68k/include/asm/oplib.h +3 -1
@@ -9,6 +9,8 @@#ifndef __SPARC_OPLIB_H#define __SPARC_OPLIB_H +#include <linux/compiler.h> +#include <asm/openprom.h> /* The master romvec pointer... */
@@ -149,7 +151,7 @@ extern char prom_getchar(void);extern void prom_putchar (char character);/* Prom's internal printf routine, don't use in kernel/boot code. */ -void prom_printf (char *fmt, ...); +__printf(1, 2) void prom_printf(char *fmt, ...);/* Query for input device type */
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 46/52 m68k: sun3: Make print_pte() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/mmu_emu.c:70:6: warning: no previous prototype for ‘print_pte’ [-Wmissing-prototypes]
70 | void print_pte (pte_t pte)
| ^~~~~~~~~
Fix this by making print_pte() static.
There was never a user outside arch/m68k/sun3/mmu_emu.c.
--- arch/m68k/sun3/mmu_emu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/sun3/mmu_emu.c +1 -1
@@ -67,7 +67,7 @@ static unsigned char ctx_avail = CONTEXTS_NUM-1;unsigned long rom_pages[256 ];/* Print a PTE value in symbolic form. For debugging. */ -void print_pte (pte_t pte) +static void print_pte (pte_t pte) {#if 0 /* Verbose version. */
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 47/52 m68k: sun3: Make sun3_platform_init() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/config.c:201:12: warning: no previous prototype for ‘sun3_platform_init’ [-Wmissing-prototypes]
202 | int __init sun3_platform_init(void)
| ^~~~~~~~~~~~~~~~~~Fix this by making sun3_platform_init() static. There was never a user outside arch/m68k/sun3/config.c.
--- arch/m68k/sun3/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/sun3/config.c +1 -1
@@ -199,7 +199,7 @@ static const struct resource sun3_scsi_rsrc[] __initconst = { }, }; -int __init sun3_platform_init (void ) +static int __init sun3_platform_init (void ) {switch (idprom->id_machtype) {case SM_SUN3 |SM_3_160 :
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 48/52 m68k: sun3x: Fix signature of sun3_leds()
In reply to Geert UytterhoevenThe sun3_leds() implementation for Sun3 in arch/m68k/sun3/leds.c, and the prototype in arch/m68k/sun3/sun3ints.c take an "unsigned char", not an "int". Align the dummy implementation for Sun3x with the Sun3 variant and the common caller.
--- arch/m68k/sun3x/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/sun3x/config.c +1 -1
@@ -27,7 +27,7 @@ volatile char *clock_va;extern void sun3_get_model (char *model); -void sun3_leds (unsigned int i) +void sun3_leds (unsigned char byte) { }
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 49/52 m68k: sun3x: Do not mark dvma_map_iommu() inline
In reply to Geert Uytterhoevendvma_map_iommu() is called from the common Sun3/3x DVMA management code, but never from inside arch/m68k/sun3x/dvma.c. Hence it does not make sense to mark it inline.
--- arch/m68k/sun3x/dvma.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
arch/m68k/sun3x/dvma.c +1 -2
@@ -143,8 +143,7 @@ inline int dvma_map_cpu(unsigned long kaddr, } -inline int dvma_map_iommu (unsigned long kaddr,unsigned long baddr, -int len) +int dvma_map_iommu (unsigned long kaddr,unsigned long baddr,int len) {unsigned long end, index;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 50/52 m68k: sun3x: Make sun3x_halt() static
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3x/prom.c:33:6: warning: no previous prototype for ‘sun3x_halt’ [-Wmissing-prototypes]
33 | void sun3x_halt(void)
| ^~~~~~~~~~Fix this by making sun3x_halt() static.
The function body was moved to arch/m68k/sun3x/prom.c in v2.4.5.2.
--- arch/m68k/sun3x/prom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/sun3x/prom.c +1 -1
@@ -30,7 +30,7 @@ struct linux_romvec *romvec;e_vector *sun3x_prom_vbr;/* Handle returning to the prom */ -void sun3x_halt (void ) +static void sun3x_halt (void ) {unsigned long flags;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 51/52 m68k: sun3x: Make dvma_print() static
In reply to Geert UytterhoevenThere was never a user of dvma_print() outside arch/m68k/sun3x/dvma.c.
--- arch/m68k/sun3x/dvma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/m68k/sun3x/dvma.c +1 -1
@@ -60,7 +60,7 @@ static volatile unsigned long *iommu_pte = (unsigned long *)SUN3X_IOMMU;#ifdef DEBUG /* code to print out a dvma mapping for debugging purposes */ -void dvma_print (unsigned long dvma_addr) +static void dvma_print (unsigned long dvma_addr) {unsigned long index;
Signature · 1 line
2.34.1
Geert Uytterhoeven
maintainerPATCH 52/52 m68k: sun3/3x: Add and use "sun3.h"
In reply to Geert UytterhoevenWhen building with W=1:
arch/m68k/sun3/idprom.c:86:6: warning: no previous prototype for ‘sun3_get_model’ [-Wmissing-prototypes]
86 | void sun3_get_model(char *model)
| ^~~~~~~~~~~~~~
arch/m68k/sun3/config.c:53:24: warning: no previous prototype for ‘sun3_init’ [-Wmissing-prototypes]
53 | asmlinkage void __init sun3_init(void)
| ^~~~~~~~~
arch/m68k/sun3/mmu_emu.c:117:6: warning: no previous prototype for ‘print_pte_vaddr’ [-Wmissing-prototypes]
117 | void print_pte_vaddr (unsigned long vaddr)
| ^~~~~~~~~~~~~~~
arch/m68k/sun3/mmu_emu.c:126:13: warning: no previous prototype for ‘mmu_emu_init’ [-Wmissing-prototypes]
126 | void __init mmu_emu_init(unsigned long bootmem_end)
| ^~~~~~~~~~~~
arch/m68k/sun3/mmu_emu.c:353:5: warning: no previous prototype for ‘mmu_emu_handle_fault’ [-Wmissing-prototypes]
353 | int mmu_emu_handle_fault (unsigned long vaddr, int read_flag, int kernel_fault)
| ^~~~~~~~~~~~~~~~~~~~
arch/m68k/sun3/leds.c:6:6: warning: no previous prototype for ‘sun3_leds’ [-Wmissing-prototypes]
6 | void sun3_leds(unsigned char byte)
| ^~~~~~~~~
arch/m68k/sun3/intersil.c:27:5: warning: no previous prototype for ‘sun3_hwclk’ [-Wmissing-prototypes]
27 | int sun3_hwclk(int set, struct rtc_time *t)
| ^~~~~~~~~~
arch/m68k/sun3x/config.c:30:6: warning: no previous prototype for ‘sun3_leds’ [-Wmissing-prototypes]
30 | void sun3_leds(unsigned char byte)
| ^~~~~~~~~
Fix this by introducing a new header file "sun3.h" for holding the prototypes of functions implemented in arch/m68k/sun3/ and arch/m68k/sun3x/.
--- arch/m68k/kernel/traps.c | 2 +- arch/m68k/mm/sun3kmap.c | 6 ++---- arch/m68k/mm/sun3mmu.c | 2 +- arch/m68k/sun3/config.c | 4 ++-- arch/m68k/sun3/idprom.c | 2 ++ arch/m68k/sun3/intersil.c | 1 + arch/m68k/sun3/leds.c | 2 ++ arch/m68k/sun3/mmu_emu.c | 1 + arch/m68k/sun3/sun3.h | 22 ++++++++++++++++++++++ arch/m68k/sun3/sun3ints.c | 2 +- arch/m68k/sun3x/config.c | 3 +-- 11 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 arch/m68k/sun3/sun3.h
arch/m68k/kernel/traps.c +1 -1
@@ -364,7 +364,7 @@ static inline void access_error040(struct frame *fp)#if defined(CONFIG_SUN3 )#include <asm/sun3mmu.h> -extern int mmu_emu_handle_fault (unsigned long ,int ,int ); +#include "../sun3/sun3.h" /* sun3 version of bus_error030 */
arch/m68k/mm/sun3kmap.c +2 -4
@@ -18,11 +18,9 @@#include <asm/io.h> #include <asm/sun3mmu.h> -#undef SUN3_KMAP_DEBUG +#include "../sun3/sun3.h" -#ifdef SUN3_KMAP_DEBUG -extern void print_pte_vaddr (unsigned long vaddr); -#endif +#undef SUN3_KMAP_DEBUGextern void mmu_emu_map_pmeg (int context,int vaddr);
arch/m68k/mm/sun3mmu.c +1 -1
@@ -24,7 +24,7 @@#include <asm/machdep.h> #include <asm/io.h> -extern void mmu_emu_init (unsigned long bootmem_end); +#include "../sun3/sun3.h" const char bad_pmd_string[] ="Bad pmd in pte_alloc: %08lx\n" ;
arch/m68k/sun3/config.c +2 -2
@@ -35,11 +35,11 @@#include <asm/sun3ints.h> #include <asm/config.h> +#include "sun3.h" +char sun3_reserved_pmeg[SUN3_PMEGS_NUM ];static void sun3_sched_init (void ); -extern void sun3_get_model (char * model); -extern int sun3_hwclk (int set,struct rtc_time *t);volatile char * clock_va;extern unsigned long availmem;
arch/m68k/sun3/idprom.c +2 -0
@@ -17,6 +17,8 @@#include <asm/idprom.h> #include <asm/machines.h> /* Fun with Sun released architectures. */ +#include "sun3.h" +struct idprom *idprom;EXPORT_SYMBOL (idprom);
arch/m68k/sun3/intersil.c +1 -0
@@ -17,6 +17,7 @@#include <asm/intersil.h> #include <asm/machdep.h> +#include "sun3.h" /* bits to set for start/run of the intersil */ #define STOP_VAL (INTERSIL_STOP | INTERSIL_INT_ENABLE | INTERSIL_24H_MODE)
arch/m68k/sun3/leds.c +2 -0
@@ -3,6 +3,8 @@#include <asm/sun3mmu.h> #include <asm/io.h> +#include "sun3.h" +void sun3_leds (unsigned char byte) {unsigned char dfc;
arch/m68k/sun3/mmu_emu.c +1 -0
@@ -27,6 +27,7 @@#include <asm/mmu_context.h> #include <asm/dvma.h> +#include "sun3.h" #undef DEBUG_MMU_EMU#define DEBUG_PROM_MAPS
arch/m68k/sun3/sun3.h new file +22 -0
@@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#include <linux/linkage.h> + +struct rtc_time ; + +/* config.c */ +asmlinkage void sun3_init(void); + +/* idprom.c */ +void sun3_get_model (char *model); + +/* intersil.c */ +int sun3_hwclk (int set,struct rtc_time *t); + +/* leds.c */ +void sun3_leds (unsigned char byte); + +/* mmu_emu.c */ +void mmu_emu_init (unsigned long bootmem_end); +int mmu_emu_handle_fault (unsigned long vaddr,int read_flag,int kernel_fault); +void print_pte_vaddr (unsigned long vaddr);
arch/m68k/sun3/sun3ints.c +1 -1
@@ -17,7 +17,7 @@#include <asm/irq_regs.h> #include <linux/seq_file.h> -extern void sun3_leds (unsigned char ); +#include "sun3.h" void sun3_disable_interrupts (void ) {
arch/m68k/sun3x/config.c +1 -2
@@ -22,11 +22,10 @@#include <asm/config.h> #include "time.h" +#include "../sun3/sun3.h" volatile char *clock_va; -extern void sun3_get_model (char *model); -void sun3_leds (unsigned char byte) {
Signature · 1 line
2.34.1
Quoted 14 lines · Geert Uytterhoeven
Hi all,
This patch series addresses the remaining (after [1]) warnings seen when building
arch/m68k/with W=1. Perhaps surprisingly, this work has identified and fixes a genuine bug in the Sun-3 TLB handling (see [PATCH 39/52]).Most of the patches in these series are fairly trivial changes with a very low risk of introducing any regressions. For the less trivial patches, I did look at the assembler output before and after. As Arnd is working actively on enabling W=1 rather sooner than later, and if no one objects, I plan to rebase [1] and this series after the release of v6.6-rc1, and send it as a fixes pull request to Linus.
Quoted 7 lines
Note that this series does not address warnings on Coldfire or MMU-less systems.
Thanks for your comments!
[1] "[PATCH 0/6] m68k: math-emu: Miscellaneous esthetical improvements"
https://lore.kernel.org/r/[email protected]
Thanks a lot for doing these, looks all good to me. I sent two minor comments, but those patches are still ok.