Files
erofs-linux/rust/kernel/drm
Alice Ryhl 8802e16843 rust: types: add Opaque::cast_from
Since commit b20fbbc08a ("rust: check type of `$ptr` in
`container_of!`") we have enforced that the field pointer passed to
container_of! must match the declared field. This caused mismatches when
using a pointer to bindings::x for fields of type Opaque<bindings::x>.

This situation encourages the user to simply pass field.cast() to the
container_of! macro, but this is not great because you might
accidentally pass a *mut bindings::y when the field type is
Opaque<bindings::x>, which would be wrong.

To help catch this kind of mistake, add a new Opaque::cast_from that
wraps a raw pointer in Opaque without changing the inner type. Also
update the docs to reflect this as well as some existing users.

Signed-off-by: Alice Ryhl <[email protected]>
Acked-by: Andreas Hindborg <[email protected]>
Acked-by: Boqun Feng <[email protected]>
Reviewed-by: Danilo Krummrich <[email protected]>
Acked-by: Danilo Krummrich <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Miguel Ojeda <[email protected]>
2025-07-15 21:01:48 +02:00
..
2025-07-15 21:01:48 +02:00
2025-07-15 21:01:48 +02:00
…
…
…
…