Skip to content

Commit 631adc7

Browse files
committed
x86/mce: Get rid of the mce_severity function pointer
Turn it into a normal function which calls an AMD- or Intel-specific variant depending on the CPU it runs on. No functional changes. Signed-off-by: Borislav Petkov <[email protected]> Reviewed-by: Tony Luck <[email protected]> Link: https://lkml.kernel.org/r/[email protected]
1 parent 6906584 commit 631adc7

File tree

4 files changed

+6
-11
lines changed

4 files changed

+6
-11
lines changed

arch/x86/include/asm/mce.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,14 +205,12 @@ struct cper_ia_proc_ctx;
205205
int mcheck_init(void);
206206
void mcheck_cpu_init(struct cpuinfo_x86 *c);
207207
void mcheck_cpu_clear(struct cpuinfo_x86 *c);
208-
void mcheck_vendor_init_severity(void);
209208
int apei_smca_report_x86_error(struct cper_ia_proc_ctx *ctx_info,
210209
u64 lapic_id);
211210
#else
212211
static inline int mcheck_init(void) { return 0; }
213212
static inline void mcheck_cpu_init(struct cpuinfo_x86 *c) {}
214213
static inline void mcheck_cpu_clear(struct cpuinfo_x86 *c) {}
215-
static inline void mcheck_vendor_init_severity(void) {}
216214
static inline int apei_smca_report_x86_error(struct cper_ia_proc_ctx *ctx_info,
217215
u64 lapic_id) { return -EINVAL; }
218216
#endif

arch/x86/kernel/cpu/mce/core.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2233,7 +2233,6 @@ int __init mcheck_init(void)
22332233
mce_register_decode_chain(&early_nb);
22342234
mce_register_decode_chain(&mce_uc_nb);
22352235
mce_register_decode_chain(&mce_default_nb);
2236-
mcheck_vendor_init_severity();
22372236

22382237
INIT_WORK(&mce_work, mce_gen_pool_process);
22392238
init_irq_work(&mce_irq_work, mce_irq_work_cb);

arch/x86/kernel/cpu/mce/internal.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ int mce_gen_pool_add(struct mce *mce);
3838
int mce_gen_pool_init(void);
3939
struct llist_node *mce_gen_pool_prepare_records(void);
4040

41-
extern int (*mce_severity)(struct mce *a, struct pt_regs *regs,
42-
int tolerant, char **msg, bool is_excp);
41+
int mce_severity(struct mce *a, struct pt_regs *regs, int tolerant, char **msg, bool is_excp);
4342
struct dentry *mce_get_debugfs_dir(void);
4443

4544
extern mce_banks_t mce_banks_ce_disabled;

arch/x86/kernel/cpu/mce/severity.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -407,15 +407,14 @@ static int mce_severity_intel(struct mce *m, struct pt_regs *regs,
407407
}
408408
}
409409

410-
/* Default to mce_severity_intel */
411-
int (*mce_severity)(struct mce *m, struct pt_regs *regs, int tolerant, char **msg, bool is_excp) =
412-
mce_severity_intel;
413-
414-
void __init mcheck_vendor_init_severity(void)
410+
int mce_severity(struct mce *m, struct pt_regs *regs, int tolerant, char **msg,
411+
bool is_excp)
415412
{
416413
if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
417414
boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
418-
mce_severity = mce_severity_amd;
415+
return mce_severity_amd(m, regs, tolerant, msg, is_excp);
416+
else
417+
return mce_severity_intel(m, regs, tolerant, msg, is_excp);
419418
}
420419

421420
#ifdef CONFIG_DEBUG_FS

0 commit comments

Comments
 (0)