diff --git a/arch/x86/kernel/cpu/cyrix.c b/arch/x86/kernel/cpu/cyrix.c
index db5868c..d3323d1 100644
--- a/arch/x86/kernel/cpu/cyrix.c
+++ b/arch/x86/kernel/cpu/cyrix.c
@@ -155,7 +155,7 @@ static void __cpuinit set_cx86_inc(void)
  *	Configure later MediaGX and/or Geode processor.
  */
 
-static void __cpuinit geode_configure(void)
+static void __cpuinit geode_configure(unsigned char dir1)
 {
 	unsigned long flags;
 	u8 ccr3;
@@ -174,7 +174,9 @@ static void __cpuinit geode_configure(void)
 
 	set_cx86_memwb();
 	set_cx86_reorder();
-	set_cx86_inc();
+	/* GXm and GXLV don't have incrementors */
+	if (dir1 >= 0x80)
+		set_cx86_inc();
 
 	local_irq_restore(flags);
 }
@@ -295,7 +297,7 @@ static void __cpuinit init_cyrix(struct cpuinfo_x86 *c)
 			 * GX1 : 0x8x          GX1  datasheet 56
 			 */
 			if ((0x30 <= dir1 && dir1 <= 0x6f) || (0x80 <= dir1 && dir1 <= 0x8f))
-				geode_configure();
+				geode_configure(dir1);
 			get_model_name(c);  /* get CPU marketing name */
 			return;
 		} else { /* MediaGX */