--- linux/drivers/net/eepro.c 2002-11-29 00:53:13.000000000 +0100 +++ linux.new/drivers/net/eepro.c 2003-01-10 13:01:55.000000000 +0100 @@ -23,6 +23,8 @@ This is a compatibility hardware problem. Versions: + 0.14 padding of ethernet frames of length less than + ETH_ZLEN (01/10/2003) 0.13a in memory shortage, drop packets also in board (Michael Westermann , 07/30/2002) 0.13 irq sharing, rewrote probe function, fixed a nasty bug in @@ -104,7 +106,7 @@ */ static const char version[] = - "eepro.c: v0.13 11/08/2001 aris@cathedrallabs.org\n"; + "eepro.c: v0.14 01/10/2003 aris@cathedrallabs.org\n"; #include @@ -1138,9 +1140,16 @@ spin_lock_irqsave(&lp->lock, flags); { - short length = ETH_ZLEN < skb->len ? skb->len : ETH_ZLEN; + short length; unsigned char *buf = skb->data; + if (ETH_ZLEN <= skb->len) { + length = skb->len + } else { + length = ETH_ZLEN; + memset(buf + skb->len, 0, length - skb->len); + } + if (hardware_send_packet(dev, buf, length)) /* we won't wake queue here because we're out of space */ lp->stats.tx_dropped++;