aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
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/media
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/media')
-rw-r--r--drivers/media/dvb/dvb-core/dvb_net.c10
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
1112static int dvb_set_mc_filter (struct net_device *dev, struct dev_mc_list *mc) 1112static 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);