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/forcedeth.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/forcedeth.c')
-rw-r--r-- | drivers/net/forcedeth.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index ca05e5662029..6a2b64f0a7db 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
@@ -3103,12 +3103,14 @@ static void nv_set_multicast(struct net_device *dev) | |||
3103 | if (dev->flags & IFF_ALLMULTI) { | 3103 | if (dev->flags & IFF_ALLMULTI) { |
3104 | alwaysOn[0] = alwaysOn[1] = alwaysOff[0] = alwaysOff[1] = 0; | 3104 | alwaysOn[0] = alwaysOn[1] = alwaysOff[0] = alwaysOff[1] = 0; |
3105 | } else { | 3105 | } else { |
3106 | struct dev_mc_list *walk; | 3106 | struct netdev_hw_addr *ha; |
3107 | 3107 | ||
3108 | netdev_for_each_mc_addr(walk, dev) { | 3108 | netdev_for_each_mc_addr(ha, dev) { |
3109 | unsigned char *addr = ha->addr; | ||
3109 | u32 a, b; | 3110 | u32 a, b; |
3110 | a = le32_to_cpu(*(__le32 *) walk->dmi_addr); | 3111 | |
3111 | b = le16_to_cpu(*(__le16 *) (&walk->dmi_addr[4])); | 3112 | a = le32_to_cpu(*(__le32 *) addr); |
3113 | b = le16_to_cpu(*(__le16 *) (&addr[4])); | ||
3112 | alwaysOn[0] &= a; | 3114 | alwaysOn[0] &= a; |
3113 | alwaysOff[0] &= ~a; | 3115 | alwaysOff[0] &= ~a; |
3114 | alwaysOn[1] &= b; | 3116 | alwaysOn[1] &= b; |