Re: [PATCH v7 4/6] rust: irq: add support for threaded IRQs and handlers

From: Alice Ryhl
Date: Mon Jul 21 2025 - 10:49:31 EST


On Tue, Jul 15, 2025 at 12:16:41PM -0300, Daniel Almeida wrote:
> This patch adds support for threaded IRQs and handlers through
> irq::ThreadedRegistration and the irq::ThreadedHandler trait.
>
> Threaded interrupts are more permissive in the sense that further
> processing is possible in a kthread. This means that said execution takes
> place outside of interrupt context, which is rather restrictive in many
> ways.
>
> Registering a threaded irq is dependent upon having an IrqRequest that
> was previously allocated by a given device. This will be introduced in
> subsequent patches.
>
> Signed-off-by: Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx>

A few of the same nits as on the non-threaded patch apply here too.

> +/// impl kernel::irq::request::ThreadedHandler for Handler {

If you import ThreadedHandler at the top of the example, then you don't
need this. If you want it to say irq in the path here, then import
kernel::irq::self and use `impl irq::ThreadedHandler for Handler` here.

The same could make sense for the flags. You can write
irq::Flags::SHARED if you import the irq module.

(This requires a re-export in the irq module if you don't have one
already. Also, I would make the irq module private so that end-users
import everything via the irq:: path without a sub-module.)

Alice