RE: 2.6.9-rc2-mm4 e100 enable_irq unbalanced from

From: Paul Fulghum
Date: Tue Sep 28 2004 - 22:07:44 EST


On Tue, 2004-09-28 at 16:03, Feldman, Scott wrote:
> Maybe just
> the disable_irq call is all that is needed to solve the spurious
> interrupt case?

That would not work either.

request_irq() clears the enable/disable depth
only when registering the first device on that
interrupt.

If a device is sharing an interrupt with e100
and calls request_irq() before e100, then the
disable_irq() requires a matching enable_irq().

If e100 is the only or first device on
that interrupt, then the enable_irq() causes
the warning because the depth has been reset.

It is interesting behavior for request_irq.
I don't know if it was planned that way,
or is an unexpected artifact.
It makes the effect of the disable_irq call
indeterminate (to the driver) if made
before registering with the interrupt.

--
Paul Fulghum
paulkf@xxxxxxxxxxxxx


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/