aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2008-05-08 03:18:43 -0400
committerIngo Molnar <mingo@elte.hu>2008-05-08 09:43:51 -0400
commit8d4a4300854f3971502e81dacd930704cb88f606 (patch)
treed091b49851e60af1530dd3d7cd54057f98d48ffb /include/asm-x86
parentcb3f43b22bbb5ddbf6ce3e2bac40ce6eba30aba0 (diff)
x86: cleanup PAT cpu validation
Move the scattered checks for PAT support to a single function. Its moved to addon_cpuid_features.c as this file is shared between 32 and 64 bit. Remove the manipulation of the PAT feature bit and just disable PAT in the PAT layer, based on the PAT bit provided by the CPU and the current CPU version/model white list. Change the boot CPU check so it works on Voyager somewhere in the future as well :) Also panic, when a secondary has PAT disabled but the primary one has alrady switched to PAT. We have no way to undo that. The white list is kept for now to ensure that we can rely on known to work CPU types and concentrate on the software induced problems instead of fighthing CPU erratas and subtle wreckage caused by not yet verified CPUs. Once the PAT code has stabilized enough, we can remove the white list and open the can of worms. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/asm-x86')
-rw-r--r--include/asm-x86/pat.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/asm-x86/pat.h b/include/asm-x86/pat.h
index 8b822b5a1786..88f60cc6a227 100644
--- a/include/asm-x86/pat.h
+++ b/include/asm-x86/pat.h
@@ -4,7 +4,13 @@
4 4
5#include <linux/types.h> 5#include <linux/types.h>
6 6
7#ifdef CONFIG_X86_PAT
7extern int pat_wc_enabled; 8extern int pat_wc_enabled;
9extern void validate_pat_support(struct cpuinfo_x86 *c);
10#else
11static const int pat_wc_enabled = 0;
12static inline void validate_pat_support(struct cpuinfo_x86 *c) { }
13#endif
8 14
9extern void pat_init(void); 15extern void pat_init(void);
10 16
@@ -12,5 +18,7 @@ extern int reserve_memtype(u64 start, u64 end,
12 unsigned long req_type, unsigned long *ret_type); 18 unsigned long req_type, unsigned long *ret_type);
13extern int free_memtype(u64 start, u64 end); 19extern int free_memtype(u64 start, u64 end);
14 20
21extern void pat_disable(char *reason);
22
15#endif 23#endif
16 24