From f310f8dd1414d284566ffe47fb8b4379a0d74a64 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Fri, 30 Jun 2023 13:31:48 +0200 Subject: parisc: Move init function declarations into header file Clean up the code to not have external function declarations inside the C source files. Reduces warnings when compiled with W=1. Signed-off-by: Helge Deller --- arch/parisc/include/asm/processor.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'arch/parisc/include/asm/processor.h') diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h index a608970b249a..627a1f57af35 100644 --- a/arch/parisc/include/asm/processor.h +++ b/arch/parisc/include/asm/processor.h @@ -11,6 +11,7 @@ #ifndef __ASSEMBLY__ #include +#include #include #include @@ -292,6 +293,37 @@ extern void toc_handler(void); extern unsigned int toc_handler_size; extern unsigned int toc_handler_csum; +/* called from assembly code: */ +extern void start_parisc(void); +extern void smp_callin(unsigned long); +extern void sys_rt_sigreturn(struct pt_regs *, int); +extern void do_notify_resume(struct pt_regs *, long); +extern long do_syscall_trace_enter(struct pt_regs *); +extern void do_syscall_trace_exit(struct pt_regs *); + +/* CPU startup and info */ +struct seq_file; +extern void early_trap_init(void); +extern void collect_boot_cpu_data(void); +extern int show_cpuinfo (struct seq_file *m, void *v); + +/* driver code in driver/parisc */ +extern void gsc_init(void); +extern void processor_init(void); +extern void ccio_init(void); +extern void hppb_init(void); +extern void dino_init(void); +extern void iosapic_init(void); +extern void lba_init(void); +extern void sba_init(void); +extern void parisc_eisa_init(void); +struct parisc_device; +struct resource; +extern void sba_distributed_lmmio(struct parisc_device *, struct resource *); +extern void sba_directed_lmmio(struct parisc_device *, struct resource *); +extern void lba_set_iregs(struct parisc_device *lba, u32 ibase, u32 imask); +extern void ccio_cujo20_fixup(struct parisc_device *dev, u32 iovp); + #endif /* __ASSEMBLY__ */ #endif /* __ASM_PARISC_PROCESSOR_H */ -- cgit v1.2.3 From bcfaf17f18f2ae956ec4ba831a9c68859e57cf72 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Fri, 30 Jun 2023 16:21:38 +0200 Subject: parisc: irq: Add irq-related function declarations Move function declarations for do_cpu_irq_mask(), timer_interrupt() and ipi_interrupt() to header file. Signed-off-by: Helge Deller --- arch/parisc/include/asm/processor.h | 3 +++ arch/parisc/kernel/irq.c | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'arch/parisc/include/asm/processor.h') diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h index 627a1f57af35..b1ea85e77ede 100644 --- a/arch/parisc/include/asm/processor.h +++ b/arch/parisc/include/asm/processor.h @@ -292,6 +292,9 @@ extern void __noreturn toc_intr(struct pt_regs *regs); extern void toc_handler(void); extern unsigned int toc_handler_size; extern unsigned int toc_handler_csum; +extern void do_cpu_irq_mask(struct pt_regs *); +extern irqreturn_t timer_interrupt(int, void *); +extern irqreturn_t ipi_interrupt(int, void *); /* called from assembly code: */ extern void start_parisc(void); diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index b05055f3ba4b..12c4d4104ade 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c @@ -24,9 +24,6 @@ #undef PARISC_IRQ_CR16_COUNTS -extern irqreturn_t timer_interrupt(int, void *); -extern irqreturn_t ipi_interrupt(int, void *); - #define EIEM_MASK(irq) (1UL<<(CPU_IRQ_MAX - irq)) /* Bits in EIEM correlate with cpu_irq_action[]. @@ -489,7 +486,7 @@ void do_softirq_own_stack(void) #endif /* CONFIG_IRQSTACKS */ /* ONLY called from entry.S:intr_extint() */ -void do_cpu_irq_mask(struct pt_regs *regs) +asmlinkage void do_cpu_irq_mask(struct pt_regs *regs) { struct pt_regs *old_regs; unsigned long eirr_val; -- cgit v1.2.3 From 147e17e297563bce7c3acc82b41e24463d9d6a64 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Mon, 3 Jul 2023 18:14:39 +0200 Subject: parisc: smp: Add declaration for start_cpu_itimer() Avoid gcc warning about missing prototype for start_cpu_itimer(). Signed-off-by: Helge Deller --- arch/parisc/include/asm/processor.h | 1 + arch/parisc/kernel/smp.c | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'arch/parisc/include/asm/processor.h') diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h index b1ea85e77ede..a2c877662c62 100644 --- a/arch/parisc/include/asm/processor.h +++ b/arch/parisc/include/asm/processor.h @@ -295,6 +295,7 @@ extern unsigned int toc_handler_csum; extern void do_cpu_irq_mask(struct pt_regs *); extern irqreturn_t timer_interrupt(int, void *); extern irqreturn_t ipi_interrupt(int, void *); +extern void start_cpu_itimer(void); /* called from assembly code: */ extern void start_parisc(void); diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c index d0eb1bd19a13..4098f9a0964b 100644 --- a/arch/parisc/kernel/smp.c +++ b/arch/parisc/kernel/smp.c @@ -271,8 +271,6 @@ void arch_send_call_function_single_ipi(int cpu) static void smp_cpu_init(int cpunum) { - extern void start_cpu_itimer(void); /* arch/parisc/kernel/time.c */ - /* Set modes and Enable floating point coprocessor */ init_per_cpu(cpunum); -- cgit v1.2.3 From 6414b30b39f9d21fcd485aab6e20b7c65f4013d8 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Mon, 3 Jul 2023 18:23:39 +0200 Subject: parisc: unwind: Avoid missing prototype warning for handle_interruption() Signed-off-by: Helge Deller --- arch/parisc/include/asm/processor.h | 1 + arch/parisc/kernel/unwind.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'arch/parisc/include/asm/processor.h') diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h index a2c877662c62..e132b2819fc9 100644 --- a/arch/parisc/include/asm/processor.h +++ b/arch/parisc/include/asm/processor.h @@ -296,6 +296,7 @@ extern void do_cpu_irq_mask(struct pt_regs *); extern irqreturn_t timer_interrupt(int, void *); extern irqreturn_t ipi_interrupt(int, void *); extern void start_cpu_itimer(void); +extern void handle_interruption(int, struct pt_regs *); /* called from assembly code: */ extern void start_parisc(void); diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c index 043184ce3843..27ae40a443b8 100644 --- a/arch/parisc/kernel/unwind.c +++ b/arch/parisc/kernel/unwind.c @@ -221,7 +221,6 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, int * Note: We could use dereference_kernel_function_descriptor() * instead but we want to keep it simple here. */ - extern void * const handle_interruption; extern void * const ret_from_kernel_thread; extern void * const syscall_exit; extern void * const intr_return; @@ -229,8 +228,10 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, int #ifdef CONFIG_IRQSTACKS extern void * const _call_on_stack; #endif /* CONFIG_IRQSTACKS */ + void *ptr; - if (pc_is_kernel_fn(pc, handle_interruption)) { + ptr = dereference_kernel_function_descriptor(&handle_interruption); + if (pc_is_kernel_fn(pc, ptr)) { struct pt_regs *regs = (struct pt_regs *)(info->sp - frame_size - PT_SZ_ALGN); dbg("Unwinding through handle_interruption()\n"); info->prev_sp = regs->gr[30]; -- cgit v1.2.3