[PATCH] [1/3] x86_64: mce_amd relocate sysfs files

shin, jacob jacob.shin at amd.com
Wed May 17 20:22:45 CEST 2006


Get rid of /sys/devices/system/threshold directory and
move mce_amd thresholding files into the machinecheck
directory -- /sys/devices/system/machinecheck.

Signed-off-by: Jacob Shin <jacob.shin at amd.com>

---

 arch/x86_64/kernel/mce.c     |    2 +-
 arch/x86_64/kernel/mce_amd.c |   31 +++++++------------------------
 include/asm-x86_64/mce.h     |    2 ++
 3 files changed, 10 insertions(+), 25 deletions(-)

---

diff -uparN linux.orig/arch/x86_64/kernel/mce.c linux/arch/x86_64/kernel/mce.c
--- linux.orig/arch/x86_64/kernel/mce.c	2006-04-18 22:00:49.000000000 -0500
+++ linux/arch/x86_64/kernel/mce.c	2006-04-25 15:39:21.000000000 -0500
@@ -562,7 +562,7 @@ static struct sysdev_class mce_sysclass 
 	set_kset_name("machinecheck"),
 };
 
-static DEFINE_PER_CPU(struct sys_device, device_mce);
+DEFINE_PER_CPU(struct sys_device, device_mce);
 
 /* Why are there no generic functions for this? */
 #define ACCESSOR(name, var, start) \
diff -uparN linux.orig/arch/x86_64/kernel/mce_amd.c linux/arch/x86_64/kernel/mce_amd.c
--- linux.orig/arch/x86_64/kernel/mce_amd.c	2006-04-18 22:00:49.000000000 -0500
+++ linux/arch/x86_64/kernel/mce_amd.c	2006-04-25 15:39:21.000000000 -0500
@@ -30,7 +30,7 @@
 #include <asm/idle.h>
 
 #define PFX "mce_threshold: "
-#define VERSION "version 1.00.9"
+#define VERSION "version 1.0.10"
 #define NR_BANKS 5
 #define THRESHOLD_MAX 0xFFF
 #define INT_TYPE_APIC 0x00020000
@@ -166,12 +166,6 @@ asmlinkage void mce_threshold_interrupt(
  * Sysfs Interface
  */
 
-static struct sysdev_class threshold_sysclass = {
-	set_kset_name("threshold"),
-};
-
-static DEFINE_PER_CPU(struct sys_device, device_threshold);
-
 struct threshold_attr {
         struct attribute attr;
         ssize_t(*show) (struct threshold_bank *, char *);
@@ -332,8 +326,8 @@ static __cpuinit int threshold_create_ba
 		b = per_cpu(threshold_banks, lcpu)[bank];
 		if (!b)
 			goto out;
-		sprintf(name, "bank%i", bank);
-		err = sysfs_create_link(&per_cpu(device_threshold, cpu).kobj,
+		sprintf(name, "threshold_bank%i", bank);
+		err = sysfs_create_link(&per_cpu(device_mce, cpu).kobj,
 					&b->kobj, name);
 		if (err)
 			goto out;
@@ -353,8 +347,8 @@ static __cpuinit int threshold_create_ba
 	b->bank = bank;
 	b->interrupt_enable = 0;
 	b->threshold_limit = THRESHOLD_MAX;
-	kobject_set_name(&b->kobj, "bank%i", bank);
-	b->kobj.parent = &per_cpu(device_threshold, cpu).kobj;
+	kobject_set_name(&b->kobj, "threshold_bank%i", bank);
+	b->kobj.parent = &per_cpu(device_mce, cpu).kobj;
 	b->kobj.ktype = &threshold_ktype;
 
 	err = kobject_register(&b->kobj);
@@ -373,12 +367,6 @@ static __cpuinit int threshold_create_de
 	int bank;
 	int err = 0;
 
-	per_cpu(device_threshold, cpu).id = cpu;
-	per_cpu(device_threshold, cpu).cls = &threshold_sysclass;
-	err = sysdev_register(&per_cpu(device_threshold, cpu));
-	if (err)
-		goto out;
-
 	for (bank = 0; bank < NR_BANKS; ++bank) {
 		if (!(per_cpu(bank_map, cpu) & 1 << bank))
 			continue;
@@ -407,8 +395,8 @@ static __cpuinit void threshold_remove_b
 	if (!b)
 		return;
 	if (shared_bank[bank] && atomic_read(&b->kobj.kref.refcount) > 2) {
-		sprintf(name, "bank%i", bank);
-		sysfs_remove_link(&per_cpu(device_threshold, cpu).kobj, name);
+		sprintf(name, "threshold_bank%i", bank);
+		sysfs_remove_link(&per_cpu(device_mce, cpu).kobj, name);
 		per_cpu(threshold_banks, cpu)[bank] = NULL;
 	} else {
 		kobject_unregister(&b->kobj);
@@ -425,7 +413,6 @@ static __cpuinit void threshold_remove_d
 			continue;
 		threshold_remove_bank(cpu, bank);
 	}
-	sysdev_unregister(&per_cpu(device_threshold, cpu));
 }
 
 /* link all existing siblings when first core comes up */
@@ -521,10 +508,6 @@ static __init int threshold_init_device(
 	int err;
 	int lcpu = 0;
 
-	err = sysdev_class_register(&threshold_sysclass);
-	if (err)
-		goto out;
-
 	/* to hit CPUs online before the notifier is up */
 	for_each_online_cpu(lcpu) {
 		err = threshold_create_device(lcpu);
diff -uparN linux.orig/include/asm-x86_64/mce.h linux/include/asm-x86_64/mce.h
--- linux.orig/include/asm-x86_64/mce.h	2006-04-18 22:00:49.000000000 -0500
+++ linux/include/asm-x86_64/mce.h	2006-04-25 15:39:21.000000000 -0500
@@ -74,6 +74,8 @@ struct mce_log { 
 #include <asm/atomic.h>
 
 void mce_log(struct mce *m);
+DECLARE_PER_CPU(struct sys_device, device_mce);
+
 #ifdef CONFIG_X86_MCE_INTEL
 void mce_intel_feature_init(struct cpuinfo_x86 *c);
 #else




More information about the discuss mailing list