x86, amd: Initialize variable properly
authorBorislav Petkov <bp@amd64.org>
Mon, 14 Feb 2011 17:14:51 +0000 (18:14 +0100)
committerIngo Molnar <mingo@elte.hu>
Tue, 15 Feb 2011 02:03:19 +0000 (03:03 +0100)
Commit d518573de63f ("x86, amd: Normalize compute unit IDs on
multi-node processors") introduced compute unit normalization
but causes a compiler warning:

 arch/x86/kernel/cpu/amd.c: In function 'amd_detect_cmp':
 arch/x86/kernel/cpu/amd.c:268: warning: 'cores_per_cu' may be used uninitialized in this function
 arch/x86/kernel/cpu/amd.c:268: note: 'cores_per_cu' was declared here

The compiler is right - initialize it with a proper value.

Also, fix up a comment while at it.

Reported-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
LKML-Reference: <20110214171451.GB10076@kryptos.osrc.amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/amd.c

index 990cc486158696e4ecd79f79ddede91615b70d1a..589bdd7a4cfff6c9ab5b84380aaba5a2df6ef354 100644 (file)
@@ -261,7 +261,7 @@ static int __cpuinit nearby_node(int apicid)
 #ifdef CONFIG_X86_HT
 static void __cpuinit amd_get_topology(struct cpuinfo_x86 *c)
 {
-       u32 nodes, cores_per_cu;
+       u32 nodes, cores_per_cu = 1;
        u8 node_id;
        int cpu = smp_processor_id();
 
@@ -276,7 +276,7 @@ static void __cpuinit amd_get_topology(struct cpuinfo_x86 *c)
                /* get compute unit information */
                smp_num_siblings = ((ebx >> 8) & 3) + 1;
                c->compute_unit_id = ebx & 0xff;
-               cores_per_cu = ((ebx >> 8) & 3) + 1;
+               cores_per_cu += ((ebx >> 8) & 3);
        } else if (cpu_has(c, X86_FEATURE_NODEID_MSR)) {
                u64 value;
 
@@ -298,7 +298,7 @@ static void __cpuinit amd_get_topology(struct cpuinfo_x86 *c)
                /* store NodeID, use llc_shared_map to store sibling info */
                per_cpu(cpu_llc_id, cpu) = node_id;
 
-               /* core id to be in range from 0 to (cores_per_node - 1) */
+               /* core id has to be in the [0 .. cores_per_node - 1] range */
                c->cpu_core_id %= cores_per_node;
                c->compute_unit_id %= cus_per_node;
        }