From: Jakub Kicinski <kuba@kernel.org>
To: Rahul Rameshbabu <sergeantsagara@protonmail.com>,
rust-for-linux@vger.kernel.org
Cc: netdev@vger.kernel.org,
"FUJITA Tomonori" <fujita.tomonori@gmail.com>,
"Trevor Gross" <tmgross@umich.edu>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <benno.lossin@proton.me>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Andrew Lunn" <andrew@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Paolo Abeni" <pabeni@redhat.com>
Subject: Re: [PATCH net] rust: net::phy scope ThisModule usage in the module_phy_driver macro
Date: Sun, 24 Nov 2024 16:27:00 -0800 [thread overview]
Message-ID: <20241124162700.4ec4b6ce@kernel.org> (raw)
In-Reply-To: <20241113174438.327414-3-sergeantsagara@protonmail.com>
On Wed, 13 Nov 2024 17:45:22 +0000 Rahul Rameshbabu wrote:
> Similar to the use of $crate::Module, ThisModule should be referred to as
> $crate::ThisModule in the macro evaluation. The reason the macro previously
> did not cause any errors is because all the users of the macro would use
> kernel::prelude::*, bringing ThisModule into scope.
You say "previously", does it mean there are no in-tree users where
this could cause bugs? If so no Fixes tag necessary..
> Fixes: 2fe11d5ab35d ("rust: net::phy add module_phy_driver macro")
> Signed-off-by: Rahul Rameshbabu <sergeantsagara@protonmail.com>
> ---
>
> Notes:
> How I came up with this change:
>
> I was working on my own rust bindings and rust driver when I compared my
> macro_rule to the one used for module_phy_driver. I noticed, if I made a
> driver that does not use kernel::prelude::*, that the ThisModule type
> identifier used in the macro would cause an error without being scoped in
> the macro_rule. I believe the correct implementation for the macro is one
> where the types used are correctly expanded with needed scopes.
Rust experts, does the patch itself make sense?
> diff --git a/rust/kernel/net/phy.rs b/rust/kernel/net/phy.rs
> index 910ce867480a..80f9f571b88c 100644
> --- a/rust/kernel/net/phy.rs
> +++ b/rust/kernel/net/phy.rs
> @@ -837,7 +837,7 @@ const fn as_int(&self) -> u32 {
> /// [::kernel::net::phy::create_phy_driver::<PhySample>()];
> ///
> /// impl ::kernel::Module for Module {
> -/// fn init(module: &'static ThisModule) -> Result<Self> {
> +/// fn init(module: &'static ::kernel::ThisModule) -> Result<Self> {
> /// let drivers = unsafe { &mut DRIVERS };
> /// let mut reg = ::kernel::net::phy::Registration::register(
> /// module,
> @@ -899,7 +899,7 @@ struct Module {
> [$($crate::net::phy::create_phy_driver::<$driver>()),+];
>
> impl $crate::Module for Module {
> - fn init(module: &'static ThisModule) -> Result<Self> {
> + fn init(module: &'static $crate::ThisModule) -> Result<Self> {
> // SAFETY: The anonymous constant guarantees that nobody else can access
> // the `DRIVERS` static. The array is used only in the C side.
> let drivers = unsafe { &mut DRIVERS };
>
> base-commit: 73af53d82076bbe184d9ece9e14b0dc8599e6055
next prev parent reply other threads:[~2024-11-25 0:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-13 17:45 [PATCH net] rust: net::phy scope ThisModule usage in the module_phy_driver macro Rahul Rameshbabu
2024-11-25 0:27 ` Jakub Kicinski [this message]
2024-11-25 0:58 ` FUJITA Tomonori
2024-11-25 8:59 ` Alice Ryhl
2024-11-26 8:14 ` Paolo Abeni
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=20241124162700.4ec4b6ce@kernel.org \
--to=kuba@kernel.org \
--cc=a.hindborg@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=andrew@lunn.ch \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fujita.tomonori@gmail.com \
--cc=gary@garyguo.net \
--cc=netdev@vger.kernel.org \
--cc=ojeda@kernel.org \
--cc=pabeni@redhat.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=sergeantsagara@protonmail.com \
--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.