aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ewrk3.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ewrk3.c')
-rw-r--r--drivers/net/ewrk3.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index 91e59f3a9d6d..380d0614a89a 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -757,7 +757,7 @@ static void ewrk3_timeout(struct net_device *dev)
757 */ 757 */
758 ENABLE_IRQs; 758 ENABLE_IRQs;
759 759
760 dev->trans_start = jiffies; 760 dev->trans_start = jiffies; /* prevent tx timeout */
761 netif_wake_queue(dev); 761 netif_wake_queue(dev);
762 } 762 }
763} 763}
@@ -862,7 +862,6 @@ static netdev_tx_t ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev)
862 spin_unlock_irq (&lp->hw_lock); 862 spin_unlock_irq (&lp->hw_lock);
863 863
864 dev->stats.tx_bytes += skb->len; 864 dev->stats.tx_bytes += skb->len;
865 dev->trans_start = jiffies;
866 dev_kfree_skb (skb); 865 dev_kfree_skb (skb);
867 866
868 /* Check for free resources: stop Tx queue if there are none */ 867 /* Check for free resources: stop Tx queue if there are none */
@@ -1169,7 +1168,7 @@ static void set_multicast_list(struct net_device *dev)
1169static void SetMulticastFilter(struct net_device *dev) 1168static void SetMulticastFilter(struct net_device *dev)
1170{ 1169{
1171 struct ewrk3_private *lp = netdev_priv(dev); 1170 struct ewrk3_private *lp = netdev_priv(dev);
1172 struct dev_mc_list *dmi; 1171 struct netdev_hw_addr *ha;
1173 u_long iobase = dev->base_addr; 1172 u_long iobase = dev->base_addr;
1174 int i; 1173 int i;
1175 char *addrs, bit, byte; 1174 char *addrs, bit, byte;
@@ -1213,8 +1212,8 @@ static void SetMulticastFilter(struct net_device *dev)
1213 } 1212 }
1214 1213
1215 /* Update table */ 1214 /* Update table */
1216 netdev_for_each_mc_addr(dmi, dev) { 1215 netdev_for_each_mc_addr(ha, dev) {
1217 addrs = dmi->dmi_addr; 1216 addrs = ha->addr;
1218 if ((*addrs & 0x01) == 1) { /* multicast address? */ 1217 if ((*addrs & 0x01) == 1) { /* multicast address? */
1219 crc = ether_crc_le(ETH_ALEN, addrs); 1218 crc = ether_crc_le(ETH_ALEN, addrs);
1220 hashcode = crc & ((1 << 9) - 1); /* hashcode is 9 LSb of CRC */ 1219 hashcode = crc & ((1 << 9) - 1); /* hashcode is 9 LSb of CRC */
@@ -1370,8 +1369,6 @@ static void __init EthwrkSignature(char *name, char *eeprom_image)
1370 name[EWRK3_STRLEN] = '\0'; 1369 name[EWRK3_STRLEN] = '\0';
1371 } else 1370 } else
1372 name[0] = '\0'; 1371 name[0] = '\0';
1373
1374 return;
1375} 1372}
1376 1373
1377/* 1374/*
@@ -1776,8 +1773,7 @@ static int ewrk3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
1776 break; 1773 break;
1777 case EWRK3_SET_MCA: /* Set a multicast address */ 1774 case EWRK3_SET_MCA: /* Set a multicast address */
1778 if (capable(CAP_NET_ADMIN)) { 1775 if (capable(CAP_NET_ADMIN)) {
1779 if (ioc->len > 1024) 1776 if (ioc->len > HASH_TABLE_LEN) {
1780 {
1781 status = -EINVAL; 1777 status = -EINVAL;
1782 break; 1778 break;
1783 } 1779 }