um: Use RWSEM_GENERIC_SPINLOCK on x86
authorRichard Weinberger <richard@nod.at>
Mon, 23 May 2011 20:51:33 +0000 (22:51 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 24 May 2011 12:33:35 +0000 (14:33 +0200)
Commit d12337 (rwsem: Remove redundant asmregparm annotation)
broke rwsem on UML.

As we cannot compile UML with -mregparm=3 and keeping asmregparm only
for UML is inadequate the easiest solution is using RWSEM_GENERIC_SPINLOCK.

Thanks to Thomas Gleixner for the idea.

Reported-by: Toralf F├Ârster <toralf.foerster@gmx.de>
Tested-by: Toralf F├Ârster <toralf.foerster@gmx.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: <stable@kernel.org> # .39.x
Link: http://lkml.kernel.org/r/%3C1306183893-26655-1-git-send-email-richard%40nod.at%3E
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/um/Kconfig.x86

index a9da516..795ea8e 100644 (file)
@@ -29,10 +29,10 @@ config X86_64
        def_bool 64BIT
 
 config RWSEM_XCHGADD_ALGORITHM
        def_bool 64BIT
 
 config RWSEM_XCHGADD_ALGORITHM
-       def_bool X86_XADD
+       def_bool X86_XADD && 64BIT
 
 config RWSEM_GENERIC_SPINLOCK
 
 config RWSEM_GENERIC_SPINLOCK
-       def_bool !X86_XADD
+       def_bool !RWSEM_XCHGADD_ALGORITHM
 
 config 3_LEVEL_PGTABLES
        bool "Three-level pagetables (EXPERIMENTAL)" if !64BIT
 
 config 3_LEVEL_PGTABLES
        bool "Three-level pagetables (EXPERIMENTAL)" if !64BIT