Message ID | 20191018080841.26712-5-paul.walmsley@sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | riscv: resolve most warnings from sparse | expand |
On Fri, Oct 18, 2019 at 01:08:37AM -0700, Paul Walmsley wrote: > > diff --git a/arch/riscv/include/asm/irq.h b/arch/riscv/include/asm/irq.h > index 75576424c0f7..589e2d9fb2a6 100644 > --- a/arch/riscv/include/asm/irq.h > +++ b/arch/riscv/include/asm/irq.h > @@ -12,6 +12,9 @@ > void riscv_timer_interrupt(void); > void riscv_software_interrupt(void); > > +asmlinkage void do_IRQ(struct pt_regs *regs); This is another __visible candidate. > +void __init init_IRQ(void); This one is called by the core kernel. Please instead lift the extern in init/main.c to include/linux/irq.h or some other suitable header insted of working around the issue in arch code. > index f539149d04c2..ab56435de629 100644 > --- a/arch/riscv/include/asm/processor.h > +++ b/arch/riscv/include/asm/processor.h > @@ -78,6 +78,10 @@ int riscv_of_processor_hartid(struct device_node *node); > > extern void riscv_fill_hwcap(void); > > +extern const struct seq_operations cpuinfo_op; Another generic issue, Ben Dooks has started looking into it already. > + > +void time_init(void); And another one that needs to be solved globally and not worked around in the architecture. > diff --git a/arch/riscv/include/asm/ptrace.h b/arch/riscv/include/asm/ptrace.h > index d48d1e13973c..c851c095b674 100644 > --- a/arch/riscv/include/asm/ptrace.h > +++ b/arch/riscv/include/asm/ptrace.h > @@ -101,6 +101,8 @@ static inline unsigned long regs_return_value(struct pt_regs *regs) > return regs->a0; > } > > +void show_regs(struct pt_regs *regs); Again, this needs to go into a common header, no arch code. > + > #endif /* __ASSEMBLY__ */ > > #endif /* _ASM_RISCV_PTRACE_H */ > diff --git a/arch/riscv/include/asm/smp.h b/arch/riscv/include/asm/smp.h > index a83451d73a4e..d19dd2e2e1da 100644 > --- a/arch/riscv/include/asm/smp.h > +++ b/arch/riscv/include/asm/smp.h > @@ -15,6 +15,8 @@ > struct seq_file; > extern unsigned long boot_cpu_hartid; > > +asmlinkage void __init smp_callin(void); One more __visible candidate.
diff --git a/arch/riscv/include/asm/irq.h b/arch/riscv/include/asm/irq.h index 75576424c0f7..589e2d9fb2a6 100644 --- a/arch/riscv/include/asm/irq.h +++ b/arch/riscv/include/asm/irq.h @@ -12,6 +12,9 @@ void riscv_timer_interrupt(void); void riscv_software_interrupt(void); +asmlinkage void do_IRQ(struct pt_regs *regs); +void __init init_IRQ(void); + #include <asm-generic/irq.h> #endif /* _ASM_RISCV_IRQ_H */ diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index 42292d99cc74..7fc5e4a56715 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -61,6 +61,8 @@ #define PAGE_TABLE __pgprot(_PAGE_TABLE) +extern pgd_t trampoline_pg_dir[]; +extern pgd_t early_pg_dir[]; extern pgd_t swapper_pg_dir[]; /* MAP_PRIVATE permissions: xwr (copy-on-write) */ diff --git a/arch/riscv/include/asm/processor.h b/arch/riscv/include/asm/processor.h index f539149d04c2..ab56435de629 100644 --- a/arch/riscv/include/asm/processor.h +++ b/arch/riscv/include/asm/processor.h @@ -78,6 +78,10 @@ int riscv_of_processor_hartid(struct device_node *node); extern void riscv_fill_hwcap(void); +extern const struct seq_operations cpuinfo_op; + +void time_init(void); + #endif /* __ASSEMBLY__ */ #endif /* _ASM_RISCV_PROCESSOR_H */ diff --git a/arch/riscv/include/asm/ptrace.h b/arch/riscv/include/asm/ptrace.h index d48d1e13973c..c851c095b674 100644 --- a/arch/riscv/include/asm/ptrace.h +++ b/arch/riscv/include/asm/ptrace.h @@ -101,6 +101,8 @@ static inline unsigned long regs_return_value(struct pt_regs *regs) return regs->a0; } +void show_regs(struct pt_regs *regs); + #endif /* __ASSEMBLY__ */ #endif /* _ASM_RISCV_PTRACE_H */ diff --git a/arch/riscv/include/asm/smp.h b/arch/riscv/include/asm/smp.h index a83451d73a4e..d19dd2e2e1da 100644 --- a/arch/riscv/include/asm/smp.h +++ b/arch/riscv/include/asm/smp.h @@ -15,6 +15,8 @@ struct seq_file; extern unsigned long boot_cpu_hartid; +asmlinkage void __init smp_callin(void); + #ifdef CONFIG_SMP /* * Mapping between linux logical cpu index and hartid.
sparse identifies these missing prototypes when building arch/riscv: arch/riscv/kernel/cpu.c:149:29: warning: symbol 'cpuinfo_op' was not declared. Should it be static? arch/riscv/kernel/irq.c:27:29: warning: symbol 'do_IRQ' was not declared. Should it be static? arch/riscv/kernel/irq.c:57:13: warning: symbol 'init_IRQ' was not declared. Should it be static? arch/riscv/kernel/syscall_table.c:15:6: warning: symbol 'sys_call_table' was not declared. Should it be static? arch/riscv/kernel/time.c:15:13: warning: symbol 'time_init' was not declared. Should it be static? arch/riscv/kernel/smpboot.c:135:24: warning: symbol 'smp_callin' was not declared. Should it be static? arch/riscv/kernel/smp.c:72:5: warning: symbol 'setup_profiling_timer' was not declared. Should it be static? arch/riscv/mm/init.c:151:7: warning: symbol 'trampoline_pg_dir' was not declared. Should it be static? arch/riscv/mm/init.c:157:7: warning: symbol 'early_pg_dir' was not declared. Should it be static? arch/riscv/kernel/process.c:32:6: warning: symbol 'show_regs' was not declared. Should it be static? Fix by adding the missing prototypes to the appropriate header files. This change should have no functional impact. Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com> --- arch/riscv/include/asm/irq.h | 3 +++ arch/riscv/include/asm/pgtable.h | 2 ++ arch/riscv/include/asm/processor.h | 4 ++++ arch/riscv/include/asm/ptrace.h | 2 ++ arch/riscv/include/asm/smp.h | 2 ++ 5 files changed, 13 insertions(+)