[PATCH for 2.6.22] [1/3] i386: Make CMPXCHG64 only dependent on PAE

From: Andi Kleen
Date: Fri Jun 22 2007 - 20:29:42 EST



It is only used for PAE kernels in set_64bit.

The problem is that due to a old Windows bug many CPUs need magic MSRs
to enable CMPXCHG64, and we can't do that nicely early enough before
it is potentially used.

But since we only need it in PAE kernels so only force the checking
for CMPXCHG65 with PAE.

This fixes a boot failure on Transmeta Crusoe

Signed-off-by: Andi Kleen <ak@xxxxxxx>

---
arch/i386/Kconfig.cpu | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/arch/i386/Kconfig.cpu
===================================================================
--- linux.orig/arch/i386/Kconfig.cpu
+++ linux/arch/i386/Kconfig.cpu
@@ -299,7 +299,7 @@ config X86_POPAD_OK

config X86_CMPXCHG64
bool
- depends on !M386 && !M486
+ depends on X86_PAE
default y

config X86_ALIGNMENT_16
Index: linux/arch/i386/Kconfig
===================================================================
--- linux.orig/arch/i386/Kconfig
+++ linux/arch/i386/Kconfig
@@ -541,7 +541,7 @@ config HIGHMEM4G

config HIGHMEM64G
bool "64GB"
- depends on X86_CMPXCHG64
+ depends on !M386 && !M486
help
Select this if you have a 32-bit processor and more than 4
gigabytes of physical RAM.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/