[SPARC]: Mark as emulating cmpxchg, add appropriate depends for DRM.
authorMartin Habets <errandir_news@mph.eclipse.co.uk>
Tue, 29 May 2007 08:11:57 +0000 (01:11 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Tue, 29 May 2007 09:51:24 +0000 (02:51 -0700)
The DRM code depends on an atomic version of cmpxchg(), which is not
available on sparc32. Since other platforms besides sparc32 have this
issue a KCONFIG option is added for it.

Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/Kconfig
drivers/char/drm/Kconfig

index bd992c0..fbcc00c 100644 (file)
@@ -178,6 +178,13 @@ config ARCH_HAS_ILOG2_U64
        bool
        default n
 
+config EMULATED_CMPXCHG
+       bool
+       default y
+       help
+         Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
+         is emulated, and therefore it is not completely atomic.
+
 config SUN_PM
        bool
        default y
index ef833a1..0b7ffa5 100644 (file)
@@ -6,7 +6,7 @@
 #
 config DRM
        tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
-       depends on (AGP || AGP=n) && PCI
+       depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG
        help
          Kernel-level support for the Direct Rendering Infrastructure (DRI)
          introduced in XFree86 4.0. If you say Y here, you need to select