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/pcmcia | |
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/pcmcia')
-rw-r--r-- | drivers/net/pcmcia/axnet_cs.c | 6 | ||||
-rw-r--r-- | drivers/net/pcmcia/fmvj18x_cs.c | 6 | ||||
-rw-r--r-- | drivers/net/pcmcia/nmclan_cs.c | 6 | ||||
-rw-r--r-- | drivers/net/pcmcia/smc91c92_cs.c | 8 | ||||
-rw-r--r-- | drivers/net/pcmcia/xirc2ps_cs.c | 6 |
5 files changed, 16 insertions, 16 deletions
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c index 09291e60d309..333cb3344d54 100644 --- a/drivers/net/pcmcia/axnet_cs.c +++ b/drivers/net/pcmcia/axnet_cs.c | |||
@@ -1623,11 +1623,11 @@ static struct net_device_stats *get_stats(struct net_device *dev) | |||
1623 | 1623 | ||
1624 | static inline void make_mc_bits(u8 *bits, struct net_device *dev) | 1624 | static inline void make_mc_bits(u8 *bits, struct net_device *dev) |
1625 | { | 1625 | { |
1626 | struct dev_mc_list *dmi; | 1626 | struct netdev_hw_addr *ha; |
1627 | u32 crc; | 1627 | u32 crc; |
1628 | 1628 | ||
1629 | netdev_for_each_mc_addr(dmi, dev) { | 1629 | netdev_for_each_mc_addr(ha, dev) { |
1630 | crc = ether_crc(ETH_ALEN, dmi->dmi_addr); | 1630 | crc = ether_crc(ETH_ALEN, ha->addr); |
1631 | /* | 1631 | /* |
1632 | * The 8390 uses the 6 most significant bits of the | 1632 | * The 8390 uses the 6 most significant bits of the |
1633 | * CRC to index the multicast table. | 1633 | * CRC to index the multicast table. |
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c index b9dc80b9d04a..6734f7d6da98 100644 --- a/drivers/net/pcmcia/fmvj18x_cs.c +++ b/drivers/net/pcmcia/fmvj18x_cs.c | |||
@@ -1196,11 +1196,11 @@ static void set_rx_mode(struct net_device *dev) | |||
1196 | memset(mc_filter, 0x00, sizeof(mc_filter)); | 1196 | memset(mc_filter, 0x00, sizeof(mc_filter)); |
1197 | outb(1, ioaddr + RX_MODE); /* Ignore almost all multicasts. */ | 1197 | outb(1, ioaddr + RX_MODE); /* Ignore almost all multicasts. */ |
1198 | } else { | 1198 | } else { |
1199 | struct dev_mc_list *mclist; | 1199 | struct netdev_hw_addr *ha; |
1200 | 1200 | ||
1201 | memset(mc_filter, 0, sizeof(mc_filter)); | 1201 | memset(mc_filter, 0, sizeof(mc_filter)); |
1202 | netdev_for_each_mc_addr(mclist, dev) { | 1202 | netdev_for_each_mc_addr(ha, dev) { |
1203 | unsigned int bit = ether_crc_le(ETH_ALEN, mclist->dmi_addr) >> 26; | 1203 | unsigned int bit = ether_crc_le(ETH_ALEN, ha->addr) >> 26; |
1204 | mc_filter[bit >> 3] |= (1 << (bit & 7)); | 1204 | mc_filter[bit >> 3] |= (1 << (bit & 7)); |
1205 | } | 1205 | } |
1206 | outb(2, ioaddr + RX_MODE); /* Use normal mode. */ | 1206 | outb(2, ioaddr + RX_MODE); /* Use normal mode. */ |
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c index c717b143f11a..c516c1996354 100644 --- a/drivers/net/pcmcia/nmclan_cs.c +++ b/drivers/net/pcmcia/nmclan_cs.c | |||
@@ -1475,7 +1475,7 @@ static void set_multicast_list(struct net_device *dev) | |||
1475 | { | 1475 | { |
1476 | mace_private *lp = netdev_priv(dev); | 1476 | mace_private *lp = netdev_priv(dev); |
1477 | int adr[ETHER_ADDR_LEN] = {0}; /* Ethernet address */ | 1477 | int adr[ETHER_ADDR_LEN] = {0}; /* Ethernet address */ |
1478 | struct dev_mc_list *dmi; | 1478 | struct netdev_hw_addr *ha; |
1479 | 1479 | ||
1480 | #ifdef PCMCIA_DEBUG | 1480 | #ifdef PCMCIA_DEBUG |
1481 | { | 1481 | { |
@@ -1495,8 +1495,8 @@ static void set_multicast_list(struct net_device *dev) | |||
1495 | if (num_addrs > 0) { | 1495 | if (num_addrs > 0) { |
1496 | /* Calculate multicast logical address filter */ | 1496 | /* Calculate multicast logical address filter */ |
1497 | memset(lp->multicast_ladrf, 0, MACE_LADRF_LEN); | 1497 | memset(lp->multicast_ladrf, 0, MACE_LADRF_LEN); |
1498 | netdev_for_each_mc_addr(dmi, dev) { | 1498 | netdev_for_each_mc_addr(ha, dev) { |
1499 | memcpy(adr, dmi->dmi_addr, ETHER_ADDR_LEN); | 1499 | memcpy(adr, ha->addr, ETHER_ADDR_LEN); |
1500 | BuildLAF(lp->multicast_ladrf, adr); | 1500 | BuildLAF(lp->multicast_ladrf, adr); |
1501 | } | 1501 | } |
1502 | } | 1502 | } |
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c index 5adc662c4bfb..f45c626003a4 100644 --- a/drivers/net/pcmcia/smc91c92_cs.c +++ b/drivers/net/pcmcia/smc91c92_cs.c | |||
@@ -1616,12 +1616,12 @@ static void set_rx_mode(struct net_device *dev) | |||
1616 | rx_cfg_setting = RxStripCRC | RxEnable | RxAllMulti; | 1616 | rx_cfg_setting = RxStripCRC | RxEnable | RxAllMulti; |
1617 | else { | 1617 | else { |
1618 | if (!netdev_mc_empty(dev)) { | 1618 | if (!netdev_mc_empty(dev)) { |
1619 | struct dev_mc_list *mc_addr; | 1619 | struct netdev_hw_addr *ha; |
1620 | 1620 | ||
1621 | netdev_for_each_mc_addr(mc_addr, dev) { | 1621 | netdev_for_each_mc_addr(ha, dev) { |
1622 | u_int position = ether_crc(6, mc_addr->dmi_addr); | 1622 | u_int position = ether_crc(6, ha->addr); |
1623 | #ifndef final_version /* Verify multicast address. */ | 1623 | #ifndef final_version /* Verify multicast address. */ |
1624 | if ((mc_addr->dmi_addr[0] & 1) == 0) | 1624 | if ((ha->addr[0] & 1) == 0) |
1625 | continue; | 1625 | continue; |
1626 | #endif | 1626 | #endif |
1627 | multicast_table[position >> 29] |= 1 << ((position >> 26) & 7); | 1627 | multicast_table[position >> 29] |= 1 << ((position >> 26) & 7); |
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c index 4d1802e457be..656be931207a 100644 --- a/drivers/net/pcmcia/xirc2ps_cs.c +++ b/drivers/net/pcmcia/xirc2ps_cs.c | |||
@@ -1398,7 +1398,7 @@ static void set_addresses(struct net_device *dev) | |||
1398 | { | 1398 | { |
1399 | unsigned int ioaddr = dev->base_addr; | 1399 | unsigned int ioaddr = dev->base_addr; |
1400 | local_info_t *lp = netdev_priv(dev); | 1400 | local_info_t *lp = netdev_priv(dev); |
1401 | struct dev_mc_list *dmi; | 1401 | struct netdev_hw_addr *ha; |
1402 | struct set_address_info sa_info; | 1402 | struct set_address_info sa_info; |
1403 | int i; | 1403 | int i; |
1404 | 1404 | ||
@@ -1413,10 +1413,10 @@ static void set_addresses(struct net_device *dev) | |||
1413 | 1413 | ||
1414 | set_address(&sa_info, dev->dev_addr); | 1414 | set_address(&sa_info, dev->dev_addr); |
1415 | i = 0; | 1415 | i = 0; |
1416 | netdev_for_each_mc_addr(dmi, dev) { | 1416 | netdev_for_each_mc_addr(ha, dev) { |
1417 | if (i++ == 9) | 1417 | if (i++ == 9) |
1418 | break; | 1418 | break; |
1419 | set_address(&sa_info, dmi->dmi_addr); | 1419 | set_address(&sa_info, ha->addr); |
1420 | } | 1420 | } |
1421 | while (i++ < 9) | 1421 | while (i++ < 9) |
1422 | set_address(&sa_info, dev->dev_addr); | 1422 | set_address(&sa_info, dev->dev_addr); |