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>
This commit is contained in:

committed by
David S. Miller

parent
a748ee2426
commit
22bedad3ce
@@ -724,7 +724,7 @@ static void
|
||||
dm9000_hash_table(struct net_device *dev)
|
||||
{
|
||||
board_info_t *db = netdev_priv(dev);
|
||||
struct dev_mc_list *mcptr;
|
||||
struct netdev_hw_addr *ha;
|
||||
int i, oft;
|
||||
u32 hash_val;
|
||||
u16 hash_table[4];
|
||||
@@ -752,8 +752,8 @@ dm9000_hash_table(struct net_device *dev)
|
||||
rcr |= RCR_ALL;
|
||||
|
||||
/* the multicast address in Hash Table : 64 bits */
|
||||
netdev_for_each_mc_addr(mcptr, dev) {
|
||||
hash_val = ether_crc_le(6, mcptr->dmi_addr) & 0x3f;
|
||||
netdev_for_each_mc_addr(ha, dev) {
|
||||
hash_val = ether_crc_le(6, ha->addr) & 0x3f;
|
||||
hash_table[hash_val / 16] |= (u16) 1 << (hash_val % 16);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user