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/stmmac | |
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/stmmac')
-rw-r--r-- | drivers/net/stmmac/dwmac100.c | 6 | ||||
-rw-r--r-- | drivers/net/stmmac/dwmac1000_core.c | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/stmmac/dwmac100.c b/drivers/net/stmmac/dwmac100.c index a183de29c39a..c0a1c9df3ac7 100644 --- a/drivers/net/stmmac/dwmac100.c +++ b/drivers/net/stmmac/dwmac100.c | |||
@@ -316,7 +316,7 @@ static void dwmac100_set_filter(struct net_device *dev) | |||
316 | MAC_CONTROL_HO | MAC_CONTROL_HP); | 316 | MAC_CONTROL_HO | MAC_CONTROL_HP); |
317 | } else { | 317 | } else { |
318 | u32 mc_filter[2]; | 318 | u32 mc_filter[2]; |
319 | struct dev_mc_list *mclist; | 319 | struct netdev_hw_addr *ha; |
320 | 320 | ||
321 | /* Perfect filter mode for physical address and Hash | 321 | /* Perfect filter mode for physical address and Hash |
322 | filter for multicast */ | 322 | filter for multicast */ |
@@ -325,11 +325,11 @@ static void dwmac100_set_filter(struct net_device *dev) | |||
325 | MAC_CONTROL_IF | MAC_CONTROL_HO); | 325 | MAC_CONTROL_IF | MAC_CONTROL_HO); |
326 | 326 | ||
327 | memset(mc_filter, 0, sizeof(mc_filter)); | 327 | memset(mc_filter, 0, sizeof(mc_filter)); |
328 | netdev_for_each_mc_addr(mclist, dev) { | 328 | netdev_for_each_mc_addr(ha, dev) { |
329 | /* The upper 6 bits of the calculated CRC are used to | 329 | /* The upper 6 bits of the calculated CRC are used to |
330 | * index the contens of the hash table */ | 330 | * index the contens of the hash table */ |
331 | int bit_nr = | 331 | int bit_nr = |
332 | ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26; | 332 | ether_crc(ETH_ALEN, ha->addr) >> 26; |
333 | /* The most significant bit determines the register to | 333 | /* The most significant bit determines the register to |
334 | * use (H/L) while the other 5 bits determine the bit | 334 | * use (H/L) while the other 5 bits determine the bit |
335 | * within the register. */ | 335 | * within the register. */ |
diff --git a/drivers/net/stmmac/dwmac1000_core.c b/drivers/net/stmmac/dwmac1000_core.c index a6538ae4694c..bf73fda6adfb 100644 --- a/drivers/net/stmmac/dwmac1000_core.c +++ b/drivers/net/stmmac/dwmac1000_core.c | |||
@@ -94,17 +94,17 @@ static void dwmac1000_set_filter(struct net_device *dev) | |||
94 | writel(0xffffffff, ioaddr + GMAC_HASH_LOW); | 94 | writel(0xffffffff, ioaddr + GMAC_HASH_LOW); |
95 | } else if (!netdev_mc_empty(dev)) { | 95 | } else if (!netdev_mc_empty(dev)) { |
96 | u32 mc_filter[2]; | 96 | u32 mc_filter[2]; |
97 | struct dev_mc_list *mclist; | 97 | struct netdev_hw_addr *ha; |
98 | 98 | ||
99 | /* Hash filter for multicast */ | 99 | /* Hash filter for multicast */ |
100 | value = GMAC_FRAME_FILTER_HMC; | 100 | value = GMAC_FRAME_FILTER_HMC; |
101 | 101 | ||
102 | memset(mc_filter, 0, sizeof(mc_filter)); | 102 | memset(mc_filter, 0, sizeof(mc_filter)); |
103 | netdev_for_each_mc_addr(mclist, dev) { | 103 | netdev_for_each_mc_addr(ha, dev) { |
104 | /* The upper 6 bits of the calculated CRC are used to | 104 | /* The upper 6 bits of the calculated CRC are used to |
105 | index the contens of the hash table */ | 105 | index the contens of the hash table */ |
106 | int bit_nr = | 106 | int bit_nr = |
107 | bitrev32(~crc32_le(~0, mclist->dmi_addr, 6)) >> 26; | 107 | bitrev32(~crc32_le(~0, ha->addr, 6)) >> 26; |
108 | /* The most significant bit determines the register to | 108 | /* The most significant bit determines the register to |
109 | * use (H/L) while the other 5 bits determine the bit | 109 | * use (H/L) while the other 5 bits determine the bit |
110 | * within the register. */ | 110 | * within the register. */ |