patch-2.4.21 linux-2.4.21/drivers/net/lance.c
Next file: linux-2.4.21/drivers/net/lasi_82596.c
Previous file: linux-2.4.21/drivers/net/irda/smc-ircc.c
Back to the patch index
Back to the overall index
- Lines: 26
- Date:
2003-06-13 07:51:35.000000000 -0700
- Orig file:
linux-2.4.20/drivers/net/lance.c
- Orig date:
2002-08-02 17:39:44.000000000 -0700
diff -urN linux-2.4.20/drivers/net/lance.c linux-2.4.21/drivers/net/lance.c
@@ -893,8 +893,15 @@
/* The old LANCE chips doesn't automatically pad buffers to min. size. */
if (chip_table[lp->chip_version].flags & LANCE_MUST_PAD) {
- lp->tx_ring[entry].length =
- -(ETH_ZLEN < skb->len ? skb->len : ETH_ZLEN);
+ if(skb->len < ETH_ZLEN)
+ {
+ skb = skb_padto(skb, ETH_ZLEN);
+ if(skb == NULL)
+ goto out;
+ lp->tx_ring[entry].length = -ETH_ZLEN;
+ }
+ else
+ lp->tx_ring[entry].length = -skb->len;
} else
lp->tx_ring[entry].length = -skb->len;
@@ -927,6 +934,7 @@
if ((lp->cur_tx - lp->dirty_tx) >= TX_RING_SIZE)
netif_stop_queue(dev);
+out:
spin_unlock_irqrestore(&lp->devlock, flags);
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)