]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ENGR00172303 - FEC : fix 'eth0: tx queue full!' issue.
authorFugang Duan <B38611@freescale.com>
Fri, 6 Apr 2012 04:59:36 +0000 (12:59 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:23 +0000 (08:34 +0200)
commit395eb4da0a92f47ce17f61de7c149db64dbfc386
treef3473b05025d6e3567c84604f406723f37272c71
parentc7ad9feb3831a4cebd54f5de7617e2025a84e110
ENGR00172303 - FEC : fix 'eth0: tx queue full!' issue.

The issue is hard to reproduce in normal envrionment. And
the reproduce rate is about 40% when doing VTE auto test.

while the driver did report being busy when the link is down
or no transmission buffers are available, it did not stop the
queue, causing instant retries. furthermore, transmission being
triggered with link down was caused by unconditional queue
wakes, especially on timeouts.

Now, wake queue only if link is up and transmission buffers
are available, and dont forget to wake queue when link has
been adjusted. next, add stop queue notification upon driver
induced transmission problems, so network stack has a chance
to handle the situation.

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