diff options
Diffstat (limited to 'drivers/net/iseries_veth.c')
-rw-r--r-- | drivers/net/iseries_veth.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c index 16c91910d6c1..966de5d69521 100644 --- a/drivers/net/iseries_veth.c +++ b/drivers/net/iseries_veth.c | |||
@@ -958,18 +958,17 @@ static void veth_set_multicast_list(struct net_device *dev) | |||
958 | write_lock_irqsave(&port->mcast_gate, flags); | 958 | write_lock_irqsave(&port->mcast_gate, flags); |
959 | 959 | ||
960 | if ((dev->flags & IFF_PROMISC) || (dev->flags & IFF_ALLMULTI) || | 960 | if ((dev->flags & IFF_PROMISC) || (dev->flags & IFF_ALLMULTI) || |
961 | (dev->mc_count > VETH_MAX_MCAST)) { | 961 | (netdev_mc_count(dev) > VETH_MAX_MCAST)) { |
962 | port->promiscuous = 1; | 962 | port->promiscuous = 1; |
963 | } else { | 963 | } else { |
964 | struct dev_mc_list *dmi = dev->mc_list; | 964 | struct dev_mc_list *dmi; |
965 | int i; | ||
966 | 965 | ||
967 | port->promiscuous = 0; | 966 | port->promiscuous = 0; |
968 | 967 | ||
969 | /* Update table */ | 968 | /* Update table */ |
970 | port->num_mcast = 0; | 969 | port->num_mcast = 0; |
971 | 970 | ||
972 | for (i = 0; i < dev->mc_count; i++) { | 971 | netdev_for_each_mc_addr(dmi, dev) { |
973 | u8 *addr = dmi->dmi_addr; | 972 | u8 *addr = dmi->dmi_addr; |
974 | u64 xaddr = 0; | 973 | u64 xaddr = 0; |
975 | 974 | ||
@@ -978,7 +977,6 @@ static void veth_set_multicast_list(struct net_device *dev) | |||
978 | port->mcast_addr[port->num_mcast] = xaddr; | 977 | port->mcast_addr[port->num_mcast] = xaddr; |
979 | port->num_mcast++; | 978 | port->num_mcast++; |
980 | } | 979 | } |
981 | dmi = dmi->next; | ||
982 | } | 980 | } |
983 | } | 981 | } |
984 | 982 | ||