3c59x.c - kernel message explosion (fwd)

Denny Gudea (ekay@ecs.fullerton.edu)
Wed, 3 Apr 2002 15:39:27 -0800 (PST)


Hi,

id like to thank you for maintaining this driver..

i have a 3com 3c905 and im using 3c59x.c driver to run it in my linux
machine. it is connected to a hub on a network with 7 nodes. it seems like
one of the hosts on my network has a duplex problem (as is described in
vortex.txt). the problem i'm having is that the driver does a lot of
kernel messages for this error even though my debug is set to the default.

i've looked at the code and the problem seems to be due to a small typo:
this code segment begins at line 1826:
------------------------------------------------
if (status & TxComplete) { /* Really "TxError" for us. */
tx_status = inb(ioaddr + TxStatus);
/* Presumably a tx-timeout. We must merely re-enable. */
if (vortex_debug > 2
|| (tx_status != 0x88 && vortex_debug > 0)) {
printk(KERN_ERR "%s: Transmit error, Tx status register %2.2x.\n",
dev->name, tx_status);
if (tx_status == 0x82) {
printk(KERN_ERR "Probably a duplex mismatch. See "
"Documentation/networking/vortex.txt\n");
}
dump_tx_ring(dev);
-------------------------------------------------
i believe the problem resides when it tests for the debug level:

if (vortex_debug > 2
|| (tx_status != 0x88 && vortex_debug > 0)) {

the || operator should be a && because we only want to print the error
message if debug is greater than 2 and the transmit status is not what it
should be.

thanks a lot

denny gudea
ekay@ecs.fullerton.edu

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/