From: Nicolás Antinori Date: Sun, 24 May 2026 15:40:16 +0000 (-0300) Subject: opp: rust: mark OPP methods as inline X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=b59020834b2d8718fe37a4e77367f554cbf95982;p=thirdparty%2Fkernel%2Flinux.git opp: rust: mark OPP methods as inline When building the kernel using llvm-19.1.7-rust-1.85.0-x86_64, the following symbols are generated: $ nm vmlinux | grep ' _R'.*OPP | rustfilt ffffffff81801560 T ::freq ffffffff81801540 T ::dec_ref ffffffff81801520 T ::inc_ref However, these Rust symbols are trivial wrappers around the `dev_pm_opp_get`, `dev_pm_opp_put` and `dev_pm_opp_get_freq_indexed` functions. It doesn't make sense to go through a trivial wrapper for these functions. After applying this patch, the above command will produce no output. Link: https://github.com/Rust-for-Linux/linux/issues/1145 Suggested-by: Alice Ryhl Signed-off-by: Nicolás Antinori Signed-off-by: Viresh Kumar --- diff --git a/rust/kernel/opp.rs b/rust/kernel/opp.rs index a760fac287655..62e44676125d1 100644 --- a/rust/kernel/opp.rs +++ b/rust/kernel/opp.rs @@ -1042,11 +1042,13 @@ unsafe impl Sync for OPP {} /// SAFETY: The type invariants guarantee that [`OPP`] is always refcounted. unsafe impl AlwaysRefCounted for OPP { + #[inline] fn inc_ref(&self) { // SAFETY: The existence of a shared reference means that the refcount is nonzero. unsafe { bindings::dev_pm_opp_get(self.0.get()) }; } + #[inline] unsafe fn dec_ref(obj: ptr::NonNull) { // SAFETY: The safety requirements guarantee that the refcount is nonzero. unsafe { bindings::dev_pm_opp_put(obj.cast().as_ptr()) } @@ -1095,6 +1097,7 @@ impl OPP { } /// Returns the frequency of an [`OPP`]. + #[inline] pub fn freq(&self, index: Option) -> Hertz { let index = index.unwrap_or(0);