Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b827537 authored by venkatesh.pallipadi@intel.com's avatar venkatesh.pallipadi@intel.com Committed by H. Peter Anvin
Browse files

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
d7c8f21a 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: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
parent 0c752a93
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;
	}