aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/cpu/common.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 8a5b185735e1..ce243f7d2d4e 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -848,6 +848,11 @@ void get_cpu_cap(struct cpuinfo_x86 *c)
848 c->x86_power = edx; 848 c->x86_power = edx;
849 } 849 }
850 850
851 if (c->extended_cpuid_level >= 0x80000008) {
852 cpuid(0x80000008, &eax, &ebx, &ecx, &edx);
853 c->x86_capability[CPUID_8000_0008_EBX] = ebx;
854 }
855
851 if (c->extended_cpuid_level >= 0x8000000a) 856 if (c->extended_cpuid_level >= 0x8000000a)
852 c->x86_capability[CPUID_8000_000A_EDX] = cpuid_edx(0x8000000a); 857 c->x86_capability[CPUID_8000_000A_EDX] = cpuid_edx(0x8000000a);
853 858
@@ -871,7 +876,6 @@ static void get_cpu_address_sizes(struct cpuinfo_x86 *c)
871 876
872 c->x86_virt_bits = (eax >> 8) & 0xff; 877 c->x86_virt_bits = (eax >> 8) & 0xff;
873 c->x86_phys_bits = eax & 0xff; 878 c->x86_phys_bits = eax & 0xff;
874 c->x86_capability[CPUID_8000_0008_EBX] = ebx;
875 } 879 }
876#ifdef CONFIG_X86_32 880#ifdef CONFIG_X86_32
877 else if (cpu_has(c, X86_FEATURE_PAE) || cpu_has(c, X86_FEATURE_PSE36)) 881 else if (cpu_has(c, X86_FEATURE_PAE) || cpu_has(c, X86_FEATURE_PSE36))