diff options
author | 2007-05-21 14:31:53 +0200 | |
---|---|---|
committer | 2007-05-21 09:56:57 -0700 | |
commit | 17304383ebc1ce68a88030ac4d18ea549d9578c7 (patch) | |
tree | ddeebffef6841cc421e9fc9bf5429b4a97057363 /arch/i386/kernel/cpu/mtrr/state.c | |
parent | x86_64: vsyscall time() fix (diff) | |
download | linux-dev-17304383ebc1ce68a88030ac4d18ea549d9578c7.tar.xz linux-dev-17304383ebc1ce68a88030ac4d18ea549d9578c7.zip |
i386: fix PGE mask
cr4 is a 32-bit register, so casting the mask to an unsigned char is wrong,
as it clears more than the PGE bit.
Signed-off-by: Brian Gerst <bgerst@didntduck.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to '')
-rw-r--r-- | arch/i386/kernel/cpu/mtrr/state.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/i386/kernel/cpu/mtrr/state.c b/arch/i386/kernel/cpu/mtrr/state.c index f62ecd15811a..7b39a2f954d9 100644 --- a/arch/i386/kernel/cpu/mtrr/state.c +++ b/arch/i386/kernel/cpu/mtrr/state.c @@ -19,7 +19,7 @@ void set_mtrr_prepare_save(struct set_mtrr_context *ctxt) /* Save value of CR4 and clear Page Global Enable (bit 7) */ if ( cpu_has_pge ) { ctxt->cr4val = read_cr4(); - write_cr4(ctxt->cr4val & (unsigned char) ~(1 << 7)); + write_cr4(ctxt->cr4val & ~X86_CR4_PGE); } /* Disable and flush caches. Note that wbinvd flushes the TLBs as |