diff options
Diffstat (limited to 'drivers/net/tulip/de2104x.c')
-rw-r--r-- | drivers/net/tulip/de2104x.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c index 19cafc2b418d..c0e70006374e 100644 --- a/drivers/net/tulip/de2104x.c +++ b/drivers/net/tulip/de2104x.c | |||
@@ -654,7 +654,6 @@ static netdev_tx_t de_start_xmit (struct sk_buff *skb, | |||
654 | 654 | ||
655 | /* Trigger an immediate transmit demand. */ | 655 | /* Trigger an immediate transmit demand. */ |
656 | dw32(TxPoll, NormalTxPoll); | 656 | dw32(TxPoll, NormalTxPoll); |
657 | dev->trans_start = jiffies; | ||
658 | 657 | ||
659 | return NETDEV_TX_OK; | 658 | return NETDEV_TX_OK; |
660 | } | 659 | } |
@@ -671,15 +670,15 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev) | |||
671 | { | 670 | { |
672 | struct de_private *de = netdev_priv(dev); | 671 | struct de_private *de = netdev_priv(dev); |
673 | u16 hash_table[32]; | 672 | u16 hash_table[32]; |
674 | struct dev_mc_list *mclist; | 673 | struct netdev_hw_addr *ha; |
675 | int i; | 674 | int i; |
676 | u16 *eaddrs; | 675 | u16 *eaddrs; |
677 | 676 | ||
678 | memset(hash_table, 0, sizeof(hash_table)); | 677 | memset(hash_table, 0, sizeof(hash_table)); |
679 | set_bit_le(255, hash_table); /* Broadcast entry */ | 678 | set_bit_le(255, hash_table); /* Broadcast entry */ |
680 | /* This should work on big-endian machines as well. */ | 679 | /* This should work on big-endian machines as well. */ |
681 | netdev_for_each_mc_addr(mclist, dev) { | 680 | netdev_for_each_mc_addr(ha, dev) { |
682 | int index = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x1ff; | 681 | int index = ether_crc_le(ETH_ALEN, ha->addr) & 0x1ff; |
683 | 682 | ||
684 | set_bit_le(index, hash_table); | 683 | set_bit_le(index, hash_table); |
685 | } | 684 | } |
@@ -700,13 +699,13 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev) | |||
700 | static void build_setup_frame_perfect(u16 *setup_frm, struct net_device *dev) | 699 | static void build_setup_frame_perfect(u16 *setup_frm, struct net_device *dev) |
701 | { | 700 | { |
702 | struct de_private *de = netdev_priv(dev); | 701 | struct de_private *de = netdev_priv(dev); |
703 | struct dev_mc_list *mclist; | 702 | struct netdev_hw_addr *ha; |
704 | u16 *eaddrs; | 703 | u16 *eaddrs; |
705 | 704 | ||
706 | /* We have <= 14 addresses so we can use the wonderful | 705 | /* We have <= 14 addresses so we can use the wonderful |
707 | 16 address perfect filtering of the Tulip. */ | 706 | 16 address perfect filtering of the Tulip. */ |
708 | netdev_for_each_mc_addr(mclist, dev) { | 707 | netdev_for_each_mc_addr(ha, dev) { |
709 | eaddrs = (u16 *)mclist->dmi_addr; | 708 | eaddrs = (u16 *) ha->addr; |
710 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; | 709 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; |
711 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; | 710 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; |
712 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; | 711 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; |