bonding: fix potential deadlock in bond_uninit()
[safe/jmp/linux-2.6] / drivers / net / smc911x.c
index 3c5a4f5..9871a2b 100644 (file)
@@ -1323,7 +1323,7 @@ static void smc911x_set_multicast_list(struct net_device *dev)
         * I don't need to zero the multicast table, because the flag is
         * checked before the table is
         */
-       else if (dev->flags & IFF_ALLMULTI || dev->mc_count > 16) {
+       else if (dev->flags & IFF_ALLMULTI || netdev_mc_count(dev) > 16) {
                DBG(SMC_DEBUG_MISC, "%s: RCR_ALMUL\n", dev->name);
                mcr |= MAC_CR_MCPAS_;
        }
@@ -1340,8 +1340,7 @@ static void smc911x_set_multicast_list(struct net_device *dev)
         * the number of the 32 bit register, while the low 5 bits are the bit
         * within that register.
         */
-       else if (dev->mc_count)  {
-               int i;
+       else if (!netdev_mc_empty(dev)) {
                struct dev_mc_list *cur_addr;
 
                /* Set the Hash perfec mode */
@@ -1350,8 +1349,7 @@ static void smc911x_set_multicast_list(struct net_device *dev)
                /* start with a table of all zeros: reject all */
                memset(multicast_table, 0, sizeof(multicast_table));
 
-               cur_addr = dev->mc_list;
-               for (i = 0; i < dev->mc_count; i++, cur_addr = cur_addr->next) {
+               netdev_for_each_mc_addr(cur_addr, dev) {
                        u32 position;
 
                        /* do we have a pointer here? */