aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ewrk3.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-05-21 00:04:44 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-05-21 00:04:44 -0400
commitf8965467f366fd18f01feafb5db10512d7b4422c (patch)
tree3706a9cd779859271ca61b85c63a1bc3f82d626e /drivers/net/ewrk3.c
parenta26272e5200765691e67d6780e52b32498fdb659 (diff)
parent2ec8c6bb5d8f3a62a79f463525054bae1e3d4487 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits) qlcnic: adding co maintainer ixgbe: add support for active DA cables ixgbe: dcb, do not tag tc_prio_control frames ixgbe: fix ixgbe_tx_is_paused logic ixgbe: always enable vlan strip/insert when DCB is enabled ixgbe: remove some redundant code in setting FCoE FIP filter ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp ixgbe: fix header len when unsplit packet overflows to data buffer ipv6: Never schedule DAD timer on dead address ipv6: Use POSTDAD state ipv6: Use state_lock to protect ifa state ipv6: Replace inet6_ifaddr->dead with state cxgb4: notify upper drivers if the device is already up when they load cxgb4: keep interrupts available when the ports are brought down cxgb4: fix initial addition of MAC address cnic: Return SPQ credit to bnx2x after ring setup and shutdown. cnic: Convert cnic_local_flags to atomic ops. can: Fix SJA1000 command register writes on SMP systems bridge: fix build for CONFIG_SYSFS disabled ARCNET: Limit com20020 PCI ID matches for SOHARD cards ... Fix up various conflicts with pcmcia tree drivers/net/ {pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and wireless/orinoco/spectrum_cs.c} and feature removal (Documentation/feature-removal-schedule.txt). Also fix a non-content conflict due to pm_qos_requirement getting renamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c
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 }