mirror-linux/rust/helpers
Linus Torvalds 7393febcb1 Locking updates for v7.1:
Mutexes:
 
  - Add killable flavor to guard definitions (Davidlohr Bueso)
  - Remove the list_head from struct mutex (Matthew Wilcox)
  - Rename mutex_init_lockep() (Davidlohr Bueso)
 
 rwsems:
 
  - Remove the list_head from struct rw_semaphore and
    replace it with a single pointer (Matthew Wilcox)
  - Fix logic error in rwsem_del_waiter() (Andrei Vagin)
 
 Semaphores:
 
  - Remove the list_head from struct semaphore (Matthew Wilcox)
 
 Jump labels:
 
  - Use ATOMIC_INIT() for initialization of .enabled (Thomas Weißschuh)
  - Remove workaround for old compilers in initializations
    (Thomas Weißschuh)
 
 Lock context analysis changes and improvements:
 
  - Add context analysis for rwsems (Peter Zijlstra)
  - Fix rwlock and spinlock lock context annotations (Bart Van Assche)
  - Fix rwlock support in <linux/spinlock_up.h> (Bart Van Assche)
  - Add lock context annotations in the spinlock implementation
    (Bart Van Assche)
  - signal: Fix the lock_task_sighand() annotation (Bart Van Assche)
  - ww-mutex: Fix the ww_acquire_ctx function annotations
    (Bart Van Assche)
  - Add lock context support in do_raw_{read,write}_trylock()
    (Bart Van Assche)
  - arm64, compiler-context-analysis: Permit alias analysis through
    __READ_ONCE() with CONFIG_LTO=y (Marco Elver)
  - Add __cond_releases() (Peter Zijlstra)
  - Add context analysis for mutexes (Peter Zijlstra)
  - Add context analysis for rtmutexes (Peter Zijlstra)
  - Convert futexes to compiler context analysis (Peter Zijlstra)
 
 Rust integration updates:
 
  - Add atomic fetch_sub() implementation (Andreas Hindborg)
  - Refactor various rust_helper_ methods for expansion (Boqun Feng)
  - Add Atomic<*{mut,const} T> support (Boqun Feng)
  - Add atomic operation helpers over raw pointers (Boqun Feng)
  - Add performance-optimal Flag type for atomic booleans, to avoid
    slow byte-sized RMWs on architectures that don't support them.
    (FUJITA Tomonori)
  - Misc cleanups and fixes (Andreas Hindborg, Boqun Feng,
    FUJITA Tomonori)
 
 LTO support updates:
 
  - arm64: Optimize __READ_ONCE() with CONFIG_LTO=y (Marco Elver)
  - compiler: Simplify generic RELOC_HIDE() (Marco Elver)
 
 Miscellaneous fixes and cleanups by Peter Zijlstra, Randy Dunlap,
 Thomas Weißschuh, Davidlohr Bueso and Mikhail Gavrilov.
 
 Signed-off-by: Ingo Molnar <mingo@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmncnGERHG1pbmdvQGtl
 cm5lbC5vcmcACgkQEnMQ0APhK1ig7Q//a3UgHjUe96/zuJIv/X1lt5MU0GHP/m/n
 Rf6c39P0VWV6iupJtZ6gPmtQBQDyqWsnfE9S6PFDW4P/Njn0CGEBhk5bcYiN7dc5
 pN0hfM67rY1Ids2FJo5JVIxw2pNZpZHU4v3dJC84xH1cPwmccHxt3XW67iQnJCY9
 6m7RJ3nUfmNC1qLGKtAFQp3N91hK+BYxqZQ1Wn6a0lRWfmYY7WDs8qrr5N6Ezn7W
 53ZNXXbXUC09iOO/slOZmFD5tDrp5Z1nPYTeOdFnWYC5SoTvkfauTqmfZRN5sFad
 8vRxXHuCsdBthNF+ljobBUhZx9QL4UJMGOJTFVp9dZSj13vI7UNlbfAtwMKM8lsR
 L+v+GSsGdQWwrhzaiz53k6ZuUUDECltjwKFFUBy9RPFMtKkpKsgjW+X6I+SFeTQW
 QAPzaA/fEK45bvSPUcjn09kKKC1EVIjHQ6NvByoVjPABz92PpJgOR0si2PW5F314
 7sKzk4Ra5x8NGDSEiC9uSwB7mIv56/lUq5zuVoz3CB2rehqIpPdeieE8TaXvcmdK
 8otsWYcUXDcj/d6en9XBzb0t3LpQ1TumcOGw3xUJhrSoB4DvmWgW788SbGIKklR9
 KFQLU2USlm4u8JHEFXOAeaDhWME+eCqP5FCq3YTqxLksiA+oYx3Xui1R+5L4yjRs
 bVbp+BIs3N4=
 =aw95
 -----END PGP SIGNATURE-----

