-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 11/08/05 09:35:29, jaypee@xxxxxxxxxx wrote:
My theory as to why this occurs is that in au1000_tx there is a race
condition.
If a tx_done interrupt for the last tx buffer occurs between reading
buff_stat (line 1905, au1000_eth.c) and calling netif_stop_queue then
the queue won't get woken until the watchdog barks.
I inserted a local_irq_save() at line 1903 and a local_irq_restore()
at line 1915 and that seems to have fixed the problem. (Been running
for half an hour with no netdev timeouts).
Oh you'll need to turn WARN_ON off or you'll get lots of
Badness in local_bh_enable warnings.
- --
mailto:jaypee@xxxxxxxxxx
http://www.jaypee.org.uk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFC+xonZDxnKy3oOpYRApzaAKDVDqkfKA/gDXo9N6Kq2twilUVy2gCfWDRK
2qsrUN51BEFqtfXwLih7QhE=
=jbjw
-----END PGP SIGNATURE-----