]> git.ipfire.org Git - people/ms/linux.git/commit
x86/intel/quark: Switch off CR4.PGE so TLB flush uses CR3 instead
authorBryan O'Donoghue <pure.logic@nexus-software.ie>
Tue, 23 Sep 2014 23:26:24 +0000 (00:26 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Oct 2014 16:43:06 +0000 (09:43 -0700)
commit51f461058119a3162f2c1980f99fd89dfada21c7
treee6483fed7ae21b836a8313c33ecff798bc583e73
parent0af1b6719eca8725b88ac0c0321da54a7fedb23a
x86/intel/quark: Switch off CR4.PGE so TLB flush uses CR3 instead

commit ee1b5b165c0a2f04d2107e634e51f05d0eb107de upstream.

Quark x1000 advertises PGE via the standard CPUID method
PGE bits exist in Quark X1000's PTEs. In order to flush
an individual PTE it is necessary to reload CR3 irrespective
of the PTE.PGE bit.

See Quark Core_DevMan_001.pdf section 6.4.11

This bug was fixed in Galileo kernels, unfixed vanilla kernels are expected to
crash and burn on this platform.

Signed-off-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Cc: Borislav Petkov <bp@alien8.de>
Link: http://lkml.kernel.org/r/1411514784-14885-1-git-send-email-pure.logic@nexus-software.ie
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/cpu/intel.c