[GIT PULL][PATCH 00/36] Rust synchronization changes for v7.0
From: Boqun Feng <hidden>
Date: 2026-01-11 11:58:25
Also in:
rust-for-linux
Peter, Please pull the following changes of Rust synchronization for 7.0 into tip/locking/core, you can find the details of the changes in the git tag message below. Thanks! Regards, Boqun ---------------------------------------------------------------- The following changes since commit a45026cef17d1080c985adf28234d6c8475ad66f: locking/local_lock: Include more missing headers (2026-01-08 11:21:57 +0100) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux.git/ tags/rust-sync-7.0 for you to fetch changes up to ccf9e070116a81d29aae30db501d562c8efd1ed8: rust: sync: Inline various lock related methods (2026-01-10 10:53:46 +0800) ---------------------------------------------------------------- Rust synchronization changes for v7.0: - Add support for Atomic<i8/i16/bool> and replace most Rust native AtomicBool usages with Atomic<bool>, and further switching will require Atomic<Flag> - Clean up LockClassKey and improve its docs - Add missing Send and Sync trait impl for SetOnce - Make ARef Unpin as it is supposed to be - Add __rust_helper to a few Rust helpers as a preparation for helper LTO - Inline various lock related functions to avoid additional function calls. -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEj5IosQTPz8XU1wRHSXnow7UH+rgFAmljjIkACgkQSXnow7UH +rizPQgAi5rdVoIpjN9BaQtWVHcAwBhbD7WhboxDhsSdEl3yaw0E7OLML5IyupLP BUsrI5BAhwUaIpE/4PT9RePLCOeFqCKfz9eyQpb6uEwLVKcx8WESrItrlStqK8dG lAZEV07SwAWq/ARsgI02LZnyDQxxBrX8Q4FKZgglpaBxieVXmQjekcSF2W6s3lka qWXB7MU38D3DZjKr6Lpp8BjdI7qTNInEZDGtRPncIId+4Jj7V5IpEX/NThyrDLp1 M0UzXOMzexIfeSm3oz95II6R+GeDpruI6pN8QDtljaTL0Al5/z5yO8Zj9KIPGAl4 9JRUJ0pNVrAUljjJ4ap8hIMPlOWqjw== =JOZ1 -----END PGP SIGNATURE----- ---------------------------------------------------------------- Alice Ryhl (16): rust: sync: Refactor static_lock_class!() macro rust: sync: Clean up LockClassKey and its docs rust: sync: Implement Unpin for ARef rust: barrier: Add __rust_helper to helpers rust: blk: Add __rust_helper to helpers rust: completion: Add __rust_helper to helpers rust: cpu: Add __rust_helper to helpers rust: processor: Add __rust_helper to helpers rust: rcu: Add __rust_helper to helpers rust: refcount: Add __rust_helper to helpers rust: sync: Add __rust_helper to helpers rust: task: Add __rust_helper to helpers rust: time: Add __rust_helper to helpers rust: wait: Add __rust_helper to helpers rust: helpers: Move #define __rust_helper out of atomic.c rust: sync: Inline various lock related methods Boqun Feng (1): arch: um/x86: Select ARCH_SUPPORTS_ATOMIC_RMW for UML_X86 FUJITA Tomonori (19): rust: sync: set_once: Implement Send and Sync rust: helpers: Add i8/i16 atomic_read_acquire/atomic_set_release helpers rust: helpers: Add i8/i16 relaxed atomic helpers rust: helpers: Add i8/i16 atomic xchg helpers rust: helpers: Add i8/i16 atomic xchg_acquire helpers rust: helpers: Add i8/i16 atomic xchg_release helpers rust: helpers: Add i8/i16 atomic xchg_relaxed helpers rust: helpers: Add i8/i16 atomic try_cmpxchg helpers rust: helpers: Add i8/i16 atomic try_cmpxchg_acquire helpers rust: helpers: Add i8/i16 atomic try_cmpxchg_release helpers rust: helpers: Add i8/i16 atomic try_cmpxchg_relaxed helpers rust: sync: atomic: Prepare AtomicOps macros for i8/i16 support rust: sync: atomic: Add i8/i16 load and store support rust: sync: atomic: Add store_release/load_acquire tests rust: sync: atomic: Add i8/i16 xchg and cmpxchg support rust: sync: atomic: Add atomic bool support via i8 representation rust: sync: atomic: Add atomic bool tests rust: list: Switch to kernel::sync atomic primitives rust_binder: Switch to kernel::sync atomic primitives arch/x86/um/Kconfig | 1 + drivers/android/binder/rust_binder_main.rs | 20 ++--- drivers/android/binder/stats.rs | 8 +- drivers/android/binder/thread.rs | 24 +++-- drivers/android/binder/transaction.rs | 16 ++-- rust/helpers/atomic.c | 7 +- rust/helpers/atomic_ext.c | 139 +++++++++++++++++++++++++++++ rust/helpers/barrier.c | 6 +- rust/helpers/blk.c | 4 +- rust/helpers/completion.c | 2 +- rust/helpers/cpu.c | 2 +- rust/helpers/helpers.c | 3 + rust/helpers/mutex.c | 13 +-- rust/helpers/processor.c | 2 +- rust/helpers/rcu.c | 4 +- rust/helpers/refcount.c | 10 +-- rust/helpers/signal.c | 2 +- rust/helpers/spinlock.c | 13 +-- rust/helpers/sync.c | 4 +- rust/helpers/task.c | 24 ++--- rust/helpers/time.c | 14 +-- rust/helpers/wait.c | 2 +- rust/kernel/list/arc.rs | 14 ++- rust/kernel/sync.rs | 74 +++++++++++---- rust/kernel/sync/aref.rs | 3 + rust/kernel/sync/atomic/internal.rs | 114 ++++++++++++++++++----- rust/kernel/sync/atomic/predefine.rs | 55 +++++++++++- rust/kernel/sync/lock.rs | 7 ++ rust/kernel/sync/lock/global.rs | 2 + rust/kernel/sync/lock/mutex.rs | 5 ++ rust/kernel/sync/lock/spinlock.rs | 5 ++ rust/kernel/sync/set_once.rs | 8 ++ scripts/atomic/gen-rust-atomic-helpers.sh | 5 -- 33 files changed, 462 insertions(+), 150 deletions(-) create mode 100644 rust/helpers/atomic_ext.c