Subject: Re: linux-next: build failure after merge of the block tree

From: Jens Axboe <[email-masked]>
Date: Wed, 27 May 2026 08:39:16 -0600

On 5/27/26 8:16 AM, Mark Brown wrote:
> Hi all,
> 
> After merging the block tree, today's linux-next build (arm64 kunit)
> failed like this:
> 
> ERROR:root:error[E0308]: mismatched types
>    --> /tmp/next/build/rust/kernel/block/mq/operations.rs:274:28
>     |
> 274 | init_request: Some(Self::init_request_callback),
>     |                       ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn
>     |                       pointer, found fn item | arguments to this
>     |                       enum variant are incorrect
>     |
>     = note: expected fn pointer `unsafe extern "C" fn(_, _, _, i32) -> _`
>                   found fn item `unsafe extern "C" fn(_, _, _, u32) -> _ {OperationsVTable::<T>::init_request_callback}`
> help: the type constructed contains `unsafe extern "C"
> fn(*mut blk_mq_tag_set, *mut bindings::request, u32, u32) -> i32
> {OperationsVTable::<T>::init_request_callback}` due to the type of the
> argument passed
>    --> /tmp/next/build/rust/kernel/block/mq/operations.rs:274:23
>     |
> 274 | init_request: Some(Self::init_request_callback),
>     |                       ^^^^^---------------------------^
>     |                            | this argument influences the type of
>     |                            `Some`
> note: tuple variant defined here
>    --> /usr/lib/rustlib/src/rust/library/core/src/option.rs:580:5
>     |
> 580 | Some(#[stable(feature = "rust1", since = "1.0.0")] T),
>     |     ^^^^
> 
> error: aborting due to 1 previous error
> 
> For more information about this error, try `rustc --explain E0308`.
> 
> We build with --kconfig_add CONFIG_KASAN=y --kconfig_add CONFIG_RUST=y
> (and would also do an allmodconfig which picks up CONFIG_RUST=y in any
> case since there's a usable rustc installed).
> 
> Caused by commit
> 
>   b040a1a4523d9 (block: switch numa_node to int in blk_mq_hw_ctx and init_request)

Fixed in the current tree.

> possibly interacting with some rust change but I'm not sure.  I have
> used the tree from next-20260526 instead.

Hmm, not sure we should let rust build issues gate whether a tree is
current in -next or not. For, by far, most systems, it's not a
requirement for a functional device.

-- 
Jens Axboe