All of lore.kernel.org
 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 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.