patch-2.4.21 linux-2.4.21/drivers/net/pcmcia/axnet_cs.c
Next file: linux-2.4.21/drivers/net/pcmcia/fmvj18x_cs.c
Previous file: linux-2.4.21/drivers/net/pci-skeleton.c
Back to the patch index
Back to the overall index
- Lines: 36
- Date:
2003-06-13 07:51:35.000000000 -0700
- Orig file:
linux-2.4.20/drivers/net/pcmcia/axnet_cs.c
- Orig date:
2002-11-28 15:53:14.000000000 -0800
diff -urN linux-2.4.20/drivers/net/pcmcia/axnet_cs.c linux-2.4.21/drivers/net/pcmcia/axnet_cs.c
@@ -1216,7 +1216,8 @@
struct ei_device *ei_local = (struct ei_device *) dev->priv;
int length, send_length, output_page;
unsigned long flags;
-
+ u8 packet[ETH_ZLEN];
+
netif_stop_queue(dev);
length = skb->len;
@@ -1241,7 +1242,7 @@
ei_local->irqlock = 1;
send_length = ETH_ZLEN < length ? length : ETH_ZLEN;
-
+
/*
* We have two Tx slots available for use. Find the first free
* slot, and then perform some sanity checks. With two Tx bufs,
@@ -1286,7 +1287,15 @@
* trigger the send later, upon receiving a Tx done interrupt.
*/
- ei_block_output(dev, length, skb->data, output_page);
+ if(length == skb->len)
+ ei_block_output(dev, length, skb->data, output_page);
+ else
+ {
+ memset(packet, 0, ETH_ZLEN);
+ memcpy(packet, skb->data, skb->len);
+ ei_block_output(dev, length, packet, output_page);
+ }
+
if (! ei_local->txing)
{
ei_local->txing = 1;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)