Signed-off-by: Andrew Morton --- arch/x86_64/kernel/mce.c | 2 - arch/x86_64/kernel/mce_amd.c | 40 ++++++++------------------------- include/asm-x86_64/mce.h | 2 + 3 files changed, 13 insertions(+), 31 deletions(-) diff -puN arch/x86_64/kernel/mce_amd.c~x86_64-mm-mce_amd-relocate-sysfs-files arch/x86_64/kernel/mce_amd.c --- devel/arch/x86_64/kernel/mce_amd.c~x86_64-mm-mce_amd-relocate-sysfs-files 2006-06-09 15:17:36.000000000 -0700 +++ devel-akpm/arch/x86_64/kernel/mce_amd.c 2006-06-09 15:17:36.000000000 -0700 @@ -30,7 +30,7 @@ #include #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 */ @@ -518,23 +505,16 @@ static struct notifier_block threshold_c static __init int threshold_init_device(void) { - 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); + int err = threshold_create_device(lcpu); if (err) - goto out; + return err; } register_cpu_notifier(&threshold_cpu_notifier); - - out: - return err; + return 0; } device_initcall(threshold_init_device); diff -puN arch/x86_64/kernel/mce.c~x86_64-mm-mce_amd-relocate-sysfs-files arch/x86_64/kernel/mce.c --- devel/arch/x86_64/kernel/mce.c~x86_64-mm-mce_amd-relocate-sysfs-files 2006-06-09 15:17:36.000000000 -0700 +++ devel-akpm/arch/x86_64/kernel/mce.c 2006-06-09 15:17:36.000000000 -0700 @@ -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 -puN include/asm-x86_64/mce.h~x86_64-mm-mce_amd-relocate-sysfs-files include/asm-x86_64/mce.h --- devel/include/asm-x86_64/mce.h~x86_64-mm-mce_amd-relocate-sysfs-files 2006-06-09 15:17:36.000000000 -0700 +++ devel-akpm/include/asm-x86_64/mce.h 2006-06-09 15:17:36.000000000 -0700 @@ -74,6 +74,8 @@ struct mce_log { #include 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 _