linux/rust/kernel
Danilo Krummrich bed87375f9 rust: dma: tie Coherent and CoherentBox to the device's bound lifetime
Add a lifetime parameter to Coherent and CoherentBox that ties the DMA
allocation to the device's bound scope, ensuring it is freed before the
device is unbound.

DMA allocations carry device resources (e.g. IOMMU mappings) that must
not outlive the device's bound lifetime. Without a lifetime parameter,
there was no compile-time enforcement that a Coherent or CoherentBox is
dropped before the device is unbound.

Propagate the new lifetime parameter through all users.

Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260830193824.471089-5-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2026-09-04 17:58:47 +02:00
..
alloc drm for 7.3-rc1 2026-08-21 08:41:00 -07:00
block rust: block: fix GenDisk cleanup paths 2026-05-31 19:45:06 -06:00
debugfs rust: debugfs: drop 'static bound from ScopedDir file creation methods 2026-09-04 17:58:43 +02:00
device
drm drm for 7.3-rc1 2026-08-21 08:41:00 -07:00
fs
gpu rust: gpu: Add GPU buddy allocator bindings 2026-03-23 21:41:47 +01:00
interop rust: interop: Add list module for C linked list interface 2026-03-23 20:29:28 +01:00
io rust: io: register: use path fragment for alias destination 2026-08-03 22:30:32 +02:00
iommu drm for 7.3-rc1 2026-08-21 08:41:00 -07:00
irq rust: irq: make Registration compatible with lifetime-bound drivers 2026-08-04 23:30:34 +02:00
list Locking updates for v7.1: 2026-04-14 12:36:25 -07:00
mm mm: rename zap_page_range_single() to zap_vma_range() 2026-04-05 13:53:15 -07:00
net Char/Misc/IIO/etc driver update for 7.3-rc1 2026-08-25 09:38:50 -07:00
num rust: num: restrict bool conversion to unsigned Bounded 2026-08-24 13:21:12 +02:00
pci rust: pci: expose the allocated interrupt type 2026-08-17 01:43:31 +02:00
ptr rust: ptr: remove implicit index projection syntax 2026-06-05 10:16:47 +02:00
str
sync Char/Misc/IIO/etc driver update for 7.3-rc1 2026-08-25 09:38:50 -07:00
time hrtimer: add usage examples to documentation 2026-03-23 08:31:00 +01:00
types rust: types: introduce ForLt base trait for CovariantForLt 2026-07-11 19:42:03 +02:00
.gitignore
acpi.rs rust: driver: store pointers in DeviceId 2026-07-30 22:50:15 +02:00
alloc.rs rust: alloc: cleanup imports and use "kernel vertical" style 2026-05-20 17:34:17 +02:00
auxiliary.rs Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
bitfield.rs rust: bitfield: always inline test conversions 2026-08-10 06:58:31 +02:00
bitmap.rs rust: tests: add Kconfig for KUnit test 2026-06-08 02:30:33 +02:00
bits.rs rust: bits: always inline functions using build_assert with arguments 2026-01-18 20:40:11 +01:00
block.rs
bug.rs rust: bug: fix warn_on macro build error on UML 2026-08-10 07:14:24 +02:00
build_assert.rs rust: make build_assert module the home of related macros 2026-06-10 09:07:13 +02:00
clk.rs rust: clk: implement Send and Sync 2026-04-03 11:57:35 +02:00
configfs.rs rust: configfs: use LocalModule for THIS_MODULE 2026-08-12 09:36:26 +02:00
cpu.rs
cpufreq.rs CPUFreq arm updates for 7.3 2026-08-06 13:25:02 +02:00
cpumask.rs rust: cpumask: rename methods of Cpumask for clarity and consistency 2026-01-27 11:21:23 +05:30
cred.rs
debugfs.rs rust: debugfs: drop 'static bound from ScopedDir file creation methods 2026-09-04 17:58:43 +02:00
device_id.rs rust: driver: remove duplicate ID table 2026-07-30 22:50:15 +02:00
device.rs Linux 7.2-rc7 2026-08-10 01:20:05 +02:00
devres.rs Linux 7.2 2026-08-20 10:58:44 +10:00
dma.rs rust: dma: tie Coherent and CoherentBox to the device's bound lifetime 2026-09-04 17:58:47 +02:00
driver.rs rust: driver: remove open-coded matching logic 2026-07-30 22:50:15 +02:00
error.rs rust: error: add remaining error codes 2026-08-10 07:57:34 +02:00
faux.rs rust: faux: add Device type with AsBusDevice support 2026-07-12 15:55:51 +02:00
firmware.rs drm for 7.3-rc1 2026-08-21 08:41:00 -07:00
fmt.rs rust: fmt: route {:p} through HashedPtr to prevent address leaks 2026-08-12 11:58:50 +02:00
fs.rs
fwctl.rs fwctl 7.3 pull request 2026-08-19 12:51:36 -07:00
generated_arch_reachable_asm.rs.S
generated_arch_static_branch_asm.rs.S
generated_arch_warn_asm.rs.S
gpu.rs rust: gpu: Add GPU buddy allocator bindings 2026-03-23 21:41:47 +01:00
i2c.rs i2c for v7.3, part 2 2026-08-24 09:07:15 -07:00
id_pool.rs
impl_flags.rs rust: impl_flags: use bit helper in example 2026-08-10 06:44:10 +02:00
init.rs rust: treewide: replace __pinned_init with raw_[try_]init 2026-08-05 11:36:18 +01:00
interop.rs rust: interop: Add list module for C linked list interface 2026-03-23 20:29:28 +01:00
interrupt.rs rust: Introduce interrupt module 2026-08-10 12:53:09 +02:00
io.rs Linux 7.2 2026-08-20 10:58:44 +10:00
ioctl.rs rust: make build_assert module the home of related macros 2026-06-10 09:07:13 +02:00
iov.rs
irq.rs rust: irq: fix C header path in module docs 2026-07-21 00:48:45 +02:00
jump_label.rs rust: jump_label: skip arch-specific asm in testlib builds 2026-08-23 21:27:16 +02:00
Kconfig.test rust: bitfield: Add KUnit tests for bitfield 2026-06-09 04:13:07 +02:00
kunit.rs kunit,rust: Add ability to skip entire test suites 2026-06-29 15:48:26 -06:00
lib.rs fwctl 7.3 pull request 2026-08-19 12:51:36 -07:00
list.rs rust: kernel: list: fix incorrect pop_back example comment 2026-08-23 21:27:16 +02:00
maple_tree.rs
miscdevice.rs Char/Misc/IIO/etc driver update for 7.3-rc1 2026-08-25 09:38:50 -07:00
mm.rs
module_param.rs rust: module_param: support bool parameters 2026-08-06 13:29:03 +02:00
module.rs rust: module: add THIS_MODULE const to ModuleMetadata trait 2026-08-12 09:36:26 +02:00
num.rs rust: add functions and traits for lossless integer conversions 2026-08-13 13:41:28 +02:00
of.rs rust: driver: store pointers in DeviceId 2026-07-30 22:50:15 +02:00
opp.rs opp: rust: mark OPP methods as inline 2026-05-25 09:40:52 +05:30
page.rs mm.git review status for mm-hotfixes-stable..mm-stable 2026-06-19 10:14:34 -07:00
pci.rs drm for 7.3-rc1 2026-08-21 08:41:00 -07:00
pid_namespace.rs
platform.rs Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
prelude.rs rust: prelude: add zerocopy{,_derive}::IntoBytes 2026-06-17 00:32:42 +02:00
print.rs rust: print: fix broken _printk Rustdoc link 2026-08-03 08:03:24 +02:00
processor.rs
ptr.rs rust: io: add dynamically-sized Region type 2026-07-11 17:42:56 +02:00
pwm.rs pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
rbtree.rs Rust changes for v6.20 / v7.0 2026-02-10 11:53:01 -08:00
regulator.rs rust: regulator: do not assume that regulator_get() returns non-null 2026-03-24 13:08:21 +00:00
revocable.rs rust: revocable: Use LKMM atomics instead of Rust atomics 2026-08-04 05:52:54 -07:00
safety.rs rust: safety: introduce unsafe_precondition_assert! macro 2026-02-02 08:10:48 +01:00
scatterlist.rs
security.rs
seq_file.rs rust: seq_file: replace kernel::c_str! with C-Strings 2026-01-29 15:32:40 +01:00
serdev.rs Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
sizes.rs rust: sizes: add SizeConstants trait for device address space constants 2026-04-07 12:57:50 +02:00
soc.rs
std_vendor.rs
str.rs rust: str: clean unused import for Rust >= 1.98 2026-06-10 09:07:13 +02:00
sync.rs RCU updates: 2026-08-23 18:00:22 -07:00
task.rs Char/Misc/IIO/etc driver update for 7.3-rc1 2026-08-25 09:38:50 -07:00
time.rs rust: time: add Delta::as_millis_ceil() 2026-08-11 11:34:06 +02:00
tracepoint.rs
transmute.rs rust: transmute: simplify code with Rust 1.80.0 split_at_*checked() 2026-04-07 10:00:24 +02:00
types.rs Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
uaccess.rs rust: dma: tie Coherent and CoherentBox to the device's bound lifetime 2026-09-04 17:58:47 +02:00
usb.rs USB / Thunderbolt changes for 7.3-rc1 2026-08-25 10:44:46 -07:00
workqueue.rs rust: workqueue: use new sync::aref path for imports 2026-03-26 15:45:34 +00:00
xarray.rs rust: make build_assert module the home of related macros 2026-06-10 09:07:13 +02:00