rust/kernel/cpufreq.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Update the `bios_limit_callback` function to use `c_int` and `c_uint` types,
which match the C ABI for the corresponding callback function. These types are
imported from the prelude.
This change ensures the Rust function signature exactly matches its expected
C counterpart, avoiding potential issues with type mismatches in the FFI
boundary.
Reported-by: Miguel Ojeda <ojeda@kernel.org>
Closes: https://lore.kernel.org/rust-for-linux/CANiq72=WpuGELzLbH-fxdOeJy9fiDFwatz6ynERDh=HP2z2MBw@mail.gmail.com/.
Signed-off-by: Abhinav Ananthu <abhinav.ogl@gmail.com>
---
rust/kernel/cpufreq.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rust/kernel/cpufreq.rs b/rust/kernel/cpufreq.rs
index b0a9c6182aec..e97607ed86c2 100644
--- a/rust/kernel/cpufreq.rs
+++ b/rust/kernel/cpufreq.rs
@@ -1277,7 +1277,7 @@ extern "C" fn update_limits_callback(ptr: *mut bindings::cpufreq_policy) {
/// Driver's `bios_limit` callback.
///
/// SAFETY: Called from C. Inputs must be valid pointers.
- extern "C" fn bios_limit_callback(cpu: i32, limit: *mut u32) -> kernel::ffi::c_int {
+ extern "C" fn bios_limit_callback(cpu: c_int, limit: *mut c_uint) -> c_int {
from_result(|| {
let mut policy = PolicyCpu::from_cpu(cpu as u32)?;
--
2.34.1
Hi Abhinav,
Thanks for looking into this..
On 12-06-25, 16:11, Abhinav Ananthu wrote:
> diff --git a/rust/kernel/cpufreq.rs b/rust/kernel/cpufreq.rs
> index b0a9c6182aec..e97607ed86c2 100644
> --- a/rust/kernel/cpufreq.rs
> +++ b/rust/kernel/cpufreq.rs
> @@ -1277,7 +1277,7 @@ extern "C" fn update_limits_callback(ptr: *mut bindings::cpufreq_policy) {
> /// Driver's `bios_limit` callback.
> ///
> /// SAFETY: Called from C. Inputs must be valid pointers.
> - extern "C" fn bios_limit_callback(cpu: i32, limit: *mut u32) -> kernel::ffi::c_int {
> + extern "C" fn bios_limit_callback(cpu: c_int, limit: *mut c_uint) -> c_int {
> from_result(|| {
> let mut policy = PolicyCpu::from_cpu(cpu as u32)?;
There are a couple of more FFI callbacks which use `u32`, `usize`,
etc.. Can you please fix them all, basically all callbacks with `unsafe
extern "C"`.
Also please rebase over linux-next/master, there are few recent
updates available there.
--
viresh
On Thu, Jun 12, 2025 at 12:42 PM Abhinav Ananthu <abhinav.ogl@gmail.com> wrote:
>
> This change ensures the Rust function signature exactly matches its expected
> C counterpart, avoiding potential issues with type mismatches in the FFI
> boundary.
I think this is more of a cleanup, since the types will be the same
anyway, which is why I suggested using "Suggested-by" and "Link"
instead:
Suggested-by: Miguel Ojeda <ojeda@kernel.org>
Link: https://github.com/Rust-for-Linux/linux/issues/1170
The title is still not correct (misses "cpufreq: ") and it is very
rare to have issue IDs in the title ("#1170").
But there is no need to send a new version just for this -- the
maintainers may want to fix it on apply, so please wait to see what
they say.
Thanks!
Cheers,
Miguel
© 2016 - 2026 Red Hat, Inc.