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

From: Mark Brown <[email-masked]>
Date: Wed, 27 May 2026 15:16:43 +0100

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)

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