diff options
Diffstat (limited to 'drivers/net/davinci_emac.c')
-rw-r--r-- | drivers/net/davinci_emac.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 1605bc225b0c..1ac9440eb3fb 100644 --- a/drivers/net/davinci_emac.c +++ b/drivers/net/davinci_emac.c | |||
@@ -957,19 +957,18 @@ static void emac_dev_mcast_set(struct net_device *ndev) | |||
957 | } else { | 957 | } else { |
958 | mbp_enable = (mbp_enable & ~EMAC_MBP_RXPROMISC); | 958 | mbp_enable = (mbp_enable & ~EMAC_MBP_RXPROMISC); |
959 | if ((ndev->flags & IFF_ALLMULTI) || | 959 | if ((ndev->flags & IFF_ALLMULTI) || |
960 | (ndev->mc_count > EMAC_DEF_MAX_MULTICAST_ADDRESSES)) { | 960 | netdev_mc_count(ndev) > EMAC_DEF_MAX_MULTICAST_ADDRESSES) { |
961 | mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST); | 961 | mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST); |
962 | emac_add_mcast(priv, EMAC_ALL_MULTI_SET, NULL); | 962 | emac_add_mcast(priv, EMAC_ALL_MULTI_SET, NULL); |
963 | } | 963 | } |
964 | if (ndev->mc_count > 0) { | 964 | if (!netdev_mc_empty(ndev)) { |
965 | struct dev_mc_list *mc_ptr; | 965 | struct dev_mc_list *mc_ptr; |
966 | mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST); | 966 | mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST); |
967 | emac_add_mcast(priv, EMAC_ALL_MULTI_CLR, NULL); | 967 | emac_add_mcast(priv, EMAC_ALL_MULTI_CLR, NULL); |
968 | /* program multicast address list into EMAC hardware */ | 968 | /* program multicast address list into EMAC hardware */ |
969 | for (mc_ptr = ndev->mc_list; mc_ptr; | 969 | netdev_for_each_mc_addr(mc_ptr, ndev) { |
970 | mc_ptr = mc_ptr->next) { | ||
971 | emac_add_mcast(priv, EMAC_MULTICAST_ADD, | 970 | emac_add_mcast(priv, EMAC_MULTICAST_ADD, |
972 | (u8 *)mc_ptr->dmi_addr); | 971 | (u8 *) mc_ptr->dmi_addr); |
973 | } | 972 | } |
974 | } else { | 973 | } else { |
975 | mbp_enable = (mbp_enable & ~EMAC_MBP_RXMCAST); | 974 | mbp_enable = (mbp_enable & ~EMAC_MBP_RXMCAST); |
@@ -2683,8 +2682,7 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev) | |||
2683 | priv->emac_base_phys = res->start + pdata->ctrl_reg_offset; | 2682 | priv->emac_base_phys = res->start + pdata->ctrl_reg_offset; |
2684 | size = res->end - res->start + 1; | 2683 | size = res->end - res->start + 1; |
2685 | if (!request_mem_region(res->start, size, ndev->name)) { | 2684 | if (!request_mem_region(res->start, size, ndev->name)) { |
2686 | dev_err(emac_dev, "DaVinci EMAC: failed request_mem_region() \ | 2685 | dev_err(emac_dev, "DaVinci EMAC: failed request_mem_region() for regs\n"); |
2687 | for regs\n"); | ||
2688 | rc = -ENXIO; | 2686 | rc = -ENXIO; |
2689 | goto probe_quit; | 2687 | goto probe_quit; |
2690 | } | 2688 | } |