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/cassini.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/cassini.c')
-rw-r--r-- | drivers/net/cassini.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c index 9bd155e4111c..bd857a20a755 100644 --- a/drivers/net/cassini.c +++ b/drivers/net/cassini.c | |||
@@ -2957,20 +2957,20 @@ static void cas_process_mc_list(struct cas *cp) | |||
2957 | { | 2957 | { |
2958 | u16 hash_table[16]; | 2958 | u16 hash_table[16]; |
2959 | u32 crc; | 2959 | u32 crc; |
2960 | struct dev_mc_list *dmi; | 2960 | struct netdev_hw_addr *ha; |
2961 | int i = 1; | 2961 | int i = 1; |
2962 | 2962 | ||
2963 | memset(hash_table, 0, sizeof(hash_table)); | 2963 | memset(hash_table, 0, sizeof(hash_table)); |
2964 | netdev_for_each_mc_addr(dmi, cp->dev) { | 2964 | netdev_for_each_mc_addr(ha, cp->dev) { |
2965 | if (i <= CAS_MC_EXACT_MATCH_SIZE) { | 2965 | if (i <= CAS_MC_EXACT_MATCH_SIZE) { |
2966 | /* use the alternate mac address registers for the | 2966 | /* use the alternate mac address registers for the |
2967 | * first 15 multicast addresses | 2967 | * first 15 multicast addresses |
2968 | */ | 2968 | */ |
2969 | writel((dmi->dmi_addr[4] << 8) | dmi->dmi_addr[5], | 2969 | writel((ha->addr[4] << 8) | ha->addr[5], |
2970 | cp->regs + REG_MAC_ADDRN(i*3 + 0)); | 2970 | cp->regs + REG_MAC_ADDRN(i*3 + 0)); |
2971 | writel((dmi->dmi_addr[2] << 8) | dmi->dmi_addr[3], | 2971 | writel((ha->addr[2] << 8) | ha->addr[3], |
2972 | cp->regs + REG_MAC_ADDRN(i*3 + 1)); | 2972 | cp->regs + REG_MAC_ADDRN(i*3 + 1)); |
2973 | writel((dmi->dmi_addr[0] << 8) | dmi->dmi_addr[1], | 2973 | writel((ha->addr[0] << 8) | ha->addr[1], |
2974 | cp->regs + REG_MAC_ADDRN(i*3 + 2)); | 2974 | cp->regs + REG_MAC_ADDRN(i*3 + 2)); |
2975 | i++; | 2975 | i++; |
2976 | } | 2976 | } |
@@ -2978,7 +2978,7 @@ static void cas_process_mc_list(struct cas *cp) | |||
2978 | /* use hw hash table for the next series of | 2978 | /* use hw hash table for the next series of |
2979 | * multicast addresses | 2979 | * multicast addresses |
2980 | */ | 2980 | */ |
2981 | crc = ether_crc_le(ETH_ALEN, dmi->dmi_addr); | 2981 | crc = ether_crc_le(ETH_ALEN, ha->addr); |
2982 | crc >>= 24; | 2982 | crc >>= 24; |
2983 | hash_table[crc >> 4] |= 1 << (15 - (crc & 0xf)); | 2983 | hash_table[crc >> 4] |= 1 << (15 - (crc & 0xf)); |
2984 | } | 2984 | } |