• Martin Schwidefsky's avatar
    s390/cmpxchg: use compiler builtins · f318a122
    Martin Schwidefsky authored
    The kernel build for s390 fails for gcc compilers with version 3.x,
    set the minimum required version of gcc to version 4.3.
    
    As the atomic builtins are available with all gcc 4.x compilers,
    use the __sync_val_compare_and_swap and __sync_bool_compare_and_swap
    functions to replace the complex macro and inline assembler magic
    in include/asm/cmpxchg.h. The compiler can just-do-it and generates
    better code with the builtins.
    
    While we are at it use __sync_bool_compare_and_swap for the
    _raw_compare_and_swap function in the spinlock code as well.
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    f318a122
spinlock.h 6.18 KB