aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/pcmcia
diff options
context:
space:
mode:
authorJiri Pirko <jpirko@redhat.com>2010-04-01 17:22:57 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-03 17:22:15 -0400
commit22bedad3ce112d5ca1eaf043d4990fa2ed698c87 (patch)
treeb6fba5688d48b1396f01d13ee53610dea7749c15 /drivers/net/pcmcia
parenta748ee2426817a95b1f03012d8f339c45c722ae1 (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.c6
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c6
-rw-r--r--drivers/net/pcmcia/nmclan_cs.c6
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c8
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c6
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
1624static inline void make_mc_bits(u8 *bits, struct net_device *dev) 1624static 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);