Thread (13 messages) 13 messages, 5 authors, 2012-04-23

Bug#656476: Sundance network driver (D-Link DFE-580TX) timeouts rendering interface unusable

From: Eric Dumazet <hidden>
Date: 2012-01-30 10:14:07

Le lundi 30 janvier 2012 à 12:51 +0300, Denis Kirjanov a écrit :
I'll check this out. After kernel.org was cracked I've missed
@kernel.org mail account.

At first glance, start_tx() is racy against TX completion.

It does :

        if (np->cur_tx - np->dirty_tx < TX_QUEUE_LEN - 1 &&
            !netif_queue_stopped(dev)) {
                /* do nothing */
        } else {
                netif_stop_queue (dev);
        }

So it can call netif_stop_queue() while TX completion handler did a
cleanup of all queued packets right before.


Note intr_handler() doesnt hold the queue spinlock when it does :

                if (netif_queue_stopped(dev) &&
                        np->cur_tx - np->dirty_tx < TX_QUEUE_LEN - 4) {
                        /* The ring is no longer full, clear busy flag. */
                        netif_wake_queue (dev);
                }





-- 
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help