diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-05-13 19:05:39 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-05-13 19:05:39 +0200 |
commit | 2e57d1d6062af11420bc329ca004ebe3f3f6f0ee (patch) | |
tree | 45d7c77f76bd77a2c6f71ac9dea2648b385f5cdd /arch/Kconfig | |
parent | Merge tag 'rcu.next.v6.10' of https://github.com/urezki/linux (diff) | |
parent | csky: Emulate one-byte cmpxchg (diff) | |
download | linux-2e57d1d6062af11420bc329ca004ebe3f3f6f0ee.tar.xz linux-2e57d1d6062af11420bc329ca004ebe3f3f6f0ee.zip |
Merge tag 'cmpxchg.2024.05.11a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu
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
Diffstat (limited to 'arch/Kconfig')
-rw-r--r-- | arch/Kconfig | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/Kconfig b/arch/Kconfig index a51addb1abb9..9f2f3060a6ab 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -1617,4 +1617,7 @@ config CC_HAS_SANE_FUNCTION_ALIGNMENT # strict alignment always, even with -falign-functions. def_bool CC_HAS_MIN_FUNCTION_ALIGNMENT || CC_IS_CLANG +config ARCH_NEED_CMPXCHG_1_EMU + bool + endmenu |