linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Piotr Kaczuba <pepe@attika.ath.cx>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: tulip driver: errors instead TX packets?
Date: Sat, 10 Jan 2004 21:28:45 +0100	[thread overview]
Message-ID: <4000607D.1020102@attika.ath.cx> (raw)
In-Reply-To: <400035F5.3040300@pobox.com>

Jeff Garzik wrote:
> Piotr Kaczuba wrote:
> 
>> I've got a ADMtek Centaur (3cSOHO100B-TX) running with the tulip 
>> driver  on 2.6.1. I wonder if anyone has noticed that ifconfig shows 
>> the  packets sent in the errors field instead of the TX packets field. 
>> At  least, this is what I assume because it shows 0 TX packets and 
>> 11756  errors.
> 
> This is an old error, but since packets show up, nobody bothers with the 
> incorrect statistics...

It seems that the error lies in the following piece of code from 
drivers/net/tulip/interrupt.c, function tulip_interrupt. I've inserted 
an additional printk after the "if (status & 0x8000)" and it looks like 
normal operation of the nic is considered as an major error by the 
driver because my printk appeared in dmesg output right after bringing 
the interface up. I assume that the else branch is never executed 
although I didn't test what happens if an transmit error really happens. 
I wonder if a fix for this problem consists of just changing the value 
of the AND mask but I have no idea what the right value would be.


   if (status & 0x8000) {
           /* There was an major error, log it. */
#ifndef final_version
           if (tulip_debug > 1)
              printk(KERN_DEBUG "%s: Transmit error, Tx status %8.8x.\n",
                        dev->name, status);
#endif
           tp->stats.tx_errors++;
           if (status & 0x4104) tp->stats.tx_aborted_errors++;
           if (status & 0x0C00) tp->stats.tx_carrier_errors++;
           if (status & 0x0200) tp->stats.tx_window_errors++;
           if (status & 0x0002) tp->stats.tx_fifo_errors++;
           if ((status & 0x0080) && tp->full_duplex == 0)
                   tp->stats.tx_heartbeat_errors++;
   } else {
           tp->stats.tx_bytes +=
                   tp->tx_buffers[entry].skb->len;
           tp->stats.collisions += (status >> 3) & 15;
           tp->stats.tx_packets++;
   }


Piotr Kaczuba

  reply	other threads:[~2004-01-10 20:28 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-10 14:48 tulip driver: errors instead TX packets? Piotr Kaczuba
2004-01-10 17:27 ` Jeff Garzik
2004-01-10 20:28   ` Piotr Kaczuba [this message]
2004-01-11  3:20     ` Adam Kropelin
2004-01-11 12:16       ` Piotr Kaczuba
2004-01-11 17:27         ` Adam Kropelin
2004-01-12 22:10           ` Piotr Kaczuba
2004-01-13  5:09             ` Adam Kropelin
2004-01-14 20:47               ` Piotr Kaczuba

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=4000607D.1020102@attika.ath.cx \
    --to=pepe@attika.ath.cx \
    --cc=jgarzik@pobox.com \
    --cc=linux-kernel@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).