rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v11 0/3] Add dma coherent allocator abstraction
@ 2025-01-23 10:42 Abdiel Janulgue
  2025-01-23 10:42 ` [PATCH v11 1/3] rust: error: Add EOVERFLOW Abdiel Janulgue
                   ` (2 more replies)
  0 siblings, 3 replies; 41+ messages in thread
From: Abdiel Janulgue @ 2025-01-23 10:42 UTC (permalink / raw)
  To: rust-for-linux, daniel.almeida, dakr, robin.murphy, aliceryhl
  Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
	Björn Roy Baron, Benno Lossin, Andreas Hindborg,
	Trevor Gross, Valentin Obst, open list, Christoph Hellwig,
	Marek Szyprowski, airlied, open list:DMA MAPPING HELPERS,
	Abdiel Janulgue

Changes since v10:
- rename read() to as_slice() (Boqun Feng)
- Do a bitwise copy of ARef<Device> in into_parts() when returning the
  device reference (Alice Ryhl).
- Link to v10: https://lore.kernel.org/all/20250121191432.1178734-1-abdiel.janulgue@gmail.com/

Changes since v9:
- Use ARef<Device> in the constructor arguments, docs clarification avoid
  manually dropping the refcount for the device in into_parts(), use
  add() instead of wrapping_add() in the pointer arithmetic for performance
  (Alice Ryhl).

Changes since v8:
- Add MAINTAINERS entry
- Fix build issues due to switch from core::ffi to crate:ffi in bindgen.
- Ensure the wrapped attribute is non-pub in struct Attrs, declare it 
  #[repr(transparent)] as well (Daniel Sedlak)

Changes since v7:
- Remove cpu_buf() and cpu_buf_mut() as exporting a r/w interface via
  a slice is undefined behaviour due to slice's requirement that the
  underlying pointer should not be modified (Alice Ryhl, Robin Murphy).
- Reintroduce r/w helpers instead which includes proper safety
  invariants (Daniel Almeida).

Changes since v6:
- Include the dma_attrs in the constructor, use alloc::Flags as inpiration

Changes since v5:
- Remove unnecessary lifetime annotation when returning the CPU buffer.

Changes since v4:
- Documentation and example fixes, use Markdown formatting (Miguel Ojeda).
- Discard read()/write() helpers to remove bound on Copy and fix overhead
  (Daniel Almeida).
- Improve error-handling in the constructor block (Andreas Hindborg).

Changes since v3:
- Reject ZST types by checking the type size in the constructor in
  addition to requiring FromBytes/AsBytes traits for the type (Alice Ryhl).

Changes since v2:
- Fixed missing header for generating the bindings.

Changes since v1:
- Fix missing info in commit log where EOVERFLOW is used.
- Restrict the dma coherent allocator to numeric types for now for valid
  behaviour (Daniel Almeida).
- Build slice dynamically.

Abdiel Janulgue (3):
  rust: error: Add EOVERFLOW
  rust: add dma coherent allocator abstraction.
  MAINTAINERS: add entry for Rust dma mapping helpers device driver API

 MAINTAINERS                     |  10 ++
 rust/bindings/bindings_helper.h |   1 +
 rust/kernel/dma.rs              | 282 ++++++++++++++++++++++++++++++++
 rust/kernel/error.rs            |   1 +
 rust/kernel/lib.rs              |   1 +
 5 files changed, 295 insertions(+)
 create mode 100644 rust/kernel/dma.rs


base-commit: ceff0757f5dafb5be5205988171809c877b1d3e3
-- 
2.43.0


^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2025-02-18 12:44 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-23 10:42 [PATCH v11 0/3] Add dma coherent allocator abstraction Abdiel Janulgue
2025-01-23 10:42 ` [PATCH v11 1/3] rust: error: Add EOVERFLOW Abdiel Janulgue
2025-01-23 10:42 ` [PATCH v11 2/3] rust: add dma coherent allocator abstraction Abdiel Janulgue
2025-01-23 12:30   ` Petr Tesařík
2025-01-23 13:38     ` Abdiel Janulgue
2025-01-23 14:44       ` Miguel Ojeda
2025-01-23 22:54         ` Daniel Almeida
2025-01-24  7:27   ` Alice Ryhl
2025-01-27  6:16     ` Petr Tesařík
2025-01-27  9:45       ` Alice Ryhl
2025-01-27 10:37     ` Danilo Krummrich
2025-01-27 10:43       ` Alice Ryhl
2025-01-27 12:14         ` Danilo Krummrich
2025-01-27 13:25           ` Alice Ryhl
2025-01-27 13:34             ` Danilo Krummrich
2025-01-27 13:42               ` Alice Ryhl
2025-01-27 16:59         ` Boqun Feng
2025-01-27 18:32           ` Alice Ryhl
2025-01-27 18:38             ` Boqun Feng
2025-01-27 18:46               ` Alice Ryhl
2025-01-27 19:01                 ` Boqun Feng
2025-01-27 19:05                   ` Alice Ryhl
2025-01-27 19:21                     ` Boqun Feng
2025-01-27 19:37                       ` Boqun Feng
2025-01-27 10:52       ` Daniel Almeida
2025-01-27 10:59     ` Daniel Almeida
2025-01-27 11:34       ` Alice Ryhl
2025-01-28 10:22         ` Daniel Almeida
2025-01-28 10:25           ` Alice Ryhl
2025-01-28 10:36             ` Daniel Almeida
2025-01-28 11:28               ` Alice Ryhl
2025-02-15 21:40   ` Daniel Almeida
2025-02-17 13:52     ` Robin Murphy
2025-02-17 17:37       ` Abdiel Janulgue
2025-02-18  9:58       ` Abdiel Janulgue
2025-02-18 12:19         ` Daniel Almeida
2025-02-18 12:44           ` Robin Murphy
2025-01-23 10:42 ` [PATCH v11 3/3] MAINTAINERS: add entry for Rust dma mapping helpers device driver API Abdiel Janulgue
2025-01-30 11:49   ` Robin Murphy
2025-01-30 12:00     ` Danilo Krummrich
2025-02-03  8:37     ` Abdiel Janulgue

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).