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/ll_temac_main.c | |
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/ll_temac_main.c')
-rw-r--r-- | drivers/net/ll_temac_main.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/ll_temac_main.c b/drivers/net/ll_temac_main.c index a18e3485476e..30474d6b15c3 100644 --- a/drivers/net/ll_temac_main.c +++ b/drivers/net/ll_temac_main.c | |||
@@ -250,20 +250,20 @@ static void temac_set_multicast_list(struct net_device *ndev) | |||
250 | temac_indirect_out32(lp, XTE_AFM_OFFSET, XTE_AFM_EPPRM_MASK); | 250 | temac_indirect_out32(lp, XTE_AFM_OFFSET, XTE_AFM_EPPRM_MASK); |
251 | dev_info(&ndev->dev, "Promiscuous mode enabled.\n"); | 251 | dev_info(&ndev->dev, "Promiscuous mode enabled.\n"); |
252 | } else if (!netdev_mc_empty(ndev)) { | 252 | } else if (!netdev_mc_empty(ndev)) { |
253 | struct dev_mc_list *mclist; | 253 | struct netdev_hw_addr *ha; |
254 | 254 | ||
255 | i = 0; | 255 | i = 0; |
256 | netdev_for_each_mc_addr(mclist, ndev) { | 256 | netdev_for_each_mc_addr(ha, ndev) { |
257 | if (i >= MULTICAST_CAM_TABLE_NUM) | 257 | if (i >= MULTICAST_CAM_TABLE_NUM) |
258 | break; | 258 | break; |
259 | multi_addr_msw = ((mclist->dmi_addr[3] << 24) | | 259 | multi_addr_msw = ((ha->addr[3] << 24) | |
260 | (mclist->dmi_addr[2] << 16) | | 260 | (ha->addr[2] << 16) | |
261 | (mclist->dmi_addr[1] << 8) | | 261 | (ha->addr[1] << 8) | |
262 | (mclist->dmi_addr[0])); | 262 | (ha->addr[0])); |
263 | temac_indirect_out32(lp, XTE_MAW0_OFFSET, | 263 | temac_indirect_out32(lp, XTE_MAW0_OFFSET, |
264 | multi_addr_msw); | 264 | multi_addr_msw); |
265 | multi_addr_lsw = ((mclist->dmi_addr[5] << 8) | | 265 | multi_addr_lsw = ((ha->addr[5] << 8) | |
266 | (mclist->dmi_addr[4]) | (i << 16)); | 266 | (ha->addr[4]) | (i << 16)); |
267 | temac_indirect_out32(lp, XTE_MAW1_OFFSET, | 267 | temac_indirect_out32(lp, XTE_MAW1_OFFSET, |
268 | multi_addr_lsw); | 268 | multi_addr_lsw); |
269 | i++; | 269 | i++; |