x86/mce: Rename "first" function as "early"
authorTony Luck <tony.luck@intel.com>
Fri, 14 Feb 2020 22:27:14 +0000 (14:27 -0800)
committerBorislav Petkov <bp@suse.de>
Tue, 14 Apr 2020 13:55:01 +0000 (15:55 +0200)
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: Tony Luck <tony.luck@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Tony Luck <tony.luck@intel.com>
Link: https://lkml.kernel.org/r/20200214222720.13168-2-tony.luck@intel.com
arch/x86/include/asm/mce.h
arch/x86/kernel/cpu/mce/core.c

index 83b6ddafa032cf00d5147b724706d4a60ad08db9..689ac6e9c65f071ca35803df7f834b89a0846626 100644 (file)
@@ -144,14 +144,16 @@ struct mce_log_buffer {
        struct mce entry[];
 };
 
+/* Highest last */
 enum mce_notifier_prios {
-       MCE_PRIO_FIRST          = INT_MAX,
-       MCE_PRIO_UC             = INT_MAX - 1,
-       MCE_PRIO_EXTLOG         = INT_MAX - 2,
-       MCE_PRIO_NFIT           = INT_MAX - 3,
-       MCE_PRIO_EDAC           = INT_MAX - 4,
-       MCE_PRIO_MCELOG         = 1,
-       MCE_PRIO_LOWEST         = 0,
+       MCE_PRIO_LOWEST,
+       MCE_PRIO_MCELOG,
+       MCE_PRIO_EDAC,
+       MCE_PRIO_NFIT,
+       MCE_PRIO_EXTLOG,
+       MCE_PRIO_UC,
+       MCE_PRIO_EARLY,
+       MCE_PRIO_CEC
 };
 
 struct notifier_block;
index a6009efdfe2b3d7c2a6eb58375a1d81eecb44b3b..43b1519ad4e5bbf23e0bbeb84b97964e4f641212 100644 (file)
@@ -559,7 +559,7 @@ static bool cec_add_mce(struct mce *m)
        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)
 {
        struct mce *m = (struct mce *)data;
@@ -580,9 +580,9 @@ static int mce_first_notifier(struct notifier_block *nb, unsigned long val,
        return NOTIFY_DONE;
 }
 
-static struct notifier_block first_nb = {
-       .notifier_call  = mce_first_notifier,
-       .priority       = MCE_PRIO_FIRST,
+static struct notifier_block early_nb = {
+       .notifier_call  = mce_early_notifier,
+       .priority       = MCE_PRIO_EARLY,
 };
 
 static int uc_decode_notifier(struct notifier_block *nb, unsigned long val,
@@ -2041,7 +2041,7 @@ __setup("mce", mcheck_enable);
 int __init mcheck_init(void)
 {
        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_default_nb);
        mcheck_vendor_init_severity();