Merge tag 'locking-core-2026-04-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull locking updates from Ingo Molnar:
 "Mutexes:

   - Add killable flavor to guard definitions (Davidlohr Bueso)

   - Remove the list_head from struct mutex (Matthew Wilcox)

   - Rename mutex_init_lockep() (Davidlohr Bueso)

  rwsems:

   - Remove the list_head from struct rw_semaphore and
     replace it with a single pointer (Matthew Wilcox)

   - Fix logic error in rwsem_del_waiter() (Andrei Vagin)

  Semaphores:

   - Remove the list_head from struct semaphore (Matthew Wilcox)

  Jump labels:

   - Use ATOMIC_INIT() for initialization of .enabled (Thomas Weißschuh)

   - Remove workaround for old compilers in initializations
     (Thomas Weißschuh)

  Lock context analysis changes and improvements:

   - Add context analysis for rwsems (Peter Zijlstra)

   - Fix rwlock and spinlock lock context annotations (Bart Van Assche)

   - Fix rwlock support in <linux/spinlock_up.h> (Bart Van Assche)

   - Add lock context annotations in the spinlock implementation
     (Bart Van Assche)

   - signal: Fix the lock_task_sighand() annotation (Bart Van Assche)

   - ww-mutex: Fix the ww_acquire_ctx function annotations
     (Bart Van Assche)

   - Add lock context support in do_raw_{read,write}_trylock()
     (Bart Van Assche)

   - arm64, compiler-context-analysis: Permit alias analysis through
     __READ_ONCE() with CONFIG_LTO=y (Marco Elver)

   - Add __cond_releases() (Peter Zijlstra)

   - Add context analysis for mutexes (Peter Zijlstra)

   - Add context analysis for rtmutexes (Peter Zijlstra)

   - Convert futexes to compiler context analysis (Peter Zijlstra)

  Rust integration updates:

   - Add atomic fetch_sub() implementation (Andreas Hindborg)

   - Refactor various rust_helper_ methods for expansion (Boqun Feng)

   - Add Atomic<*{mut,const} T> support (Boqun Feng)

   - Add atomic operation helpers over raw pointers (Boqun Feng)

   - Add performance-optimal Flag type for atomic booleans, to avoid
     slow byte-sized RMWs on architectures that don't support them.
     (FUJITA Tomonori)

   - Misc cleanups and fixes (Andreas Hindborg, Boqun Feng, FUJITA
     Tomonori)

  LTO support updates:

   - arm64: Optimize __READ_ONCE() with CONFIG_LTO=y (Marco Elver)

   - compiler: Simplify generic RELOC_HIDE() (Marco Elver)

  Miscellaneous fixes and cleanups by Peter Zijlstra, Randy Dunlap,
  Thomas Weißschuh, Davidlohr Bueso and Mikhail Gavrilov"

* tag 'locking-core-2026-04-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
  compiler: Simplify generic RELOC_HIDE()
  locking: Add lock context annotations in the spinlock implementation
  locking: Add lock context support in do_raw_{read,write}_trylock()
  locking: Fix rwlock support in <linux/spinlock_up.h>
  lockdep: Raise default stack trace limits when KASAN is enabled
  cleanup: Optimize guards
  jump_label: remove workaround for old compilers in initializations
  jump_label: use ATOMIC_INIT() for initialization of .enabled
  futex: Convert to compiler context analysis
  locking/rwsem: Fix logic error in rwsem_del_waiter()
  locking/rwsem: Add context analysis
  locking/rtmutex: Add context analysis
  locking/mutex: Add context analysis
  compiler-context-analysys: Add __cond_releases()
  locking/mutex: Remove the list_head from struct mutex
  locking/semaphore: Remove the list_head from struct semaphore
  locking/rwsem: Remove the list_head from struct rw_semaphore
  rust: atomic: Update a safety comment in impl of `fetch_add()`
  rust: sync: atomic: Update documentation for `fetch_add()`
  rust: sync: atomic: Add fetch_sub()
  ...
