From: Thomas Petazzoni <thomas.petazzoni@enix.org>
To: linux-mips@linux-mips.org
Subject: Error on TX descriptor free
Date: Fri, 22 Oct 2004 15:14:10 +0200 [thread overview]
Message-ID: <417907A2.3030000@enix.org> (raw)
Hello,
I'm currently using the MV643xx Ethernet driver on my board. When I run
the command :
# ifconfig eth0 down
I see the following message :
eth0: Error on Tx descriptor free - could not free 1 descriptors
I went through the code, and saw that this message is displayed in
mv64340_eth_free_tx_rings(). This function frees all remaining skbs
(registered in the mp->tx_skb array), and decrement mp->tx_ring_skbs.
Then, it checks if it reached 0. In my case, it is still 1.
In fact, mp->tx_ring_skbs is initialized to 0 and then incremented in
mv64340_eth_start_xmit() (when a transmission starts), and is
decremented in mv64340_eth_free_tx_queue (when the transmission is
done). But the decrementation only occurs if mp->tx_ring_skbs is
different from one. I don't understand why.
At the end of mv64340_eth_free_tx_queue(), the following code makes sure
that the number of skbs did not reach 0 :
if (mp->tx_ring_skbs == 0)
panic("ERROR - TX outstanding SKBs counter is corrupted");
Well, my question is simply : why can't we decrement the
mp->tx_ring_skbs counter to 0 ?
What needs to be fixed ? The decrementation of the counter, or the
function that frees the TX queue when the interface is stopped ?
I've seen similar code in the Titan GE driver.
Do not hesitate to ask for further details,
Thanks,
Thomas
--
PETAZZONI Thomas - thomas.petazzoni@enix.org
http://thomas.enix.org - Jabber: kos_tom@sourcecode.de
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E 1624 F653 CB30 98D3 F7A7
next reply other threads:[~2004-10-22 13:12 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-22 13:14 Thomas Petazzoni [this message]
2004-10-22 16:58 ` Error on TX descriptor free Manish Lachwani
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=417907A2.3030000@enix.org \
--to=thomas.petazzoni@enix.org \
--cc=linux-mips@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.