From: Danilo Krummrich <dakr@kernel.org>
To: bhelgaas@google.com, gregkh@linuxfoundation.org,
rafael@kernel.org, abdiel.janulgue@gmail.com
Cc: ojeda@kernel.org, alex.gaynor@gmail.com, boqun.feng@gmail.com,
gary@garyguo.net, bjorn3_gh@protonmail.com,
benno.lossin@proton.me, a.hindborg@kernel.org,
aliceryhl@google.com, tmgross@umich.edu,
daniel.almeida@collabora.com, robin.murphy@arm.com,
linux-pci@vger.kernel.org, rust-for-linux@vger.kernel.org,
linux-kernel@vger.kernel.org, Danilo Krummrich <dakr@kernel.org>
Subject: [PATCH 4/9] rust: platform: preserve device context in AsRef
Date: Mon, 31 Mar 2025 22:27:57 +0200 [thread overview]
Message-ID: <20250331202805.338468-5-dakr@kernel.org> (raw)
In-Reply-To: <20250331202805.338468-1-dakr@kernel.org>
Since device::Device has a generic over its context, preserve this
device context in AsRef.
For instance, when calling platform::Device<Core> the new AsRef
implementation returns device::Device<Core>.
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
---
rust/kernel/platform.rs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/rust/kernel/platform.rs b/rust/kernel/platform.rs
index 9133490ea4c9..fa07f895af3a 100644
--- a/rust/kernel/platform.rs
+++ b/rust/kernel/platform.rs
@@ -183,7 +183,7 @@ pub struct Device<Ctx: device::DeviceContext = device::Normal>(
PhantomData<Ctx>,
);
-impl Device {
+impl<Ctx: device::DeviceContext> Device<Ctx> {
fn as_raw(&self) -> *mut bindings::platform_device {
self.0.get()
}
@@ -205,8 +205,8 @@ unsafe fn dec_ref(obj: NonNull<Self>) {
}
}
-impl AsRef<device::Device> for Device {
- fn as_ref(&self) -> &device::Device {
+impl<Ctx: device::DeviceContext> AsRef<device::Device<Ctx>> for Device<Ctx> {
+ fn as_ref(&self) -> &device::Device<Ctx> {
// SAFETY: By the type invariant of `Self`, `self.as_raw()` is a pointer to a valid
// `struct platform_device`.
let dev = unsafe { addr_of_mut!((*self.as_raw()).dev) };
--
2.49.0
next prev parent reply other threads:[~2025-03-31 20:29 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-31 20:27 [PATCH 0/9] Implement "Bound" device context Danilo Krummrich
2025-03-31 20:27 ` [PATCH 1/9] rust: device: implement impl_device_context_deref! Danilo Krummrich
2025-03-31 20:27 ` [PATCH 2/9] rust: device: implement impl_device_context_into_aref! Danilo Krummrich
2025-03-31 20:27 ` [PATCH 3/9] rust: device: implement device context for Device Danilo Krummrich
2025-03-31 20:27 ` Danilo Krummrich [this message]
2025-03-31 20:27 ` [PATCH 5/9] rust: pci: preserve device context in AsRef Danilo Krummrich
2025-03-31 20:27 ` [PATCH 6/9] rust: device: implement Bound device context Danilo Krummrich
2025-03-31 20:28 ` [PATCH 7/9] rust: pci: move iomap_region() to impl Device<Bound> Danilo Krummrich
2025-03-31 20:28 ` [PATCH 8/9] rust: devres: require a bound device Danilo Krummrich
2025-03-31 20:28 ` [PATCH 9/9] rust: dma: " Danilo Krummrich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250331202805.338468-5-dakr@kernel.org \
--to=dakr@kernel.org \
--cc=a.hindborg@kernel.org \
--cc=abdiel.janulgue@gmail.com \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=benno.lossin@proton.me \
--cc=bhelgaas@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=daniel.almeida@collabora.com \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=ojeda@kernel.org \
--cc=rafael@kernel.org \
--cc=robin.murphy@arm.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.