diff options
author | Andi Kleen <ak@suse.de> | 2007-07-21 11:10:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-21 21:37:08 -0400 |
commit | 67cddd947992b02f01ad093ec814738c5827d17c (patch) | |
tree | 5c10c3a1f645c119e0cc23ecdfc7c3c4dd7eacad /arch/x86_64/kernel/setup.c | |
parent | 2aae950b21e4bc789d1fc6668faf67e8748300b7 (diff) |
i386: Add L3 cache support to AMD CPUID4 emulation
With that an L3 cache is correctly reported in the cache information in /sys
With fixes from Andreas Herrmann and Dean Gaudet and Joachim Deguara
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/x86_64/kernel/setup.c')
-rw-r--r-- | arch/x86_64/kernel/setup.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c index 675b3d6de10b..6fa0a302e2aa 100644 --- a/arch/x86_64/kernel/setup.c +++ b/arch/x86_64/kernel/setup.c | |||
@@ -602,8 +602,11 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c) | |||
602 | if (c->extended_cpuid_level >= 0x80000008) | 602 | if (c->extended_cpuid_level >= 0x80000008) |
603 | amd_detect_cmp(c); | 603 | amd_detect_cmp(c); |
604 | 604 | ||
605 | /* Fix cpuid4 emulation for more */ | 605 | if (c->extended_cpuid_level >= 0x80000006 && |
606 | num_cache_leaves = 3; | 606 | (cpuid_edx(0x80000006) & 0xf000)) |
607 | num_cache_leaves = 4; | ||
608 | else | ||
609 | num_cache_leaves = 3; | ||
607 | 610 | ||
608 | /* RDTSC can be speculated around */ | 611 | /* RDTSC can be speculated around */ |
609 | clear_bit(X86_FEATURE_SYNC_RDTSC, &c->x86_capability); | 612 | clear_bit(X86_FEATURE_SYNC_RDTSC, &c->x86_capability); |