linux-mips
[Top] [All Lists]

Re: Au1xxx ethernet race condition?

To: linux-mips <linux-mips@linux-mips.org>
Subject: Re: Au1xxx ethernet race condition?
From: jaypee@hotpop.com
Date: Thu, 11 Aug 2005 09:28:05 +0000
In-reply-to: <1123749337l.30285l.5l@cavan> (from jaypee@hotpop.com on Thu Aug 11 09:35:29 2005)
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1123749337l.30285l.5l@cavan>
Reply-to: linux-mips <linux-mips@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/08/05 09:35:29, jaypee@hotpop.com 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@hotpop.com
http://www.jaypee.org.uk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFC+xonZDxnKy3oOpYRApzaAKDVDqkfKA/gDXo9N6Kq2twilUVy2gCfWDRK
2qsrUN51BEFqtfXwLih7QhE=
=jbjw
-----END PGP SIGNATURE-----




<Prev in Thread] Current Thread [Next in Thread>