diff options
author | Yinghai Lu <yhlu.kernel.send@gmail.com> | 2008-03-25 02:24:34 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 11:41:20 -0400 |
commit | 9307cacad0dfe3749f00303125c6f7f0523e5616 (patch) | |
tree | bc28bf08dc18dacbb2654a9a368f4e09c580dfab /arch/x86/kernel/cpu | |
parent | a7c7d0e91daebd7c5e51f9416d612b6a15e7e79a (diff) |
x86: pat cpu feature bit setting for known cpus
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r-- | arch/x86/kernel/cpu/common.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index 0dd87b8d6707..d999d7833bc2 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c | |||
@@ -309,6 +309,19 @@ static void __cpuinit early_get_cap(struct cpuinfo_x86 *c) | |||
309 | 309 | ||
310 | } | 310 | } |
311 | 311 | ||
312 | clear_cpu_cap(c, X86_FEATURE_PAT); | ||
313 | |||
314 | switch (c->x86_vendor) { | ||
315 | case X86_VENDOR_AMD: | ||
316 | if (c->x86 >= 0xf && c->x86 <= 0x11) | ||
317 | set_cpu_cap(c, X86_FEATURE_PAT); | ||
318 | break; | ||
319 | case X86_VENDOR_INTEL: | ||
320 | if (c->x86 == 0xF || (c->x86 == 6 && c->x86_model >= 15)) | ||
321 | set_cpu_cap(c, X86_FEATURE_PAT); | ||
322 | break; | ||
323 | } | ||
324 | |||
312 | } | 325 | } |
313 | 326 | ||
314 | /* | 327 | /* |
@@ -397,6 +410,18 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 *c) | |||
397 | init_scattered_cpuid_features(c); | 410 | init_scattered_cpuid_features(c); |
398 | } | 411 | } |
399 | 412 | ||
413 | clear_cpu_cap(c, X86_FEATURE_PAT); | ||
414 | |||
415 | switch (c->x86_vendor) { | ||
416 | case X86_VENDOR_AMD: | ||
417 | if (c->x86 >= 0xf && c->x86 <= 0x11) | ||
418 | set_cpu_cap(c, X86_FEATURE_PAT); | ||
419 | break; | ||
420 | case X86_VENDOR_INTEL: | ||
421 | if (c->x86 == 0xF || (c->x86 == 6 && c->x86_model >= 15)) | ||
422 | set_cpu_cap(c, X86_FEATURE_PAT); | ||
423 | break; | ||
424 | } | ||
400 | } | 425 | } |
401 | 426 | ||
402 | static void __cpuinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) | 427 | static void __cpuinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) |