• Mark Rutland's avatar
    locking/atomic: cmpxchg: support ARCH_ATOMIC · 82b993e8
    Mark Rutland authored
    We'd like all architectures to convert to ARCH_ATOMIC, as this will
    enable functionality, and once all architectures are converted it will
    be possible to make significant cleanups to the atomic headers.
    
    A number of architectures use asm-generic/cmpxchg.h or
    asm-generic/cmpxhg-local.h, and it's impractical to convert the headers
    and all these architectures in one go. To make it possible to convert
    them one-by-one, let's make the asm-generic implementation function as
    either cmpxchg*() or arch_cmpxchg*() depending on whether ARCH_ATOMIC is
    selected. To do this, the generic implementations are prefixed as
    generic_cmpxchg_*(), and preprocessor definitions map
    cmpxchg_*()/arch_cmpxchg_*() onto these as appropriate.
    
    Once all users are moved over to ARCH_ATOMIC the ifdeffery in the header
    can be simplified and/or removed entirely.
    
    For existing users (none of which select ARCH_ATOMIC), there should be
    no functional change as a result of this patch.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20210525140232.53872-13-mark.rutland@arm.com
    82b993e8
cmpxchg.h 2.74 KB