i386: mtrr crash fix
authorAndrew Morton <akpm@linux-foundation.org>
Sun, 1 Jul 2007 19:06:48 +0000 (12:06 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sun, 1 Jul 2007 19:29:44 +0000 (12:29 -0700)
Commit 3ebad5905609476a4ff1151a66b21d9794009961 ("[PATCH] x86: Save and
restore the fixed-range MTRRs of the BSP when suspending") added mtrr
operations without verifying that the CPU has MTRRs.  Crashes transmeta
CPUs.

Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: <linux@horizon.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/i386/kernel/cpu/mtrr/generic.c

index 5a551fb7ea7b93d84ef2136e213042ff5e2a3610..f6e46943e6efbf6a63ca2265ab6177d304338717 100644 (file)
@@ -65,7 +65,8 @@ get_fixed_ranges(mtrr_type * frs)
 
 void mtrr_save_fixed_ranges(void *info)
 {
-       get_fixed_ranges(mtrr_state.fixed_ranges);
+       if (cpu_has_mtrr)
+               get_fixed_ranges(mtrr_state.fixed_ranges);
 }
 
 static void print_fixed(unsigned base, unsigned step, const mtrr_type*types)