diff options
Diffstat (limited to 'arch/x86/kernel/setup_64.c')
-rw-r--r-- | arch/x86/kernel/setup_64.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c index 22c14e21c97c..80d80fab7006 100644 --- a/arch/x86/kernel/setup_64.c +++ b/arch/x86/kernel/setup_64.c | |||
@@ -70,6 +70,7 @@ | |||
70 | #include <asm/ds.h> | 70 | #include <asm/ds.h> |
71 | #include <asm/topology.h> | 71 | #include <asm/topology.h> |
72 | #include <asm/trampoline.h> | 72 | #include <asm/trampoline.h> |
73 | #include <asm/pat.h> | ||
73 | 74 | ||
74 | #include <mach_apic.h> | 75 | #include <mach_apic.h> |
75 | #ifdef CONFIG_PARAVIRT | 76 | #ifdef CONFIG_PARAVIRT |
@@ -1063,25 +1064,19 @@ static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c) | |||
1063 | if (c->extended_cpuid_level >= 0x80000007) | 1064 | if (c->extended_cpuid_level >= 0x80000007) |
1064 | c->x86_power = cpuid_edx(0x80000007); | 1065 | c->x86_power = cpuid_edx(0x80000007); |
1065 | 1066 | ||
1066 | |||
1067 | clear_cpu_cap(c, X86_FEATURE_PAT); | ||
1068 | |||
1069 | switch (c->x86_vendor) { | 1067 | switch (c->x86_vendor) { |
1070 | case X86_VENDOR_AMD: | 1068 | case X86_VENDOR_AMD: |
1071 | early_init_amd(c); | 1069 | early_init_amd(c); |
1072 | if (c->x86 >= 0xf && c->x86 <= 0x11) | ||
1073 | set_cpu_cap(c, X86_FEATURE_PAT); | ||
1074 | break; | 1070 | break; |
1075 | case X86_VENDOR_INTEL: | 1071 | case X86_VENDOR_INTEL: |
1076 | early_init_intel(c); | 1072 | early_init_intel(c); |
1077 | if (c->x86 == 0xF || (c->x86 == 6 && c->x86_model >= 15)) | ||
1078 | set_cpu_cap(c, X86_FEATURE_PAT); | ||
1079 | break; | 1073 | break; |
1080 | case X86_VENDOR_CENTAUR: | 1074 | case X86_VENDOR_CENTAUR: |
1081 | early_init_centaur(c); | 1075 | early_init_centaur(c); |
1082 | break; | 1076 | break; |
1083 | } | 1077 | } |
1084 | 1078 | ||
1079 | validate_pat_support(c); | ||
1085 | } | 1080 | } |
1086 | 1081 | ||
1087 | /* | 1082 | /* |