diff options
author | Helge Deller <deller@gmx.de> | 2023-07-03 18:23:39 +0200 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2023-07-03 18:56:03 +0200 |
commit | 6414b30b39f9d21fcd485aab6e20b7c65f4013d8 (patch) | |
tree | a3129f50017c5891ee4dee4a84870b70bd6cc229 /arch/parisc | |
parent | 147e17e297563bce7c3acc82b41e24463d9d6a64 (diff) |
parisc: unwind: Avoid missing prototype warning for handle_interruption()
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc')
-rw-r--r-- | arch/parisc/include/asm/processor.h | 1 | ||||
-rw-r--r-- | arch/parisc/kernel/unwind.c | 5 |
2 files changed, 4 insertions, 2 deletions
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]; |