summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorvenkatesh.pallipadi@intel.com <venkatesh.pallipadi@intel.com>2009-05-22 13:23:37 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-05-22 13:33:27 -0700
commit0b827537e339c084ac9384df588969d400be9e0d (patch)
tree26ae170ba3fd7077c28613f8cc7aba7d1b133430 /arch/x86
parent0c752a93353d9b17dbe148312d732fbe06d235e1 (diff)
downloadlinux-stable-0b827537e339c084ac9384df588969d400be9e0d.tar.gz
linux-stable-0b827537e339c084ac9384df588969d400be9e0d.tar.bz2
linux-stable-0b827537e339c084ac9384df588969d400be9e0d.zip
x86: bugfix wbinvd() model check instead of family check
wbinvd is supported on all CPUs 486 or later. But, pageattr.c is checking x86_model >= 4 before wbinvd(), which looks like an oversight bug. It was first introduced at one place by changeset d7c8f21a8cad0228c7c5ce2bb6dbd95d1ee49d13 and got copied over to second place in the same file later. [ Impact: fix missing cache flush on early-model CPUs, potential data corruption ] Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/mm/pageattr.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 797f9f107cb6..2cc019a3f71b 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -153,7 +153,7 @@ static void __cpa_flush_all(void *arg)
*/
__flush_tlb_all();
- if (cache && boot_cpu_data.x86_model >= 4)
+ if (cache && boot_cpu_data.x86 >= 4)
wbinvd();
}
@@ -218,7 +218,7 @@ static void cpa_flush_array(unsigned long *start, int numpages, int cache,
/* 4M threshold */
if (numpages >= 1024) {
- if (boot_cpu_data.x86_model >= 4)
+ if (boot_cpu_data.x86 >= 4)
wbinvd();
return;
}