linux/rust/kernel
Alice Ryhl 56b1852e82 rust: maple_tree: add MapleTreeAlloc
To support allocation trees, we introduce a new type MapleTreeAlloc for
the case where the tree is created using MT_FLAGS_ALLOC_RANGE.  To ensure
that you can only call mtree_alloc_range on an allocation tree, we
restrict thta method to the new MapleTreeAlloc type.  However, all methods
on MapleTree remain accessible to MapleTreeAlloc as allocation trees can
use the other methods without issues.

Link: https://lkml.kernel.org/r/20250902-maple-tree-v3-3-fb5c8958fb1e@google.com
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Danilo Krummrich <dakr@kernel.org>
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Andrew Ballance <andrewjballance@gmail.com>
Cc: Björn Roy Baron <bjorn3_gh@protonmail.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Gary Guo <gary@garyguo.net>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Miguel Ojeda <ojeda@kernel.org>
Cc: Trevor Gross <tmgross@umich.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-21 14:22:19 -07:00
..
alloc rust: allocator: add KUnit tests for alignment guarantees 2025-09-13 16:55:00 -07:00
block pin-init changes for v6.17 2025-07-13 23:05:14 +02:00
device rust: device: implement FwNode::is_of_node() 2025-06-25 18:10:12 +02:00
drm rust: drm: don't pass the address of drm::Device to drm_dev_put() 2025-08-11 23:21:45 +02:00
fs rust: enable `clippy::ref_as_ptr` lint 2025-06-22 23:09:32 +02:00
io rust: io: fix broken intra-doc links to `platform::Device` 2025-07-22 11:08:59 +02:00
list rust: list: remove nonexistent generic parameter in link 2025-07-20 19:29:19 +02:00
mm rust: mm: update ARef and AlwaysRefCounted imports from sync::aref 2025-09-13 16:55:15 -07:00
net Rust changes for v6.17 2025-08-03 13:49:10 -07:00
sync Rust changes for v6.17 2025-08-03 13:49:10 -07:00
time rust: time: Pass correct timer mode ID to hrtimer_start_range_ns 2025-07-17 00:55:35 +02:00
.gitignore rust: Add warn_on macro 2025-07-23 02:05:58 +02:00
acpi.rs rust: device_id: split out index support into a separate trait 2025-07-16 23:38:21 +02:00
alloc.rs rust: add support for NUMA ids in allocations 2025-09-13 16:54:46 -07:00
auxiliary.rs rust: device_id: split out index support into a separate trait 2025-07-16 23:38:21 +02:00
bits.rs rust: bits: add support for bits/genmask macros 2025-07-19 23:18:18 +02:00
block.rs rust: block: introduce `kernel::block::mq` module 2024-06-14 07:45:04 -06:00
bug.rs rust: Add warn_on macro 2025-07-23 02:05:58 +02:00
build_assert.rs rust: add `build_error!` to the prelude 2025-01-10 00:19:09 +01:00
clk.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
configfs.rs rust: types: rename Opaque::raw_get to cast_into 2025-07-15 22:26:11 +02:00
cpu.rs device: rust: rename Device::as_ref() to Device::from_raw() 2025-07-16 23:37:49 +02:00
cpufreq.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
cpumask.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
cred.rs cred,rust: mark Credential methods inline 2025-03-04 17:07:49 -05:00
device.rs device: rust: expand documentation for Device 2025-08-12 15:23:46 +02:00
device_id.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
devres.rs rust: devres: fix leaking call to devm_add_action() 2025-08-14 01:52:15 +02:00
dma.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
driver.rs driver: rust: expand documentation for driver infrastructure 2025-08-12 15:23:49 +02:00
error.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
faux.rs rust: faux: fix C header link 2025-08-13 17:40:28 +02:00
firmware.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
fmt.rs rust: kernel: add `fmt` module 2025-07-21 01:16:35 +02:00
fs.rs rust: file: add Rust abstraction for `struct file` 2024-09-30 13:02:28 +02:00
generated_arch_reachable_asm.rs.S rust: Add warn_on macro 2025-07-23 02:05:58 +02:00
generated_arch_static_branch_asm.rs.S rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05:00
generated_arch_warn_asm.rs.S rust: Add warn_on macro 2025-07-23 02:05:58 +02:00
init.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
io.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
ioctl.rs rust: start using the `#[expect(...)]` attribute 2024-10-07 21:39:57 +02:00
jump_label.rs rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05:00
kunit.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
lib.rs rust: maple_tree: add MapleTree 2025-09-21 14:22:19 -07:00
list.rs rust: list: remove OFFSET constants 2025-07-19 23:18:18 +02:00
maple_tree.rs rust: maple_tree: add MapleTreeAlloc 2025-09-21 14:22:19 -07:00
miscdevice.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
mm.rs rust: mm: update ARef and AlwaysRefCounted imports from sync::aref 2025-09-13 16:55:15 -07:00
net.rs rust: core abstractions for network PHY drivers 2023-12-15 09:35:50 +00:00
of.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
opp.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
page.rs rust: page: optimize rust symbol generation for Page 2025-05-12 00:20:25 +02:00
pci.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
pid_namespace.rs rust: add PidNamespace 2024-10-08 15:44:36 +02:00
platform.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
prelude.rs rust: kernel: remove `fmt!`, fix clippy::uninlined-format-args 2025-07-21 01:15:51 +02:00
print.rs rust: use `kernel::{fmt,prelude::fmt!}` 2025-07-21 01:16:35 +02:00
rbtree.rs rust: rbtree: simplify finding `current` in `remove_current` 2025-07-14 23:53:35 +02:00
regulator.rs rust: regulator: add a bare minimum regulator abstraction 2025-07-15 15:07:40 +01:00
revocable.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
security.rs lsm,rust: reword "destroy" -> "release" in SecurityCtx 2025-03-04 15:44:46 -05:00
seq_file.rs rust: enable `clippy::ptr_as_ptr` lint 2025-06-22 23:08:42 +02:00
sizes.rs rust: sizes: add constants up to SZ_2G 2025-06-23 18:12:30 +02:00
static_assert.rs rust: use absolute paths in macros referencing core and kernel 2025-05-23 00:12:14 +02:00
std_vendor.rs rust: convert raw URLs to Markdown autolinks in comments 2025-05-12 00:20:25 +02:00
str.rs rust: kernel: use `core::ffi::CStr` method names 2025-07-21 01:16:36 +02:00
sync.rs rust: kernel: move ARef and AlwaysRefCounted to sync::aref 2025-07-22 13:52:14 +02:00
task.rs rust: task: Add Rust version of might_sleep() 2025-06-24 15:53:50 -07:00
time.rs rust: time: Add wrapper for fsleep() function 2025-06-30 13:22:05 +02:00
tracepoint.rs rust: add tracepoint support 2024-11-04 16:21:44 -05:00
transmute.rs rust: kernel: move `FromBytes` and `AsBytes` traits to a new `transmute` module 2024-10-10 00:33:42 +02:00
types.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
uaccess.rs rust: uaccess: use newtype for user pointers 2025-07-14 23:52:45 +02:00
workqueue.rs workqueue: rust: add delayed work items 2025-07-15 22:54:52 +02:00
xarray.rs rust: types: add FOREIGN_ALIGN to ForeignOwnable 2025-07-14 23:55:24 +02:00