aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/davinci_emac.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-03-02 10:55:08 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-02 10:55:08 -0500
commit6d6b89bd2e316b78d668f761d380837b81fa71ef (patch)
tree7e63c58611fc6181153526abbdafdd846ed1a19d /drivers/net/davinci_emac.c
parent13dda80e48439b446d0bc9bab34b91484bc8f533 (diff)
parent2507c05ff55fbf38326b08ed27eaed233bc75042 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1341 commits) virtio_net: remove forgotten assignment be2net: fix tx completion polling sis190: fix cable detect via link status poll net: fix protocol sk_buff field bridge: Fix build error when IGMP_SNOOPING is not enabled bnx2x: Tx barriers and locks scm: Only support SCM_RIGHTS on unix domain sockets. vhost-net: restart tx poll on sk_sndbuf full vhost: fix get_user_pages_fast error handling vhost: initialize log eventfd context pointer vhost: logging thinko fix wireless: convert to use netdev_for_each_mc_addr ethtool: do not set some flags, if others failed ipoib: returned back addrlen check for mc addresses netlink: Adding inode field to /proc/net/netlink axnet_cs: add new id bridge: Make IGMP snooping depend upon BRIDGE. bridge: Add multicast count/interval sysfs entries bridge: Add hash elasticity/max sysfs entries bridge: Add multicast_snooping sysfs toggle ... Trivial conflicts in Documentation/feature-removal-schedule.txt
Diffstat (limited to 'drivers/net/davinci_emac.c')
-rw-r--r--drivers/net/davinci_emac.c12
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 }