aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/s2io.c
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/s2io.c
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/s2io.c')
-rw-r--r--drivers/net/s2io.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 2eb7f8a0d926..ad5a6a873b29 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -4964,7 +4964,7 @@ static struct net_device_stats *s2io_get_stats(struct net_device *dev)
4964static void s2io_set_multicast(struct net_device *dev) 4964static void s2io_set_multicast(struct net_device *dev)
4965{ 4965{
4966 int i, j, prev_cnt; 4966 int i, j, prev_cnt;
4967 struct dev_mc_list *mclist; 4967 struct netdev_hw_addr *ha;
4968 struct s2io_nic *sp = netdev_priv(dev); 4968 struct s2io_nic *sp = netdev_priv(dev);
4969 struct XENA_dev_config __iomem *bar0 = sp->bar0; 4969 struct XENA_dev_config __iomem *bar0 = sp->bar0;
4970 u64 val64 = 0, multi_mac = 0x010203040506ULL, mask = 4970 u64 val64 = 0, multi_mac = 0x010203040506ULL, mask =
@@ -5093,12 +5093,12 @@ static void s2io_set_multicast(struct net_device *dev)
5093 5093
5094 /* Create the new Rx filter list and update the same in H/W. */ 5094 /* Create the new Rx filter list and update the same in H/W. */
5095 i = 0; 5095 i = 0;
5096 netdev_for_each_mc_addr(mclist, dev) { 5096 netdev_for_each_mc_addr(ha, dev) {
5097 memcpy(sp->usr_addrs[i].addr, mclist->dmi_addr, 5097 memcpy(sp->usr_addrs[i].addr, ha->addr,
5098 ETH_ALEN); 5098 ETH_ALEN);
5099 mac_addr = 0; 5099 mac_addr = 0;
5100 for (j = 0; j < ETH_ALEN; j++) { 5100 for (j = 0; j < ETH_ALEN; j++) {
5101 mac_addr |= mclist->dmi_addr[j]; 5101 mac_addr |= ha->addr[j];
5102 mac_addr <<= 8; 5102 mac_addr <<= 8;
5103 } 5103 }
5104 mac_addr >>= 8; 5104 mac_addr >>= 8;