diff options
author | Jiri Pirko <jpirko@redhat.com> | 2010-04-01 17:22:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-03 17:22:15 -0400 |
commit | 22bedad3ce112d5ca1eaf043d4990fa2ed698c87 (patch) | |
tree | b6fba5688d48b1396f01d13ee53610dea7749c15 /drivers/net/tulip/de2104x.c | |
parent | a748ee2426817a95b1f03012d8f339c45c722ae1 (diff) |
net: convert multicast list to list_head
Converts the list and the core manipulating with it to be the same as uc_list.
+uses two functions for adding/removing mc address (normal and "global"
variant) instead of a function parameter.
+removes dev_mcast.c completely.
+exposes netdev_hw_addr_list_* macros along with __hw_addr_* functions for
manipulation with lists on a sandbox (used in bonding and 80211 drivers)
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tulip/de2104x.c')
-rw-r--r-- | drivers/net/tulip/de2104x.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c index cb429723b2c8..a68b91764627 100644 --- a/drivers/net/tulip/de2104x.c +++ b/drivers/net/tulip/de2104x.c | |||
@@ -670,15 +670,15 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev) | |||
670 | { | 670 | { |
671 | struct de_private *de = netdev_priv(dev); | 671 | struct de_private *de = netdev_priv(dev); |
672 | u16 hash_table[32]; | 672 | u16 hash_table[32]; |
673 | struct dev_mc_list *mclist; | 673 | struct netdev_hw_addr *ha; |
674 | int i; | 674 | int i; |
675 | u16 *eaddrs; | 675 | u16 *eaddrs; |
676 | 676 | ||
677 | memset(hash_table, 0, sizeof(hash_table)); | 677 | memset(hash_table, 0, sizeof(hash_table)); |
678 | set_bit_le(255, hash_table); /* Broadcast entry */ | 678 | set_bit_le(255, hash_table); /* Broadcast entry */ |
679 | /* This should work on big-endian machines as well. */ | 679 | /* This should work on big-endian machines as well. */ |
680 | netdev_for_each_mc_addr(mclist, dev) { | 680 | netdev_for_each_mc_addr(ha, dev) { |
681 | int index = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x1ff; | 681 | int index = ether_crc_le(ETH_ALEN, ha->addr) & 0x1ff; |
682 | 682 | ||
683 | set_bit_le(index, hash_table); | 683 | set_bit_le(index, hash_table); |
684 | } | 684 | } |
@@ -699,13 +699,13 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev) | |||
699 | 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) |
700 | { | 700 | { |
701 | struct de_private *de = netdev_priv(dev); | 701 | struct de_private *de = netdev_priv(dev); |
702 | struct dev_mc_list *mclist; | 702 | struct netdev_hw_addr *ha; |
703 | u16 *eaddrs; | 703 | u16 *eaddrs; |
704 | 704 | ||
705 | /* We have <= 14 addresses so we can use the wonderful | 705 | /* We have <= 14 addresses so we can use the wonderful |
706 | 16 address perfect filtering of the Tulip. */ | 706 | 16 address perfect filtering of the Tulip. */ |
707 | netdev_for_each_mc_addr(mclist, dev) { | 707 | netdev_for_each_mc_addr(ha, dev) { |
708 | eaddrs = (u16 *)mclist->dmi_addr; | 708 | eaddrs = (u16 *) ha->addr; |
709 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; | 709 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; |
710 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; | 710 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; |
711 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; | 711 | *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++; |