i386: Make CMPXCHG64 only dependent on PAE
authorAndi Kleen <ak@suse.de>
Sat, 23 Jun 2007 00:29:23 +0000 (02:29 +0200)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 23 Jun 2007 01:41:18 +0000 (18:41 -0700)
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@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/i386/Kconfig
arch/i386/Kconfig.cpu

index 8770a5d..d2f6a24 100644 (file)
@@ -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.
index d7f6fb0..5c95ceb 100644 (file)
@@ -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