x86: cache_info: Update calculation of AMD L3 cache indices
authorFrank Arnold <frank.arnold@amd.com>
Wed, 18 May 2011 09:32:10 +0000 (11:32 +0200)
committerIngo Molnar <mingo@elte.hu>
Mon, 12 Sep 2011 17:29:03 +0000 (19:29 +0200)
L3 subcaches 0 and 1 of AMD Family 15h CPUs can have a size of 2MB.
Update the calculation routine for the number of L3 indices to
reflect that.

Signed-off-by: Frank Arnold <frank.arnold@amd.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Rosenfeld Hans <Hans.Rosenfeld@amd.com>
Cc: Herrmann3 Andreas <Andreas.Herrmann3@amd.com>
Cc: Mike Travis <travis@sgi.com>
Cc: Frank Arnold <Frank.Arnold@amd.com>
Link: http://lkml.kernel.org/r/20110726170449.GB32536@aftab
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/intel_cacheinfo.c

index 951820f..a3b0811 100644 (file)
@@ -314,6 +314,12 @@ static void __cpuinit amd_calc_l3_indices(struct amd_northbridge *nb)
        /* calculate subcache sizes */
        l3->subcaches[0] = sc0 = !(val & BIT(0));
        l3->subcaches[1] = sc1 = !(val & BIT(4));
+
+       if (boot_cpu_data.x86 == 0x15) {
+               l3->subcaches[0] = sc0 += !(val & BIT(1));
+               l3->subcaches[1] = sc1 += !(val & BIT(5));
+       }
+
        l3->subcaches[2] = sc2 = !(val & BIT(8))  + !(val & BIT(9));
        l3->subcaches[3] = sc3 = !(val & BIT(12)) + !(val & BIT(13));