patch-2.4.21 linux-2.4.21/drivers/net/pci-skeleton.c
Next file: linux-2.4.21/drivers/net/pcmcia/axnet_cs.c
Previous file: linux-2.4.21/drivers/net/ns83820.c
Back to the patch index
Back to the overall index
- Lines: 46
- Date:
2003-06-13 07:51:35.000000000 -0700
- Orig file:
linux-2.4.20/drivers/net/pci-skeleton.c
- Orig date:
2002-11-28 15:53:14.000000000 -0800
diff -urN linux-2.4.20/drivers/net/pci-skeleton.c linux-2.4.21/drivers/net/pci-skeleton.c
@@ -2,7 +2,7 @@
drivers/net/pci-skeleton.c
- Maintained by Jeff Garzik <jgarzik@mandrakesoft.com>
+ Maintained by Jeff Garzik <jgarzik@pobox.com>
Original code came from 8139too.c, which in turns was based
originally on Donald Becker's rtl8139.c driver, versions 1.11
@@ -483,7 +483,7 @@
chip_t chipset;
};
-MODULE_AUTHOR ("Jeff Garzik <jgarzik@mandrakesoft.com>");
+MODULE_AUTHOR ("Jeff Garzik <jgarzik@pobox.com>");
MODULE_DESCRIPTION ("Skeleton for a PCI Fast Ethernet driver");
MODULE_LICENSE("GPL");
MODULE_PARM (multicast_filter_limit, "i");
@@ -1348,6 +1348,16 @@
void *ioaddr = tp->mmio_addr;
int entry;
+ /* If we don't have auto-pad remember not to send random
+ memory! */
+
+ if (skb->len < ETH_ZLEN)
+ {
+ skb = skb_padto(skb, ETH_ZLEN);
+ if(skb == NULL)
+ return 0;
+ }
+
/* Calculate the next Tx descriptor entry. */
entry = atomic_read (&tp->cur_tx) % NUM_TX_DESC;
@@ -1358,9 +1368,8 @@
/* tp->tx_info[entry].mapping = 0; */
memcpy (tp->tx_buf[entry], skb->data, skb->len);
- /* Note: the chip doesn't have auto-pad! */
NETDRV_W32 (TxStatus0 + (entry * sizeof(u32)),
- tp->tx_flag | (skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN));
+ tp->tx_flag | skb->len);
dev->trans_start = jiffies;
atomic_inc (&tp->cur_tx);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)