Commit 7190c6f4 authored by Jeff Garzik's avatar Jeff Garzik

Merge changes from yellowfin GigE net driver version LK1.1.6:

* Only print warning on truly "oversized" packets
* Fix theoretical bug on gigabit cards - return to 1.1.3 behavior

Contributor: Val Henson
parent b5412329
...@@ -40,12 +40,16 @@ ...@@ -40,12 +40,16 @@
LK1.1.5 (val@nmt.edu): LK1.1.5 (val@nmt.edu):
* Fix forced full-duplex bug I introduced * Fix forced full-duplex bug I introduced
LK1.1.6 (val@nmt.edu):
* Only print warning on truly "oversized" packets
* Fix theoretical bug on gigabit cards - return to 1.1.3 behavior
*/ */
#define DRV_NAME "yellowfin" #define DRV_NAME "yellowfin"
#define DRV_VERSION "1.05+LK1.1.5" #define DRV_VERSION "1.05+LK1.1.6"
#define DRV_RELDATE "May 10, 2001" #define DRV_RELDATE "Feb 11, 2002"
#define PFX DRV_NAME ": " #define PFX DRV_NAME ": "
...@@ -177,8 +181,8 @@ MODULE_PARM_DESC(gx_fix, "G-NIC: enable GX server chipset bug workaround (0-1)") ...@@ -177,8 +181,8 @@ MODULE_PARM_DESC(gx_fix, "G-NIC: enable GX server chipset bug workaround (0-1)")
I. Board Compatibility I. Board Compatibility
This device driver is designed for the Packet Engines "Yellowfin" Gigabit This device driver is designed for the Packet Engines "Yellowfin" Gigabit
Ethernet adapter. The only PCA currently supported is the G-NIC 64-bit Ethernet adapter. The G-NIC 64-bit PCI card is supported, as well as the
PCI card. Symbios 53C885E dual function chip.
II. Board-specific settings II. Board-specific settings
...@@ -260,7 +264,8 @@ enum pci_id_flags_bits { ...@@ -260,7 +264,8 @@ enum pci_id_flags_bits {
}; };
enum capability_flags { enum capability_flags {
HasMII=1, FullTxStatus=2, IsGigabit=4, HasMulticastBug=8, FullRxStatus=16, HasMII=1, FullTxStatus=2, IsGigabit=4, HasMulticastBug=8, FullRxStatus=16,
HasMACAddrBug=32, DontUseEeprom=64, /* Only on early revs. */ HasMACAddrBug=32, /* Only on early revs. */
DontUseEeprom=64, /* Don't read the MAC from the EEPROm. */
}; };
/* The PCI I/O space extent. */ /* The PCI I/O space extent. */
#define YELLOWFIN_SIZE 0x100 #define YELLOWFIN_SIZE 0x100
...@@ -284,7 +289,7 @@ struct pci_id_info { ...@@ -284,7 +289,7 @@ struct pci_id_info {
static struct pci_id_info pci_id_tbl[] = { static struct pci_id_info pci_id_tbl[] = {
{"Yellowfin G-NIC Gigabit Ethernet", { 0x07021000, 0xffffffff}, {"Yellowfin G-NIC Gigabit Ethernet", { 0x07021000, 0xffffffff},
PCI_IOTYPE, YELLOWFIN_SIZE, PCI_IOTYPE, YELLOWFIN_SIZE,
FullTxStatus | IsGigabit | HasMulticastBug | HasMACAddrBug}, FullTxStatus | IsGigabit | HasMulticastBug | HasMACAddrBug | DontUseEeprom},
{"Symbios SYM83C885", { 0x07011000, 0xffffffff}, {"Symbios SYM83C885", { 0x07011000, 0xffffffff},
PCI_IOTYPE, YELLOWFIN_SIZE, HasMII | DontUseEeprom }, PCI_IOTYPE, YELLOWFIN_SIZE, HasMII | DontUseEeprom },
{0,}, {0,},
...@@ -1126,8 +1131,9 @@ static int yellowfin_rx(struct net_device *dev) ...@@ -1126,8 +1131,9 @@ static int yellowfin_rx(struct net_device *dev)
if (--boguscnt < 0) if (--boguscnt < 0)
break; break;
if ( ! (desc_status & RX_EOP)) { if ( ! (desc_status & RX_EOP)) {
printk(KERN_WARNING "%s: Oversized Ethernet frame spanned multiple buffers," if (data_size != 0)
" status %4.4x!\n", dev->name, desc_status); printk(KERN_WARNING "%s: Oversized Ethernet frame spanned multiple buffers,"
" status %4.4x, data_size %d!\n", dev->name, desc_status, data_size);
yp->stats.rx_length_errors++; yp->stats.rx_length_errors++;
} else if ((yp->drv_flags & IsGigabit) && (frame_status & 0x0038)) { } else if ((yp->drv_flags & IsGigabit) && (frame_status & 0x0038)) {
/* There was a error. */ /* There was a error. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment