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/media | |
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/media')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_net.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c b/drivers/media/dvb/dvb-core/dvb_net.c index dba1c84058b7..cccea412088b 100644 --- a/drivers/media/dvb/dvb-core/dvb_net.c +++ b/drivers/media/dvb/dvb-core/dvb_net.c | |||
@@ -1109,14 +1109,14 @@ static int dvb_net_feed_stop(struct net_device *dev) | |||
1109 | } | 1109 | } |
1110 | 1110 | ||
1111 | 1111 | ||
1112 | static int dvb_set_mc_filter (struct net_device *dev, struct dev_mc_list *mc) | 1112 | static int dvb_set_mc_filter(struct net_device *dev, unsigned char *addr) |
1113 | { | 1113 | { |
1114 | struct dvb_net_priv *priv = netdev_priv(dev); | 1114 | struct dvb_net_priv *priv = netdev_priv(dev); |
1115 | 1115 | ||
1116 | if (priv->multi_num == DVB_NET_MULTICAST_MAX) | 1116 | if (priv->multi_num == DVB_NET_MULTICAST_MAX) |
1117 | return -ENOMEM; | 1117 | return -ENOMEM; |
1118 | 1118 | ||
1119 | memcpy(priv->multi_macs[priv->multi_num], mc->dmi_addr, 6); | 1119 | memcpy(priv->multi_macs[priv->multi_num], addr, ETH_ALEN); |
1120 | 1120 | ||
1121 | priv->multi_num++; | 1121 | priv->multi_num++; |
1122 | return 0; | 1122 | return 0; |
@@ -1140,7 +1140,7 @@ static void wq_set_multicast_list (struct work_struct *work) | |||
1140 | dprintk("%s: allmulti mode\n", dev->name); | 1140 | dprintk("%s: allmulti mode\n", dev->name); |
1141 | priv->rx_mode = RX_MODE_ALL_MULTI; | 1141 | priv->rx_mode = RX_MODE_ALL_MULTI; |
1142 | } else if (!netdev_mc_empty(dev)) { | 1142 | } else if (!netdev_mc_empty(dev)) { |
1143 | struct dev_mc_list *mc; | 1143 | struct netdev_hw_addr *ha; |
1144 | 1144 | ||
1145 | dprintk("%s: set_mc_list, %d entries\n", | 1145 | dprintk("%s: set_mc_list, %d entries\n", |
1146 | dev->name, netdev_mc_count(dev)); | 1146 | dev->name, netdev_mc_count(dev)); |
@@ -1148,8 +1148,8 @@ static void wq_set_multicast_list (struct work_struct *work) | |||
1148 | priv->rx_mode = RX_MODE_MULTI; | 1148 | priv->rx_mode = RX_MODE_MULTI; |
1149 | priv->multi_num = 0; | 1149 | priv->multi_num = 0; |
1150 | 1150 | ||
1151 | netdev_for_each_mc_addr(mc, dev) | 1151 | netdev_for_each_mc_addr(ha, dev) |
1152 | dvb_set_mc_filter(dev, mc); | 1152 | dvb_set_mc_filter(dev, ha->addr); |
1153 | } | 1153 | } |
1154 | 1154 | ||
1155 | netif_addr_unlock_bh(dev); | 1155 | netif_addr_unlock_bh(dev); |