| To: | "jgarzik@xxxxxxxxx" <jgarzik@xxxxxxxxx> |
|---|---|
| Subject: | [PATCH 2.4 2/13] e1000: Fix for kernel panic when the interface is brought down while the NAPI enabled driver is under stress |
| From: | Ganesh Venkatesan <ganesh.venkatesan@xxxxxxxxx> |
| Date: | Thu, 6 Jan 2005 17:05:07 -0800 (PST) |
| Cc: | netdev <netdev@xxxxxxxxxxx> |
| Replyto: | "Ganesh Venkatesan" <ganesh.venkatesan@intel.com> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
Signed-off-by: Ganesh Venkatesan <ganesh.venkatesan@xxxxxxxxx>
diff -up net-drivers-2.4/drivers/net/e1000/e1000_main.c
net-drivers-2.4/drivers/net/e1000.new/e1000_main.c
--- net-drivers-2.4/drivers/net/e1000/e1000_main.c 2004-12-06
08:43:11.635381920 -0800
+++ net-drivers-2.4/drivers/net/e1000.new/e1000_main.c 2004-12-06
08:43:12.534245272 -0800
@@ -2147,6 +2147,9 @@ e1000_clean(struct net_device *netdev, i
int tx_cleaned;
int work_done = 0;
+ if (!netif_carrier_ok(netdev))
+ goto quit_polling;
+
tx_cleaned = e1000_clean_tx_irq(adapter);
e1000_clean_rx_irq(adapter, &work_done, work_to_do);
@@ -2156,7 +2159,7 @@ e1000_clean(struct net_device *netdev, i
/* if no Rx and Tx cleanup work was done, exit the polling mode */
if(!tx_cleaned || (work_done < work_to_do) ||
!netif_running(netdev)) {
- netif_rx_complete(netdev);
+quit_polling: netif_rx_complete(netdev);
e1000_irq_enable(adapter);
return 0;
}
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 2.4 1/13] e1000: ITR does not default correctly, Ganesh Venkatesan |
|---|---|
| Next by Date: | [PATCH 2.4 3/13] e1000: Fix ethtool diagnostics -- specifically for blade server implementations, Ganesh Venkatesan |
| Previous by Thread: | [PATCH 2.4 1/13] e1000: ITR does not default correctly, Ganesh Venkatesan |
| Next by Thread: | [PATCH 2.4 3/13] e1000: Fix ethtool diagnostics -- specifically for blade server implementations, Ganesh Venkatesan |
| Indexes: | [Date] [Thread] [Top] [All Lists] |