[tip:ras/core] x86/MCE, xen/mcelog: Make /dev/mcelog registration messages more precise

From: tip-bot for Juergen Gross
Date: Tue Jun 20 2017 - 17:29:24 EST


Commit-ID: b867059018a5254cca14450eefb6fb8effa0f6dd
Gitweb: http://git.kernel.org/tip/b867059018a5254cca14450eefb6fb8effa0f6dd
Author: Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Tue, 20 Jun 2017 23:16:37 +0200
Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CommitDate: Tue, 20 Jun 2017 23:25:19 +0200

x86/MCE, xen/mcelog: Make /dev/mcelog registration messages more precise

When running under Xen as dom0, /dev/mcelog is being provided by Xen
instead of the normal mcelog character device of the MCE core. Convert
an error message being issued by the MCE core in this case to an
informative message that Xen has registered the device.

Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: linux-edac <linux-edac@xxxxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/20170614084059.19294-1-jgross@xxxxxxxx

---
arch/x86/kernel/cpu/mcheck/dev-mcelog.c | 8 +++++++-
drivers/xen/mcelog.c | 2 ++
2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/mcheck/dev-mcelog.c b/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
index a80427c..10cec43 100644
--- a/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
+++ b/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
@@ -415,9 +415,15 @@ static __init int dev_mcelog_init_device(void)
/* register character device /dev/mcelog */
err = misc_register(&mce_chrdev_device);
if (err) {
- pr_err("Unable to init device /dev/mcelog (rc: %d)\n", err);
+ if (err == -EBUSY)
+ /* Xen dom0 might have registered the device already. */
+ pr_info("Unable to init device /dev/mcelog, already registered");
+ else
+ pr_err("Unable to init device /dev/mcelog (rc: %d)\n", err);
+
return err;
}
+
mce_register_decode_chain(&dev_mcelog_nb);
return 0;
}
diff --git a/drivers/xen/mcelog.c b/drivers/xen/mcelog.c
index a493c7315..6cc1c15 100644
--- a/drivers/xen/mcelog.c
+++ b/drivers/xen/mcelog.c
@@ -408,6 +408,8 @@ static int __init xen_late_init_mcelog(void)
if (ret)
goto deregister;

+ pr_info("/dev/mcelog registered by Xen\n");
+
return 0;

deregister: