diff options
Diffstat (limited to 'arch/x86/kernel/cpu/common_64.c')
-rw-r--r-- | arch/x86/kernel/cpu/common_64.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/x86/kernel/cpu/common_64.c b/arch/x86/kernel/cpu/common_64.c index 36537ab9e56a..7b8cc72feb40 100644 --- a/arch/x86/kernel/cpu/common_64.c +++ b/arch/x86/kernel/cpu/common_64.c | |||
@@ -98,7 +98,7 @@ int __cpuinit get_model_name(struct cpuinfo_x86 *c) | |||
98 | 98 | ||
99 | void __cpuinit display_cacheinfo(struct cpuinfo_x86 *c) | 99 | void __cpuinit display_cacheinfo(struct cpuinfo_x86 *c) |
100 | { | 100 | { |
101 | unsigned int n, dummy, eax, ebx, ecx, edx; | 101 | unsigned int n, dummy, ebx, ecx, edx; |
102 | 102 | ||
103 | n = c->extended_cpuid_level; | 103 | n = c->extended_cpuid_level; |
104 | 104 | ||
@@ -121,11 +121,6 @@ void __cpuinit display_cacheinfo(struct cpuinfo_x86 *c) | |||
121 | printk(KERN_INFO "CPU: L2 Cache: %dK (%d bytes/line)\n", | 121 | printk(KERN_INFO "CPU: L2 Cache: %dK (%d bytes/line)\n", |
122 | c->x86_cache_size, ecx & 0xFF); | 122 | c->x86_cache_size, ecx & 0xFF); |
123 | } | 123 | } |
124 | if (n >= 0x80000008) { | ||
125 | cpuid(0x80000008, &eax, &dummy, &dummy, &dummy); | ||
126 | c->x86_virt_bits = (eax >> 8) & 0xff; | ||
127 | c->x86_phys_bits = eax & 0xff; | ||
128 | } | ||
129 | } | 124 | } |
130 | 125 | ||
131 | void __cpuinit detect_ht(struct cpuinfo_x86 *c) | 126 | void __cpuinit detect_ht(struct cpuinfo_x86 *c) |
@@ -314,6 +309,13 @@ static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c) | |||
314 | if (c->extended_cpuid_level >= 0x80000007) | 309 | if (c->extended_cpuid_level >= 0x80000007) |
315 | c->x86_power = cpuid_edx(0x80000007); | 310 | c->x86_power = cpuid_edx(0x80000007); |
316 | 311 | ||
312 | if (c->extended_cpuid_level >= 0x80000008) { | ||
313 | u32 eax = cpuid_eax(0x80000008); | ||
314 | |||
315 | c->x86_virt_bits = (eax >> 8) & 0xff; | ||
316 | c->x86_phys_bits = eax & 0xff; | ||
317 | } | ||
318 | |||
317 | /* Assume all 64-bit CPUs support 32-bit syscall */ | 319 | /* Assume all 64-bit CPUs support 32-bit syscall */ |
318 | set_cpu_cap(c, X86_FEATURE_SYSCALL32); | 320 | set_cpu_cap(c, X86_FEATURE_SYSCALL32); |
319 | 321 | ||