Applied, thanks! Damien Zammit via Bug reports for the GNU Hurd, le sam. 23 nov. 2024 22:20:32 +0000, a ecrit: > When an irq handler dies, we are decrementing the n_unacked count > and calling __enable_irq() the right number of times, but we need > to decrement the total interrupt count by the number that were lost > and also clear that number. > > This fixes a hang when a shared irq handler quits and leaves some > unacked interrupts. > > --- > device/intr.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/device/intr.c b/device/intr.c > index 9035c036..0d13acf7 100644 > --- a/device/intr.c > +++ b/device/intr.c > @@ -307,6 +307,10 @@ intr_thread (void) > e->n_unacked--; > } > > + /* Account for all interrupts that could not be delivered */ > + irqtab.tot_num_intr -= e->interrupts; > + e->interrupts = 0; > + > #if 0 > #ifndef LINUX_DEV > // TODO: remove from the action list > -- > 2.45.2 > > >
-- Samuel <i> ben oui ce serait idiot, mais osb -+- m'en fous de faire un truc débile ! -+-