Re: [PATCH] [Fixed] Re: Softnet/eepro100 driver conversion bug in 2.3.43pre8?

From: Jeff Garzik (jgarzik@mandrakesoft.com)
Date: Fri Feb 25 2000 - 13:00:24 EST


Simon Kirby wrote:
>
> After fiddling around in speedo_start_xmit with moving the spin_unlock()
> around, I figured out a way to fix the timeout problems I was seeing on
> 2.3 ever since the softnet merge. Andi Kleen then noticed the actual
> problem and pointed out the correct way to fix it. Attached is a patch
> that works perfectly for me for fixing the timeouts with the eepro100.
>
> Previously, I could run "ping -s 3000 -f foo" and see a timeout within a
> second or two; now, I have yet to see a timeout. The driver still oopses
> on rmmod, but that's been happening for a while now.

Good spotting... can you try something slightly different?

In speedo_start_xmit, make the logic look this like...

        ...
        if (tx_full_condition)
                netif_stop_queue(dev)
        ...

That should be the _only_ start or stop queue in speedo_start_xmit.

In order for this change to be complete, you need to go over the
spinlocking to make sure it protects stuff (mainly stuff on the transmit
side), and also make sure the interrupt handlers looks like this...

        if (! tx_full_condition)
                netif_wake_queue (dev)

ie. no netif_stop_queue calls in the interrupt handler.

-- 
Jeff Garzik              |
Building 1024            | Viva la open source!
MandrakeSoft, Inc.       |

- 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/



This archive was generated by hypermail 2b29 : Tue Feb 29 2000 - 21:00:13 EST