lkml.org 
[lkml]   [2026]   [Mar]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v12 1/1] rust: interop: Add list module for C linked list interface
On Thu, 12 Mar 2026 20:20:10 +0100, Miguel Ojeda wrote:
> Was the patch tested with Clippy? It has several issues.
>
> The worst news is that it seems the "supposed to be `unsafe` block"
> does not count as one for Clippy, i.e.:
>
> let list = clist_create!(unsafe { head, Item, SampleItemC, link });
>
> So we get:
>
> error: statement has unnecessary safety comment
>
> For this, we could write them as a `// SAFETY*: ` comment or similar,
> to make progress for now, but it would best to request upstream Clippy
> to detect this or to rework the macro to force the `unsafe` block
> outside.

Used `// SAFETY*:` for now as you suggested.

> error: unsafe block missing a safety comment
> --> rust/kernel/interop/list.rs:357:17
> |
> 357 | |p| unsafe { &raw const (*p).$($field).+ };
>
> So this needs a `// SAFETY:` comment on top of the closure.

Fixed. Added:

// SAFETY: `p` is a valid pointer to `$c_type`.

> error: this macro expands metavariables in an unsafe block
> --> rust/kernel/interop/list.rs:362:9
> |
> 362 | unsafe { $crate::interop::list::CList::<$rust_type,
> OFFSET>::from_raw($head) }
>
> For this one, to begin with, do we expect to have actual expressions
> for $head, or could we constrain it for now to an identifier for
> instance?
>
> With an identifier there is no issue then -- the example currently has
> just an identifier anyway.

Yes, identifier should be Ok. Changed to it.

thanks,

--
Joel Fernandes

\
 
 \ /
  Last update: 2026-03-16 19:54    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog