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
d7c8f21a8c
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>
This commit is contained in:
Родитель
0c752a9335
Коммит
0b827537e3
|
@ -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;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче