• Linus Torvalds's avatar
    Merge tag 'cmpxchg.2024.05.11a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 2e57d1d6
    Linus Torvalds authored
    Pull cmpxchg updates from Paul McKenney:
     "Provide one-byte and two-byte cmpxchg() support on sparc32, parisc,
      and csky
    
      This provides native one-byte and two-byte cmpxchg() support for
      sparc32 and parisc, courtesy of Al Viro. This support is provided by
      the same hashed-array-of-locks technique used for the other atomic
      operations provided for these two platforms.
    
      There is also emulated one-byte cmpxchg() support for csky using a new
      cmpxchg_emu_u8() function that uses a four-byte cmpxchg() to emulate
      the one-byte variant.
    
      Similar patches for emulation of one-byte cmpxchg() for arc, sh, and
      xtensa have not yet received maintainer acks, so they are slated for
      the v6.11 merge window"
    
    * tag 'cmpxchg.2024.05.11a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
      csky: Emulate one-byte cmpxchg
      lib: Add one-byte emulation function
      parisc: add u16 support to cmpxchg()
      parisc: add missing export of __cmpxchg_u8()
      parisc: unify implementations of __cmpxchg_u{8,32,64}
      parisc: __cmpxchg_u32(): lift conversion into the callers
      sparc32: add __cmpxchg_u{8,16}() and teach __cmpxchg() to handle those sizes
      sparc32: unify __cmpxchg_u{32,64}
      sparc32: make the first argument of __cmpxchg_u64() volatile u64 *
      sparc32: make __cmpxchg_u32() return u32
    2e57d1d6
Kconfig 48.3 KB