Linux MIPS Architecture development
 help / color / mirror / Atom feed
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

             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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox