All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Use struct devres_node in Devres<T>
@ 2026-02-05 22:31 Danilo Krummrich
  2026-02-05 22:31 ` [PATCH 1/5] devres: move struct devres_node into base.h Danilo Krummrich
                   ` (4 more replies)
  0 siblings, 5 replies; 25+ messages in thread
From: Danilo Krummrich @ 2026-02-05 22:31 UTC (permalink / raw)
  To: gregkh, rafael, ojeda, boqun.feng, gary, bjorn3_gh, lossin,
	a.hindborg, aliceryhl, tmgross
  Cc: driver-core, rust-for-linux, linux-kernel, Danilo Krummrich

Currently, the Devres<T> container uses devm_add_action() to register a
devres callback.

devm_add_action() allocates a struct action_devres, which on top of
struct devres_node, just keeps a data pointer and release function
pointer.

This is an unnecessary indirection, given that analogous to struct
devres, the Devres<T> container can just embed a struct devres_node
directly without an additional allocation.

In contrast to struct devres, we don't need to force an alignment of
ARCH_DMA_MINALIGN (as struct devres does to account for the worst case)
since we have generics in Rust. I.e. the compiler already ensures
correct alignment of the embedded T in Devres<T>.

Thus, get rid of devm_add_action() and instead embed a struct
devres_node directly.

This patch series is based on [1] and [2].

[1] https://lore.kernel.org/lkml/20260205222529.91465-1-dakr@kernel.org/
[2] https://lore.kernel.org/lkml/20260202235210.55176-1-dakr@kernel.org/

Danilo Krummrich (5):
  devres: move struct devres_node into base.h
  devres: export devres_node_init() and devres_node_add()
  devres: add devres_node_remove()
  devres: rename and export set_node_dbginfo()
  rust: devres: embed struct devres_node directly

 drivers/base/base.h   |  18 +++++++
 drivers/base/devres.c |  54 +++++++++++--------
 rust/kernel/devres.rs | 123 ++++++++++++++++++++++++++----------------
 3 files changed, 127 insertions(+), 68 deletions(-)


base-commit: c98d3727720db5f74bf40a8cd1c2da05081845ee
-- 
2.52.0


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

end of thread, other threads:[~2026-02-06 16:31 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-05 22:31 [PATCH 0/5] Use struct devres_node in Devres<T> Danilo Krummrich
2026-02-05 22:31 ` [PATCH 1/5] devres: move struct devres_node into base.h Danilo Krummrich
2026-02-05 22:31 ` [PATCH 2/5] devres: export devres_node_init() and devres_node_add() Danilo Krummrich
2026-02-06 10:43   ` Danilo Krummrich
2026-02-06 11:04     ` Greg KH
2026-02-06 11:32       ` Danilo Krummrich
2026-02-06 11:34         ` Alice Ryhl
2026-02-06 11:46           ` Danilo Krummrich
2026-02-06 12:34           ` Greg KH
2026-02-06 13:16             ` Danilo Krummrich
2026-02-06 13:20               ` Alice Ryhl
2026-02-06 13:25                 ` Greg KH
2026-02-06 13:33                   ` Danilo Krummrich
2026-02-06 13:35                     ` Alice Ryhl
2026-02-06 13:22               ` Greg KH
2026-02-06 13:33                 ` Alice Ryhl
2026-02-06 13:55                   ` Greg KH
2026-02-06 14:23                     ` Gary Guo
2026-02-06 14:31                       ` Greg KH
2026-02-06 15:09                     ` Alice Ryhl
2026-02-06 16:31                       ` Alice Ryhl
2026-02-06 14:08                   ` Danilo Krummrich
2026-02-05 22:31 ` [PATCH 3/5] devres: add devres_node_remove() Danilo Krummrich
2026-02-05 22:31 ` [PATCH 4/5] devres: rename and export set_node_dbginfo() Danilo Krummrich
2026-02-05 22:31 ` [PATCH 5/5] rust: devres: embed struct devres_node directly Danilo Krummrich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.