mirror-linux/rust/kernel
Alexandre Courbot 816718c611 rust: dma: add from-slice constructors for Coherent and CoherentBox
A very common pattern is to create a block of coherent memory with the
content of an already-existing slice of bytes (e.g. a loaded firmware
blob).

`CoherentBox` makes this easier, but still implies a potentially
panicking operation with `copy_from_slice` that requires a `PANIC`
comment.

Add `from_slice_with_attrs` and `from_slice` methods to both `Coherent`
and `CoherentBox` to turn this into a trivial one-step operation.

Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Danilo Krummrich <dakr@kernel.org>
Link: https://patch.msgid.link/20260327-b4-nova-dma-removal-v2-1-616e1d0b5cb3@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
2026-03-28 22:20:07 +09:00
..
alloc
block rust: block: mq: use pin_init::zeroed() for tag_set 2026-01-21 07:37:15 -07:00
debugfs Driver core changes for 7.0-rc1 2026-02-11 17:43:59 -08:00
device rust: device: replace `kernel::c_str!` with C-Strings 2025-12-22 17:30:24 +01:00
drm rust: drm: gem: shmem: Add DRM shmem helper abstraction 2026-03-27 21:38:40 +01: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: introduce `write_reg` and `LocatedRegister` 2026-03-17 20:04:11 +01:00
iommu rust: iommu: fix `srctree` link warning 2026-01-22 09:19:30 +01:00
irq Rust fixes for v7.0-rc1 2026-02-22 08:43:31 -08:00
list Rust fixes for v7.0-rc1 2026-02-22 08:43:31 -08:00
mm
net rust: net: replace `kernel::c_str!` with C-Strings 2026-01-05 16:32:39 -08:00
num rust: num: make Bounded::get const 2026-03-17 20:04:11 +01:00
pci rust: pci: io: remove overloaded Io methods of ConfigSpace 2026-03-17 20:02:09 +01:00
ptr rust: ptr: add projection infrastructure 2026-03-07 23:06:17 +01:00
str
sync Char/Misc/IIO driver changes for 7.0-rc1 2026-02-17 09:11:04 -08:00
time
.gitignore
acpi.rs
alloc.rs
auxiliary.rs Linux 6.19-rc7 2026-01-26 13:23:52 +01:00
bitmap.rs
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: Support DEBUG_BUGVERBOSE_DETAILED option 2026-01-30 05:18:17 +01:00
build_assert.rs rust: build_assert: add instructions for use with function arguments 2026-01-19 01:13:22 +01:00
clk.rs rust: clk: replace `kernel::c_str!` with C-Strings 2026-01-30 01:08:24 +01:00
configfs.rs rust: configfs: replace `kernel::c_str!` with C-Strings 2026-01-15 09:26:49 +01:00
cpu.rs
cpufreq.rs rust: cpufreq: suppress clippy::double_parens in Policy doctest 2026-03-12 11:01:23 +01: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: Use kernel Atomic type in docs example 2026-01-19 15:02:46 +01:00
device.rs rust: device: add device name method 2026-03-24 23:51:23 +01:00
device_id.rs rust: device_id: replace incorrect word in safety documentation 2025-12-29 14:09:18 +01:00
devres.rs rust: devres: fix race condition due to nesting 2026-02-07 01:03:49 +01:00
dma.rs rust: dma: add from-slice constructors for Coherent and CoherentBox 2026-03-28 22:20:07 +09:00
driver.rs Linux 6.19-rc7 2026-01-26 13:23:52 +01:00
error.rs rust: add EMSGSIZE error code 2026-03-10 16:07:33 +09:00
faux.rs rust: faux: use "kernel vertical" style for imports 2026-01-07 19:56:00 +01:00
firmware.rs
fmt.rs rust: fmt: Fix grammar in Adapter description 2026-01-04 23:51:35 +01:00
fs.rs
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 Rust changes for v6.20 / v7.0 2026-02-10 11:53:01 -08:00
id_pool.rs
impl_flags.rs rust: add `impl_flags!` macro for defining common bitflag operations 2026-02-02 08:09:11 +01:00
init.rs rust: init: use `#[default_error(err)]` for the initializer macros 2026-01-17 10:51:42 +01:00
interop.rs rust: interop: Add list module for C linked list interface 2026-03-23 20:29:28 +01:00
io.rs rust: io: introduce `write_reg` and `LocatedRegister` 2026-03-17 20:04:11 +01:00
ioctl.rs
iov.rs
irq.rs
jump_label.rs
kunit.rs rust: kunit: fix warning when !CONFIG_PRINTK 2026-03-02 10:01:15 -07:00
lib.rs rust: drm: gem: shmem: Add DRM shmem helper abstraction 2026-03-27 21:38:40 +01:00
list.rs
maple_tree.rs rust: maple_tree: rcu_read_lock() in destructor to silence lockdep 2025-12-23 11:23:15 -08:00
miscdevice.rs rust: redefine `bindings::compat_ptr_ioctl` in Rust 2026-01-16 14:54:11 +01:00
mm.rs
module_param.rs Modules changes for v6.19-rc1 2025-12-06 08:27:07 -08:00
net.rs
num.rs
of.rs
opp.rs Rust changes for v6.19 2025-12-03 14:16:49 -08:00
page.rs rust: Return Option from page_align and ensure no usize overflow 2025-12-29 15:32:53 +01:00
pci.rs rust: pci: re-export ConfigSpace 2026-02-01 22:18:24 +01:00
pid_namespace.rs
platform.rs Linux 6.19-rc7 2026-01-26 13:23:52 +01:00
prelude.rs drm-next for 6.19-rc1: 2025-12-04 08:53:30 -08:00
print.rs rust: print: Add pr_*_once macros 2026-01-30 05:47:05 +01:00
processor.rs
ptr.rs rust: ptr: add projection infrastructure 2026-03-07 23:06:17 +01:00
pwm.rs rust: pwm: Simplify to_result call sites and unsafe blocks 2026-01-20 18:49:58 +01:00
rbtree.rs Rust changes for v6.20 / v7.0 2026-02-10 11:53:01 -08:00
regulator.rs rust: regulator: replace `kernel::c_str!` with C-Strings 2025-12-22 14:52:12 +00:00
revocable.rs
safety.rs rust: safety: introduce `unsafe_precondition_assert!` macro 2026-02-02 08:10:48 +01:00
scatterlist.rs rust: scatterlist: Update ARef imports to use sync::aref 2025-12-18 17:25:45 +01:00
security.rs
seq_file.rs rust: seq_file: replace `kernel::c_str!` with C-Strings 2026-01-29 15:32:40 +01:00
sizes.rs
slice.rs
soc.rs rust: Add soc_device support 2025-12-28 12:43:56 +01:00
static_assert.rs
std_vendor.rs
str.rs rust: str: make NullTerminatedFormatter public 2026-03-04 02:03:31 +01:00
sync.rs rust: sync: Replace `kernel::c_str!` with C-Strings 2026-01-28 09:25:44 +01:00
task.rs rust: task: restrict Task::group_leader() to current 2026-01-26 19:07:13 -08:00
time.rs
tracepoint.rs
transmute.rs rust: transmute: implement FromBytes and AsBytes for inhabited ZSTs 2026-01-26 03:16:31 +01:00
types.rs
uaccess.rs rust: uaccess: generalize write_dma() to accept any Coherent<T> 2026-03-27 21:48:09 +01:00
usb.rs USB / Thunderbolt changes for 7.0-rc1 2026-02-17 09:36:43 -08:00
workqueue.rs rust: workqueue: use new sync::aref path for imports 2026-03-26 15:45:34 +00:00
xarray.rs