Skip to content

Commit bd8e808

Browse files
nbdd0121ojeda
authored andcommitted
rust: dma: update to keyworded index projection syntax
Demonstrate the preferred syntax of index projection in DMA documentation and examples. A few `[i]?` cases are converted to demonstrate the new variant. Reviewed-by: Alice Ryhl <aliceryhl@google.com> Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Gary Guo <gary@garyguo.net> Acked-by: Danilo Krummrich <dakr@kernel.org> Link: https://patch.msgid.link/20260602-projection-syntax-rework-v2-4-6989470f5440@garyguo.net Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
1 parent 38c3cbf commit bd8e808

2 files changed

Lines changed: 9 additions & 11 deletions

File tree

rust/kernel/dma.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,8 +1152,8 @@ unsafe impl Sync for CoherentHandle {}
11521152
/// unsafe impl kernel::transmute::AsBytes for MyStruct{};
11531153
///
11541154
/// # fn test(alloc: &kernel::dma::Coherent<[MyStruct]>) -> Result {
1155-
/// let whole = kernel::dma_read!(alloc, [2]?);
1156-
/// let field = kernel::dma_read!(alloc, [1]?.field);
1155+
/// let whole = kernel::dma_read!(alloc, [try: 2]);
1156+
/// let field = kernel::dma_read!(alloc, [panic: 1].field);
11571157
/// # Ok::<(), Error>(()) }
11581158
/// ```
11591159
#[macro_export]
@@ -1189,8 +1189,8 @@ macro_rules! dma_read {
11891189
/// unsafe impl kernel::transmute::AsBytes for MyStruct{};
11901190
///
11911191
/// # fn test(alloc: &kernel::dma::Coherent<[MyStruct]>) -> Result {
1192-
/// kernel::dma_write!(alloc, [2]?.member, 0xf);
1193-
/// kernel::dma_write!(alloc, [1]?, MyStruct { member: 0xf });
1192+
/// kernel::dma_write!(alloc, [try: 2].member, 0xf);
1193+
/// kernel::dma_write!(alloc, [panic: 1], MyStruct { member: 0xf });
11941194
/// # Ok::<(), Error>(()) }
11951195
/// ```
11961196
#[macro_export]

samples/rust/rust_dma.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ impl pci::Driver for DmaSampleDriver {
7373
Coherent::zeroed_slice(pdev.as_ref(), TEST_VALUES.len(), GFP_KERNEL)?;
7474

7575
for (i, value) in TEST_VALUES.into_iter().enumerate() {
76-
kernel::dma_write!(ca, [i]?, MyStruct::new(value.0, value.1));
76+
kernel::dma_write!(ca, [try: i], MyStruct::new(value.0, value.1));
7777
}
7878

7979
let size = 4 * page::PAGE_SIZE;
@@ -91,16 +91,14 @@ impl pci::Driver for DmaSampleDriver {
9191
}
9292

9393
impl DmaSampleDriver {
94-
fn check_dma(&self) -> Result {
94+
fn check_dma(&self) {
9595
for (i, value) in TEST_VALUES.into_iter().enumerate() {
96-
let val0 = kernel::dma_read!(self.ca, [i]?.h);
97-
let val1 = kernel::dma_read!(self.ca, [i]?.b);
96+
let val0 = kernel::dma_read!(self.ca, [panic: i].h);
97+
let val1 = kernel::dma_read!(self.ca, [panic: i].b);
9898

9999
assert_eq!(val0, value.0);
100100
assert_eq!(val1, value.1);
101101
}
102-
103-
Ok(())
104102
}
105103
}
106104

@@ -109,7 +107,7 @@ impl PinnedDrop for DmaSampleDriver {
109107
fn drop(self: Pin<&mut Self>) {
110108
dev_info!(self.pdev, "Unload DMA test driver.\n");
111109

112-
assert!(self.check_dma().is_ok());
110+
self.check_dma();
113111

114112
for (i, entry) in self.sgt.iter().enumerate() {
115113
dev_info!(

0 commit comments

Comments
 (0)