2026-04-14 12:36:25 -07:00
..
atomic.c rust: helpers: Move #define __rust_helper out of atomic.c 2026-01-09 19:01:42 +08:00
atomic_ext.c rust: sync: atomic: Add Atomic<*{mut,const} T> support 2026-03-08 11:06:49 +01:00
auxiliary.c rust: auxiliary: add __rust_helper to helpers 2025-12-15 22:19:53 +01:00
barrier.c rust: barrier: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
binder.c rust: binder: add __rust_helper to helpers 2025-12-29 12:10:47 +01:00
bitmap.c rust: bitmap: add __rust_helper to helpers 2026-01-06 12:14:10 -05:00
bitops.c bitmap updates for v6.20 2026-02-10 11:39:45 -08:00
blk.c rust: blk: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
bug.c rust: bug: add __rust_helper to helpers 2026-01-26 03:48:25 +01:00
build_assert.c
build_bug.c rust: err: add __rust_helper to helpers 2026-01-26 03:49:04 +01:00
clk.c rust: clk: add __rust_helper to helpers 2026-03-10 11:29:00 +01:00
completion.c rust: completion: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
cpu.c rust: cpu: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
cpufreq.c rust: cpufreq: add __rust_helper to helpers 2026-01-27 11:21:22 +05:30
cpumask.c rust: cpumask: add __rust_helper to helpers 2026-01-06 12:14:10 -05:00
cred.c rust: cred: add __rust_helper to helpers 2026-01-06 20:30:09 -05:00
device.c rust: device: add __rust_helper to helpers 2025-12-15 22:26:10 +01:00
dma.c rust: dma: add missing __rust_helper annotations 2026-02-06 20:19:09 +01:00
drm.c rust: drm: add __rust_helper to helpers 2025-12-15 22:43:08 +01:00
err.c rust: err: add __rust_helper to helpers 2026-01-26 03:49:04 +01:00
fs.c rust: fs: add __rust_helper to helpers 2025-12-15 14:13:03 +01:00
helpers.c rust: helpers: #define __rust_helper 2026-03-30 02:03:52 +02:00
io.c rust: io: add __rust_helper to helpers 2025-12-15 22:26:10 +01:00
irq.c rust: irq: add __rust_helper to helpers 2025-12-15 22:26:10 +01:00
jump_label.c rust: jump_label: add __rust_helper to helpers 2026-03-10 11:29:16 +01:00
kunit.c rust: kunit: add __rust_helper to helpers 2026-01-05 15:32:03 -07:00
maple_tree.c rust: maple_tree: add __rust_helper to helpers 2026-01-26 03:49:09 +01:00
mm.c rust: mm: add __rust_helper to helpers 2026-01-26 03:49:56 +01:00
mutex.c rust: sync: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
of.c rust: of: add __rust_helper to helpers 2026-01-26 03:50:21 +01:00
page.c rust: mm: add __rust_helper to helpers 2026-01-26 03:49:56 +01:00
pci.c rust: pci: add __rust_helper to helpers 2025-12-15 22:39:11 +01:00
pid_namespace.c rust: pid_namespace: add __rust_helper to helpers 2025-12-15 14:13:03 +01:00
platform.c rust: platform: add __rust_helper to helpers 2025-12-15 22:39:42 +01:00
poll.c rust: poll: add __rust_helper to helpers 2025-12-15 14:13:04 +01:00
processor.c rust: processor: Add __rust_helper to helpers 2026-01-09 19:01:41 +08:00
property.c rust: property: add __rust_helper to helpers 2025-12-15 22:39:42 +01:00
pwm.c rust: pwm: Add __rust_helper to helpers 2026-01-20 18:52:43 +01:00
rbtree.c rust: rbtree: add __rust_helper to helpers 2026-01-26 03:50:41 +01:00
rcu.c rust: rcu: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
refcount.c rust: refcount: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
regulator.c rust: regulator: add __rust_helper to helpers 2025-12-14 19:37:55 +09:00
scatterlist.c rust: scatterlist: add __rust_helper to helpers 2025-12-15 22:39:42 +01:00
security.c rust: security: add __rust_helper to helpers 2026-01-06 20:30:09 -05:00
signal.c rust: task: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
slab.c rust: slab: add __rust_helper to helpers 2026-01-26 03:50:50 +01:00
spinlock.c rust: sync: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
sync.c rust: sync: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
task.c rust: task: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
time.c rust: time: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
uaccess.c rust: uaccess: add __rust_helper to helpers 2026-01-26 03:51:16 +01:00
usb.c rust: usb: add __rust_helper to helpers 2026-01-07 16:12:15 +01:00
vmalloc.c rust: mm: add __rust_helper to helpers 2026-01-26 03:49:56 +01:00
wait.c rust: wait: Add __rust_helper to helpers 2026-01-09 19:01:42 +08:00
workqueue.c rust: workqueue: add __rust_helper to helpers 2026-01-26 03:51:31 +01:00
xarray.c rust: xarray: add __rust_helper to helpers 2026-01-15 10:01:23 +01:00