mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
Pull locking updates from Ingo Molnar:
- Introduce cmpxchg128() -- aka. the demise of cmpxchg_double()
The cmpxchg128() family of functions is basically & functionally the
same as cmpxchg_double(), but with a saner interface.
Instead of a 6-parameter horror that forced u128 - u64/u64-halves
layout details on the interface and exposed users to complexity,
fragility & bugs, use a natural 3-parameter interface with u128
types.
- Restructure the generated atomic headers, and add kerneldoc comments
for all of the generic atomic{,64,_long}_t operations.
The generated definitions are much cleaner now, and come with
documentation.
- Implement lock_set_cmp_fn() on lockdep, for defining an ordering when
taking multiple locks of the same type.
This gets rid of one use of lockdep_set_novalidate_class() in the
bcache code.
- Fix raw_cpu_generic_try_cmpxchg() bug due to an unintended variable
shadowing generating garbage code on Clang on certain ARM builds.
* tag 'locking-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (43 commits)
locking/atomic: scripts: fix ${atomic}_dec_if_positive() kerneldoc
percpu: Fix self-assignment of __old in raw_cpu_generic_try_cmpxchg()
locking/atomic: treewide: delete arch_atomic_*() kerneldoc
locking/atomic: docs: Add atomic operations to the driver basic API documentation
locking/atomic: scripts: generate kerneldoc comments
docs: scripts: kernel-doc: accept bitwise negation like ~@var
locking/atomic: scripts: simplify raw_atomic*() definitions
locking/atomic: scripts: simplify raw_atomic_long*() definitions
locking/atomic: scripts: split pfx/name/sfx/order
locking/atomic: scripts: restructure fallback ifdeffery
locking/atomic: scripts: build raw_atomic_long*() directly
locking/atomic: treewide: use raw_atomic*_<op>()
locking/atomic: scripts: add trivial raw_atomic*_<op>()
locking/atomic: scripts: factor out order template generation
locking/atomic: scripts: remove leftover "${mult}"
locking/atomic: scripts: remove bogus order parameter
locking/atomic: xtensa: add preprocessor symbols
locking/atomic: x86: add preprocessor symbols
locking/atomic: sparc: add preprocessor symbols
locking/atomic: sh: add preprocessor symbols
...
44 lines
578 B
Bash
Executable File
44 lines
578 B
Bash
Executable File
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Print the minimum supported version of the given tool.
|
|
# When you raise the minimum version, please update
|
|
# Documentation/process/changes.rst as well.
|
|
|
|
set -e
|
|
|
|
if [ $# != 1 ]; then
|
|
echo "Usage: $0 toolname" >&2
|
|
exit 1
|
|
fi
|
|
|
|
case "$1" in
|
|
binutils)
|
|
echo 2.25.0
|
|
;;
|
|
gcc)
|
|
if [ "$SRCARCH" = parisc ]; then
|
|
echo 11.0.0
|
|
else
|
|
echo 5.1.0
|
|
fi
|
|
;;
|
|
llvm)
|
|
if [ "$SRCARCH" = s390 ]; then
|
|
echo 15.0.0
|
|
else
|
|
echo 11.0.0
|
|
fi
|
|
;;
|
|
rustc)
|
|
echo 1.68.2
|
|
;;
|
|
bindgen)
|
|
echo 0.56.0
|
|
;;
|
|
*)
|
|
echo "$1: unknown tool" >&2
|
|
exit 1
|
|
;;
|
|
esac
|