This is the latest patch series for adding rust bindings for controlling
local processor interrupts, adding support for spinlocks in rust that
are acquired with local processor interrupts disabled, and implementing
local interrupt controls through refcounting in the kernel.
The previous version of this patch series can be found here:
https://lore.kernel.org/all/20260205204709.528234-1-lyude@redhat.com/
This patch series applies on top of boqun's rust-sync branch:
https://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux.git/?h=rust-sync
Now that we've gotten the C-side of these changes in, this patch series
is now exclusively concerned with the rust side of these changes. For
more information on how we came to the design for the C side of the API,
see the explanation in the previous version of the patch series.
Boqun Feng (1):
rust: helper: Add spin_{un,}lock_irq_{enable,disable}() helpers
Lyude Paul (4):
rust: Introduce interrupt module
rust: sync: use super::* in spinlock.rs
rust: sync: Add SpinLockIrq
rust: sync: Introduce SpinLockIrq::lock_with() and friends
FULL CHANGELOG FOR EACH PATCH AVAILABLE IN THE PATCH UNDER THE CUT LINE
rust/helpers/helpers.c | 1 +
rust/helpers/interrupt.c | 18 ++
rust/helpers/spinlock.c | 15 ++
rust/helpers/sync.c | 5 +
rust/kernel/interrupt.rs | 89 ++++++++
rust/kernel/lib.rs | 1 +
rust/kernel/sync.rs | 9 +-
rust/kernel/sync/lock/global.rs | 3 +
rust/kernel/sync/lock/spinlock.rs | 331 +++++++++++++++++++++++++++++-
9 files changed, 466 insertions(+), 6 deletions(-)
create mode 100644 rust/helpers/interrupt.c
create mode 100644 rust/kernel/interrupt.rs
base-commit: 4a653dbaf6f3a8c950a72e4b78e93576e1916381
--
2.53.0