On Tue, May 02, 2000 at 04:34:46PM +0200, Andrew Morton wrote:
> I believe you are correct. This is a good approach, because the mdio
> functions, although rarely called, are slow.
>
> 3Com's GPL'ed driver for the 3c90x series is interesting. They use four
> spinlocks.
>
> - One for setting multicast mode
> - One for the start_xmit path
> - One for the interrupt
> - One for misc "recv mode/close/timer".
+ Inherent deadlock with disable_irq() [the driver likes to lock up under
high load on SMP]
>
> I haven't studied it closely; it's a _very_ differently structured
> driver from the norm. I would guess that it has been ported from
> another OS. They ifdef all the spinlocks out of existence if !__SMP__.
> Interesting...
The Intel e100 driver does that too. It is probably wrong (interrupt can race
with TX)
-Andi
|