Thread (8 messages) 8 messages, 4 authors, 2012-06-26

RE: [PATCH 1/1] atl1c: fix issue of transmit queue 0 timed out

flat view

From: Huang, Xiong <hidden>
Date: 2012-06-26 20:25:27
Also in: lkml

Yes, another fix to remove netif_stop_queue when cable link is down.

-Xiong
-----Original Message-----
From: Ben Hutchings [mailto:bhutchings@solarflare.com]
Sent: Wednesday, June 27, 2012 4:24
To: Ren, Cloud
Cc: davem@davemloft.net; netdev@vger.kernel.org; linux-
kernel@vger.kernel.org; qca-linux-team; nic-devel; Huang, Xiong
Subject: Re: [PATCH 1/1] atl1c: fix issue of transmit queue 0 timed out

On Tue, 2012-06-26 at 12:33 -0300, Ren, Cloud wrote:
quoted
From: xiong <redacted>

some people report atl1c could cause system hang with following kernel
trace info:
---------------------------------------
WARNING: at.../net/sched/sch_generic.c:258
dev_watchdog+0x1db/0x1d0()
...
NETDEV WATCHDOG: eth0 (atl1c): transmit queue 0 timed out ...
---------------------------------------
This is caused by netif_stop_queue calling when cable Link is down but
netif_wake_queue isn't called when cable Link is resume.

Signed-off-by: xiong <redacted>
Signed-off-by: Cloud Ren <redacted>
---
 drivers/net/ethernet/atheros/atl1c/atl1c_main.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
index 85717cb..c2736c4 100644
--- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
@@ -351,6 +351,8 @@ static void atl1c_common_task(struct work_struct
*work)
quoted
 		atl1c_irq_disable(adapter);
 		atl1c_check_link_status(adapter);
 		atl1c_irq_enable(adapter);
+		if (netif_queue_stopped(netdev) && netif_carrier_ok(netdev))
+			netif_wake_queue(netdev);
 	}
 }
Why explicitly stop/start the queue when the link changes?  That's what
link_watch is for.

Ben.

--
Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's
the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help