Hi Daniel, On 13.07.25 17:32, Daniel Almeida wrote: > > >> On 13 Jul 2025, at 12:28, Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx> wrote: >> >> >> >>> >>> (2) Owning a reference count of a device (i.e. ARef<Device>) does *not* >>> guarantee that the device is bound. You can own a reference count to the >>> device object way beyond it being bound. Instead, the guarantee comes from >>> the scope. >>> >>> In this case, the scope is the IRQ callback, since the irq::Registration >>> guarantees to call and complete free_irq() before the underlying bus >>> device is unbound. >>> >> >> >> Oh, I see. I guess this is where I started to get a bit confused indeed. >> >> — Daniel > > Fine, I guess I can submit a newer version and test that on Tyr. > > Dirk, can you also test the next iteration on your driver? It will possibly > solve your use case as well. Now, I'm slightly confused ;) I just saw your version 7 of this [PATCH v7 3/6] rust: irq: add support for non-threaded IRQs and handlers https://lore.kernel.org/rust-for-linux/20250715-topics-tyr-request_irq2-v7-3-d469c0f37c07@xxxxxxxxxxxxx/ and somehow was expecting something like fn handle(&self, dev: &Device<Bound>) -> IrqReturn there. I.e. to get a bound device passed into the handler. If I misunderstood the discussion and this is supposed to not be added: Any hint how to get the &Device<Bound> from the probe function/irq registration into the irq handler, then? To be able to do something like fn handle(&self) -> IrqReturn { let dev = ??; let io = self.iomem.access(dev); Thanks, Dirk