Commit c9c6d216 authored by Tony Luck's avatar Tony Luck Committed by Borislav Petkov

x86/mce: Rename "first" function as "early"

It isn't going to be first on the notifier chain when the CEC is moved
to be a normal user of the notifier chain.

Fix the enum for the MCE_PRIO symbols to list them in reverse order so
that the compiler can give them numbers from low to high priority. Add
an entry for MCE_PRIO_CEC as the highest priority.

 [ bp: Use passive voice, add comments. ]
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Tested-by: default avatarTony Luck <tony.luck@intel.com>
Link: https://lkml.kernel.org/r/20200214222720.13168-2-tony.luck@intel.com
parent 3e0fdec8
...@@ -144,14 +144,16 @@ struct mce_log_buffer { ...@@ -144,14 +144,16 @@ struct mce_log_buffer {
struct mce entry[]; struct mce entry[];
}; };
/* Highest last */
enum mce_notifier_prios { enum mce_notifier_prios {
MCE_PRIO_FIRST = INT_MAX, MCE_PRIO_LOWEST,
MCE_PRIO_UC = INT_MAX - 1, MCE_PRIO_MCELOG,
MCE_PRIO_EXTLOG = INT_MAX - 2, MCE_PRIO_EDAC,
MCE_PRIO_NFIT = INT_MAX - 3, MCE_PRIO_NFIT,
MCE_PRIO_EDAC = INT_MAX - 4, MCE_PRIO_EXTLOG,
MCE_PRIO_MCELOG = 1, MCE_PRIO_UC,
MCE_PRIO_LOWEST = 0, MCE_PRIO_EARLY,
MCE_PRIO_CEC
}; };
struct notifier_block; struct notifier_block;
......
...@@ -559,7 +559,7 @@ static bool cec_add_mce(struct mce *m) ...@@ -559,7 +559,7 @@ static bool cec_add_mce(struct mce *m)
return false; return false;
} }
static int mce_first_notifier(struct notifier_block *nb, unsigned long val, static int mce_early_notifier(struct notifier_block *nb, unsigned long val,
void *data) void *data)
{ {
struct mce *m = (struct mce *)data; struct mce *m = (struct mce *)data;
...@@ -580,9 +580,9 @@ static int mce_first_notifier(struct notifier_block *nb, unsigned long val, ...@@ -580,9 +580,9 @@ static int mce_first_notifier(struct notifier_block *nb, unsigned long val,
return NOTIFY_DONE; return NOTIFY_DONE;
} }
static struct notifier_block first_nb = { static struct notifier_block early_nb = {
.notifier_call = mce_first_notifier, .notifier_call = mce_early_notifier,
.priority = MCE_PRIO_FIRST, .priority = MCE_PRIO_EARLY,
}; };
static int uc_decode_notifier(struct notifier_block *nb, unsigned long val, static int uc_decode_notifier(struct notifier_block *nb, unsigned long val,
...@@ -2041,7 +2041,7 @@ __setup("mce", mcheck_enable); ...@@ -2041,7 +2041,7 @@ __setup("mce", mcheck_enable);
int __init mcheck_init(void) int __init mcheck_init(void)
{ {
mcheck_intel_therm_init(); mcheck_intel_therm_init();
mce_register_decode_chain(&first_nb); mce_register_decode_chain(&early_nb);
mce_register_decode_chain(&mce_uc_nb); mce_register_decode_chain(&mce_uc_nb);
mce_register_decode_chain(&mce_default_nb); mce_register_decode_chain(&mce_default_nb);
mcheck_vendor_init_severity(); mcheck_vendor_init_severity();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment