From: Leendert van Doorn The old code cuts off the higher bits in CR4 (such as X86_CR4_OSFXSR, X86_CR4_OSXMMEXCPT). Signed-off-by: leendert@watson.ibm.com Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/cpu/mtrr/generic.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN arch/i386/kernel/cpu/mtrr/generic.c~arch-i386-kernel-cpu-mtrr-too-many-bits-are-masked-off-from-cr4 arch/i386/kernel/cpu/mtrr/generic.c --- 25/arch/i386/kernel/cpu/mtrr/generic.c~arch-i386-kernel-cpu-mtrr-too-many-bits-are-masked-off-from-cr4 2005-01-05 18:20:55.320268696 -0800 +++ 25-akpm/arch/i386/kernel/cpu/mtrr/generic.c 2005-01-05 18:20:55.323268240 -0800 @@ -258,7 +258,7 @@ static void prepare_set(void) /* Save value of CR4 and clear Page Global Enable (bit 7) */ if ( cpu_has_pge ) { cr4 = read_cr4(); - write_cr4(cr4 & (unsigned char) ~(1 << 7)); + write_cr4(cr4 & ~X86_CR4_PGE); } /* Flush all TLBs via a mov %cr3, %reg; mov %reg, %cr3 */ _