Re: [tip:ras/core] x86/mce: Fix -Wmissing-prototypes warnings

From: Ingo Molnar
Date: Mon Nov 12 2018 - 00:25:02 EST



* Borislav Petkov <bp@xxxxxxx> wrote:

> Fix an actual bug too which the warning triggered:
>
> arch/x86/kernel/cpu/mcheck/therm_throt.c:395:39: error: conflicting \
> types for âsmp_thermal_interruptâ
> asmlinkage __visible void __irq_entry smp_thermal_interrupt(struct pt_regs *r)
> ^~~~~~~~~~~~~~~~~~~~~

> In file included from arch/x86/kernel/cpu/mcheck/therm_throt.c:29:
> ./arch/x86/include/asm/traps.h:107:17: note: previous declaration of \
> âsmp_thermal_interruptâ was here
> asmlinkage void smp_thermal_interrupt(void);
>
> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> Cc: Yi Wang <wang.yi59@xxxxxxxxxx>
> Cc: Michael Matz <matz@xxxxxxx>
> Cc: x86@xxxxxxxxxx
> Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1811081633160.1549@xxxxxxxxxxxxxxxxxxxxxxx
> ---
> arch/x86/include/asm/traps.h | 6 +++---
> arch/x86/kernel/cpu/mcheck/mce_amd.c | 5 +++--
> arch/x86/kernel/cpu/mcheck/therm_throt.c | 1 +
> arch/x86/kernel/cpu/mcheck/threshold.c | 3 ++-
> 4 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h
> index 3de69330e6c5..9ea54a764a8e 100644
> --- a/arch/x86/include/asm/traps.h
> +++ b/arch/x86/include/asm/traps.h
> @@ -104,9 +104,9 @@ extern int panic_on_unrecovered_nmi;
>
> void math_emulate(struct math_emu_info *);
> #ifndef CONFIG_X86_32
> -asmlinkage void smp_thermal_interrupt(void);
> -asmlinkage void smp_threshold_interrupt(void);
> -asmlinkage void smp_deferred_error_interrupt(void);
> +asmlinkage void smp_thermal_interrupt(struct pt_regs *);
> +asmlinkage void smp_threshold_interrupt(struct pt_regs *);
> +asmlinkage void smp_deferred_error_interrupt(struct pt_regs *);

Nit: please use full declarations in prototypes, i.e. 'struct pt_regs
*regs' or so. Much of traps.h does this wrong so I guess this should be a
separate cleanup patch.

> +asmlinkage __visible void __irq_entry smp_deferred_error_interrupt(struct pt_regs *r)

> +asmlinkage __visible void __irq_entry smp_threshold_interrupt(struct pt_regs *r)

Please use the canonical name, i.e. 'regs'.

Thanks,

Ingo