> > I've attached a patch against vanilla-2.1.98 that works even on insane
> > hardware like NE2000 cards and shared PCI devices, survives 30 minutes
>
> If I understand your code right, then in order to enable a previously
> disabled interrupt one has to call enable_irq() as many times as
> disable_irq() previously has been called. Is this the intended
> behavior? I thought enable_irq() should re-enable the interrupt
> unconditionally? <-- question, I'm just unsure about it.
yes you are right, it should enable them unconditionally. There was a
warning in earlier ioapic code, and only floppy.c used them in an
'unbalanced' way. (floppy.c enabled IRQ6 twice, i reported this)
but most drivers use dis/enable_irq() in a 'balanced' way, thus there
should be no difference in behavior. Personally i liked that nested
dis/enable_irq() version as it _did_ show us a floppy.c bug, but maybe it
can be abused in drivers, so it should probably be changed back to the
original behavior. (yes i think it should be changed back, there is no
good reason to change the driver-API)
-- mingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu