Re: Au1xxx ethernet race condition?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----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-----





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux