Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 27922b4260f65d317aabda37e42bbbff > files > 1839

kernel-2.6.18-238.el5.src.rpm

From: Bhavna Sarathy <bnagendr@redhat.com>
Date: Thu, 2 Sep 2010 17:05:44 -0400
Subject: [misc] amd: avoid dupe sysfs bits for thresholding banks
Message-id: <20100902171144.18123.49232.sendpatchset@localhost.localdomain>
Patchwork-id: 28018
O-Subject: [RHEL5.6 PATCH 2/5] Avoid duplicate sysfs links/files for
	thresholding banks
Bugzilla: 610199
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>

Avoid duplicate sysfs links/files for thresholding banks

Resolves BZ 610199, please review and ACK.

>From 8265742992b19f4af47df1acd520e321f32a1578 Mon Sep 17 00:00:00 2001
From: Andreas Herrmann <andreas.herrmann3@amd.com>
Date: Wed, 1 Sep 2010 17:52:10 +0200
Subject: [PATCH 2/5] x86, mcheck: Avoid duplicate sysfs links/files for thresholding banks

From: Andreas Herrmann <andreas.herrmann3@amd.com>

kobject_add_internal failed for threshold_bank2 with -EEXIST, don't
    try to register things with the same name in the same directory.
  Pid: 1, comm: swapper Tainted: G        W  2.6.31 #1
  Call Trace:
  [<ffffffff81161b07>] ? kobject_add_internal+0x156/0x180
  [<ffffffff81161cc0>] ? kobject_add+0x66/0x6b
  [<ffffffff81161793>] ? kobject_init+0x42/0x82
  [<ffffffff81161cf9>] ? kobject_create_and_add+0x34/0x63
  [<ffffffff81393963>] ? threshold_create_bank+0x14f/0x259
  [<ffffffff8139310a>] ? mce_create_device+0x8d/0x1b8
  [<ffffffff81646497>] ? threshold_init_device+0x3f/0x80
  [<ffffffff81646458>] ? threshold_init_device+0x0/0x80
  [<ffffffff81009050>] ? do_one_initcall+0x4f/0x143
  [<ffffffff816413a0>] ? kernel_init+0x14c/0x1a2
  [<ffffffff8100c8da>] ? child_rip+0xa/0x20
  [<ffffffff81641254>] ? kernel_init+0x0/0x1a2
  [<ffffffff8100c8d0>] ? child_rip+0x0/0x20
  kobject_create_and_add: kobject_add error: -17

(Probably the for_each_cpu loop should be entirely removed.)

Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>

diff --git a/arch/x86_64/kernel/mce_amd.c b/arch/x86_64/kernel/mce_amd.c
index d6ee879..5d4122b 100644
--- a/arch/x86_64/kernel/mce_amd.c
+++ b/arch/x86_64/kernel/mce_amd.c
@@ -498,7 +498,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank)
 #ifndef CONFIG_SMP
 	b->cpus = CPU_MASK_ALL;
 #else
-	b->cpus = c->llc_shared_map;
+	cpu_set(cpu, b->cpus);
 #endif
 	err = kobject_register(&b->kobj);
 	if (err)