Don't reverse it. That trashes your interrupt latency. An irq_save spinlock
isnt acceptable for an ISA bus block transfer, you might be 2mS with irqs
off.
If you look at the change, it does what Ingo suggested which is to disable
the receive interrupt during a transmit (tx is single threaded implicitly),
that way only the card suffers. This means the only irq locked off is the
3c509 one.
You still need a spinlock because another CPU could begin executing a transmit
during a receive. In which case we spin on the spinlock until the receive
irq completes (in actual fact I believe the disable_irq handles that), and
also because any CPU could execute a get_stats request.
So I believe the code to be correct.
Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/