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 8770a5d0b1433fbad255d0de00bb8b21fecfb592..d2f6a247414dd2c224a3ebdfec052a4d87d826ee 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 d7f6fb0b30f234895c90554e34303d6f76990115..5c95ceb7f1225515ab3ad200a8f1e7a278a2ee18 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