]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ENGR00223533 - FEC : fix net watchdog timeout due not refreshing TX timers
authorFugang Duan <B38611@freescale.com>
Tue, 18 Sep 2012 08:27:43 +0000 (16:27 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:13:01 +0000 (14:13 +0200)
commitc7ae92a5e6aec81c5b9593cb1c112f4c9d1b2d9a
tree2352c066caeeea0dcd7a0b2cc334d22bb5c3691a
parent202b68621f38343f0716b2677807455489c9750b
ENGR00223533 - FEC : fix net watchdog timeout due not refreshing TX timers

When do overnight gpu stress test throught nfs, kernel dump as below:

------------[ cut here ]------------
WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0x284/0x2a8()
NETDEV WATCHDOG: eth0 (fec): transmit queue 0 timed out
Modules linked in: galcore imx2_wd_test [last unloaded: galcore]
[<80045854>] (unwind_backtrace+0x0/0xf8) from [<80070c2c>]
(warn_slowpath_common+0x4c/0x64)
<snip>

In sometime, ethernet cannot recover after watchdog timeout which
results in nfs no responding and system hang on.

The patch fixes the way that ->trans_start is refreshed to avoid watchdog
timeout during ethernet status change (such as speed, duplex), and re-init
fec to recover ethernet after watchdog timeout.

Signed-off-by: Fugang Duan <B38611@freescale.com>
drivers/net/fec.c