On Mon, 09 Nov 2026 11:13:41 +0100, Thomas Gleixner wrote: > On Wed, Nov 04 2026 at 14:21, Troy Mitchell wrote: > > IMSIC rejects an affinity change with -EBUSY while a previous vector > > move is still in flight, and the IRQ core then records the new mask > > as pending. The change is meant to be applied by irq_move_irq() in > > the IMSIC irq_ack callback, but APLIC MSI interrupts are handled by > > handle_fasteoi_irq(), which does not call irq_ack. > > Which is a bug when the interrupt is edge type. > > Edge type interrupts are fire and forget from the device point of > view. So you want handle_edge_irq() for them, which issues the ack() > _before_ the handler is invoked. Otherwise you can lose interrupts. Right, I can reproduce the lost edge here. v2 will use handle_edge_irq() for edge sources and handle_fasteoi_ack_irq() for level sources. -- Troy Mitchell