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

From: Jens Axboe

Date: Wed May 27 2026 - 10:43:08 EST


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