diff options
Diffstat (limited to 'drivers/net/tc35815.c')
-rw-r--r-- | drivers/net/tc35815.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c index a2c635ecdab8..876f45afbed4 100644 --- a/drivers/net/tc35815.c +++ b/drivers/net/tc35815.c | |||
@@ -1945,18 +1945,18 @@ tc35815_set_multicast_list(struct net_device *dev) | |||
1945 | /* Disable promiscuous mode, use normal mode. */ | 1945 | /* Disable promiscuous mode, use normal mode. */ |
1946 | tc_writel(CAM_CompEn | CAM_BroadAcc | CAM_GroupAcc, &tr->CAM_Ctl); | 1946 | tc_writel(CAM_CompEn | CAM_BroadAcc | CAM_GroupAcc, &tr->CAM_Ctl); |
1947 | } else if (!netdev_mc_empty(dev)) { | 1947 | } else if (!netdev_mc_empty(dev)) { |
1948 | struct dev_mc_list *cur_addr = dev->mc_list; | 1948 | struct dev_mc_list *cur_addr; |
1949 | int i; | 1949 | int i; |
1950 | int ena_bits = CAM_Ena_Bit(CAM_ENTRY_SOURCE); | 1950 | int ena_bits = CAM_Ena_Bit(CAM_ENTRY_SOURCE); |
1951 | 1951 | ||
1952 | tc_writel(0, &tr->CAM_Ctl); | 1952 | tc_writel(0, &tr->CAM_Ctl); |
1953 | /* Walk the address list, and load the filter */ | 1953 | /* Walk the address list, and load the filter */ |
1954 | for (i = 0; i < netdev_mc_count(dev); i++, cur_addr = cur_addr->next) { | 1954 | i = 0; |
1955 | if (!cur_addr) | 1955 | netdev_for_each_mc_addr(cur_addr, dev) { |
1956 | break; | ||
1957 | /* entry 0,1 is reserved. */ | 1956 | /* entry 0,1 is reserved. */ |
1958 | tc35815_set_cam_entry(dev, i + 2, cur_addr->dmi_addr); | 1957 | tc35815_set_cam_entry(dev, i + 2, cur_addr->dmi_addr); |
1959 | ena_bits |= CAM_Ena_Bit(i + 2); | 1958 | ena_bits |= CAM_Ena_Bit(i + 2); |
1959 | i++; | ||
1960 | } | 1960 | } |
1961 | tc_writel(ena_bits, &tr->CAM_Ena); | 1961 | tc_writel(ena_bits, &tr->CAM_Ena); |
1962 | tc_writel(CAM_CompEn | CAM_BroadAcc, &tr->CAM_Ctl); | 1962 | tc_writel(CAM_CompEn | CAM_BroadAcc, &tr->CAM_Ctl); |