aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce-internal.h1
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce-severity.c4
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c13
3 files changed, 15 insertions, 3 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce-internal.h b/arch/x86/kernel/cpu/mcheck/mce-internal.h
index 6bd51e7ba87b..32996f9fab67 100644
--- a/arch/x86/kernel/cpu/mcheck/mce-internal.h
+++ b/arch/x86/kernel/cpu/mcheck/mce-internal.h
@@ -22,6 +22,7 @@ struct mce_bank {
22}; 22};
23 23
24int mce_severity(struct mce *a, int tolerant, char **msg); 24int mce_severity(struct mce *a, int tolerant, char **msg);
25struct dentry *mce_get_debugfs_dir(void);
25 26
26extern int mce_ser; 27extern int mce_ser;
27 28
diff --git a/arch/x86/kernel/cpu/mcheck/mce-severity.c b/arch/x86/kernel/cpu/mcheck/mce-severity.c
index 51f7c725dab5..bc35a073d151 100644
--- a/arch/x86/kernel/cpu/mcheck/mce-severity.c
+++ b/arch/x86/kernel/cpu/mcheck/mce-severity.c
@@ -197,7 +197,7 @@ static int __init severities_debugfs_init(void)
197{ 197{
198 struct dentry *dmce = NULL, *fseverities_coverage = NULL; 198 struct dentry *dmce = NULL, *fseverities_coverage = NULL;
199 199
200 dmce = debugfs_create_dir("mce", NULL); 200 dmce = mce_get_debugfs_dir();
201 if (dmce == NULL) 201 if (dmce == NULL)
202 goto err_out; 202 goto err_out;
203 fseverities_coverage = debugfs_create_file("severities-coverage", 203 fseverities_coverage = debugfs_create_file("severities-coverage",
@@ -209,8 +209,6 @@ static int __init severities_debugfs_init(void)
209 return 0; 209 return 0;
210 210
211err_out: 211err_out:
212 if (dmce)
213 debugfs_remove(dmce);
214 return -ENOMEM; 212 return -ENOMEM;
215} 213}
216late_initcall(severities_debugfs_init); 214late_initcall(severities_debugfs_init);
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 1ce6db1f8789..9c7419e459d6 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -34,6 +34,7 @@
34#include <linux/smp.h> 34#include <linux/smp.h>
35#include <linux/fs.h> 35#include <linux/fs.h>
36#include <linux/mm.h> 36#include <linux/mm.h>
37#include <linux/debugfs.h>
37 38
38#include <asm/processor.h> 39#include <asm/processor.h>
39#include <asm/hw_irq.h> 40#include <asm/hw_irq.h>
@@ -2003,3 +2004,15 @@ static int __init mcheck_disable(char *str)
2003 return 1; 2004 return 1;
2004} 2005}
2005__setup("nomce", mcheck_disable); 2006__setup("nomce", mcheck_disable);
2007
2008#ifdef CONFIG_DEBUG_FS
2009struct dentry *mce_get_debugfs_dir(void)
2010{
2011 static struct dentry *dmce;
2012
2013 if (!dmce)
2014 dmce = debugfs_create_dir("mce", NULL);
2015
2016 return dmce;
2017}
2018#endif