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)
committerIngo Molnar <mingo@kernel.org>
Wed, 24 Sep 2014 13:06:15 +0000 (15:06 +0200)
commitee1b5b165c0a2f04d2107e634e51f05d0eb107de
tree904a8f209123b629f33fbc0cbaa8913422c41952
parented2226bd4d4a53bcc3b2ea0b1b28e955ebc15da7
x86/intel/quark: Switch off CR4.PGE so TLB flush uses CR3 instead

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>
Cc: <stable@vger.kernel.org>
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>
arch/x86/kernel/cpu/intel.c