Re: [PATCH v3 0/4] rust: configfs abstractions

From: Daniel Almeida
Date: Fri Feb 21 2025 - 10:20:25 EST


Hi Andreas,

> On 18 Feb 2025, at 09:57, Andreas Hindborg <a.hindborg@xxxxxxxxxx> wrote:
>
> This series adds a safe Rust API that allows Rust modules to interface
> the `configfs` machinery.
>
> The series contains an example for the samples folder to demonstrate
> usage of the API. As such, there is no inline example in the
> documentation.
>
> The last patch adds a maintainer entry for the Rust configfs
> abstractions, to make it absolutely clear that I will commit to maintain
> these abstractions, if required. Feel free to drop this patch if this is
> not required.
>
> The series is a dependency of `rnull`, the Rust null block driver.
> Please see [1] for initial `configfs` support in `rnull`.
>
> [1] https://github.com/metaspace/linux/tree/9ac53130f5fb05b9b3074fa261b445b8fde547dd/drivers/block/rnull
>

I am trying to test this before reviewing, but I get this error:


```
error[E0308]: mismatched types
--> linux/rust/kernel/miscdevice.rs:300:62
|
300 | let device = unsafe { <T::Ptr as ForeignOwnable>::borrow(private) };
| ---------------------------------- ^^^^^^^ expected `*mut <... as ForeignOwnable>::PointedTo`, found `*mut c_void`
| |
| arguments to this function are incorrect
|
= note: expected raw pointer `*mut <<T as miscdevice::MiscDevice>::Ptr as types::ForeignOwnable>::PointedTo`
found raw pointer `*mut ffi::c_void`
= help: consider constraining the associated type `<<T as miscdevice::MiscDevice>::Ptr as types::ForeignOwnable>::PointedTo` to `ffi::c_void` or calling a method that returns `<<T as miscdevice::MiscDevice>::Ptr as types::ForeignOwnable>::PointedTo`
= note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
note: associated function defined here
--> /home/dwls/dev/linux/rust/kernel/types.rs:98:15
|
98 | unsafe fn borrow<'a>(ptr: *mut Self::PointedTo) -> Self::Borrowed<'a>;
| ^^^^^^

error: aborting due to 1 previous error
```


— Daniel