diff options
author | Jiri Pirko <jpirko@redhat.com> | 2010-02-17 07:27:14 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-17 18:59:48 -0500 |
commit | 0988d26978561d568efed45cc5576d85ea7b609d (patch) | |
tree | d6b658928b8ab50d81db521c1ea9547df9a9aec0 /drivers/net/cxgb3/xgmac.c | |
parent | e4a474f82ddaaef65433b0b4f5169f2f6cd8ddb0 (diff) |
cxgb3: convert to use netdev_for_each_addr
Removed whole t3_rx_mode structure and appropriate helpers cause they are no
longer needed.
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cxgb3/xgmac.c')
-rw-r--r-- | drivers/net/cxgb3/xgmac.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/net/cxgb3/xgmac.c b/drivers/net/cxgb3/xgmac.c index 0c08de5d09fd..c142a2132e9f 100644 --- a/drivers/net/cxgb3/xgmac.c +++ b/drivers/net/cxgb3/xgmac.c | |||
@@ -297,29 +297,30 @@ static int hash_hw_addr(const u8 * addr) | |||
297 | return hash; | 297 | return hash; |
298 | } | 298 | } |
299 | 299 | ||
300 | int t3_mac_set_rx_mode(struct cmac *mac, struct t3_rx_mode *rm) | 300 | int t3_mac_set_rx_mode(struct cmac *mac, struct net_device *dev) |
301 | { | 301 | { |
302 | u32 val, hash_lo, hash_hi; | 302 | u32 val, hash_lo, hash_hi; |
303 | struct adapter *adap = mac->adapter; | 303 | struct adapter *adap = mac->adapter; |
304 | unsigned int oft = mac->offset; | 304 | unsigned int oft = mac->offset; |
305 | 305 | ||
306 | val = t3_read_reg(adap, A_XGM_RX_CFG + oft) & ~F_COPYALLFRAMES; | 306 | val = t3_read_reg(adap, A_XGM_RX_CFG + oft) & ~F_COPYALLFRAMES; |
307 | if (rm->dev->flags & IFF_PROMISC) | 307 | if (dev->flags & IFF_PROMISC) |
308 | val |= F_COPYALLFRAMES; | 308 | val |= F_COPYALLFRAMES; |
309 | t3_write_reg(adap, A_XGM_RX_CFG + oft, val); | 309 | t3_write_reg(adap, A_XGM_RX_CFG + oft, val); |
310 | 310 | ||
311 | if (rm->dev->flags & IFF_ALLMULTI) | 311 | if (dev->flags & IFF_ALLMULTI) |
312 | hash_lo = hash_hi = 0xffffffff; | 312 | hash_lo = hash_hi = 0xffffffff; |
313 | else { | 313 | else { |
314 | u8 *addr; | 314 | struct dev_mc_list *dmi; |
315 | int exact_addr_idx = mac->nucast; | 315 | int exact_addr_idx = mac->nucast; |
316 | 316 | ||
317 | hash_lo = hash_hi = 0; | 317 | hash_lo = hash_hi = 0; |
318 | while ((addr = t3_get_next_mcaddr(rm))) | 318 | netdev_for_each_mc_addr(dmi, dev) |
319 | if (exact_addr_idx < EXACT_ADDR_FILTERS) | 319 | if (exact_addr_idx < EXACT_ADDR_FILTERS) |
320 | set_addr_filter(mac, exact_addr_idx++, addr); | 320 | set_addr_filter(mac, exact_addr_idx++, |
321 | dmi->dmi_addr); | ||
321 | else { | 322 | else { |
322 | int hash = hash_hw_addr(addr); | 323 | int hash = hash_hw_addr(dmi->dmi_addr); |
323 | 324 | ||
324 | if (hash < 32) | 325 | if (hash < 32) |
325 | hash_lo |= (1 << hash); | 326 | hash_lo |= (1 << hash); |