netdev
[Top] [All Lists]

[PATCH 2.6 3/3] e100: fix sender hang after tx timeout

To: jgarzik@xxxxxxxxx
Subject: [PATCH 2.6 3/3] e100: fix sender hang after tx timeout
From: Scott Feldman <scott.feldman@xxxxxxxxx>
Date: Thu, 10 Jun 2004 11:25:39 -0700 (PDT)
Cc: netdev@xxxxxxxxxxx, scott.feldman@xxxxxxxxx
Replyto: "Scott Feldman" <scott.feldman@xxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
* When e100 experiences a transmit timeout, it calls e100_up() to reset
the device.  e100_up calls netif_start_queue to release any flow block,
but doesn't reschedule.  This patch unblocks the flow and schedules Tx.
Jay Vosburgh [fubar@xxxxxxxxxx].

Signed-off by: scott.feldman@xxxxxxxxx

-------------

--- linux-2.5/drivers/net/e100.c        2004-06-10 11:07:18.954678400 -0700
+++ linux-2.5/drivers/net/e100.c.mod    2004-06-10 11:07:35.224205056 -0700
@@ -1659,17 +1659,16 @@ static int e100_up(struct nic *nic)
                goto err_clean_cbs;
        e100_set_multicast_list(nic->netdev);
        e100_start_receiver(nic);
-       netif_start_queue(nic->netdev);
        mod_timer(&nic->watchdog, jiffies);
        if((err = request_irq(nic->pdev->irq, e100_intr, SA_SHIRQ,
                nic->netdev->name, nic->netdev)))
                goto err_no_irq;
        e100_enable_irq(nic);
+       netif_wake_queue(nic->netdev);
        return 0;

 err_no_irq:
        del_timer_sync(&nic->watchdog);
-       netif_stop_queue(nic->netdev);
 err_clean_cbs:
        e100_clean_cbs(nic);
 err_rx_clean_list:

<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH 2.6 3/3] e100: fix sender hang after tx timeout, Scott Feldman <=