Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-2.6-block.git] / drivers / net / bonding / bond_main.c
index b7f1a991903363cd6b3888722cb5742a70f0c765..a6527d5b32693ecc72569cc54c8069712c34925d 100644 (file)
@@ -620,8 +620,8 @@ static void bond_hw_addr_swap(struct bonding *bond, struct slave *new_active,
 static void bond_set_dev_addr(struct net_device *bond_dev,
                              struct net_device *slave_dev)
 {
-       netdev_dbg(bond_dev, "bond_dev=%p slave_dev=%p slave_dev->addr_len=%d\n",
-                  bond_dev, slave_dev, slave_dev->addr_len);
+       netdev_dbg(bond_dev, "bond_dev=%p slave_dev=%p slave_dev->name=%s slave_dev->addr_len=%d\n",
+                  bond_dev, slave_dev, slave_dev->name, slave_dev->addr_len);
        memcpy(bond_dev->dev_addr, slave_dev->dev_addr, slave_dev->addr_len);
        bond_dev->addr_assign_type = NET_ADDR_STOLEN;
        call_netdevice_notifiers(NETDEV_CHANGEADDR, bond_dev);
@@ -930,11 +930,10 @@ void bond_select_active_slave(struct bonding *bond)
                if (!rv)
                        return;
 
-               if (netif_carrier_ok(bond->dev)) {
+               if (netif_carrier_ok(bond->dev))
                        netdev_info(bond->dev, "first active interface up!\n");
-               } else {
+               else
                        netdev_info(bond->dev, "now running without any active interface!\n");
-               }
        }
 }
 
@@ -1180,9 +1179,8 @@ static rx_handler_result_t bond_handle_frame(struct sk_buff **pskb)
                }
        }
 
-       if (bond_should_deliver_exact_match(skb, slave, bond)) {
+       if (bond_should_deliver_exact_match(skb, slave, bond))
                return RX_HANDLER_EXACT;
-       }
 
        skb->dev = bond->dev;
 
@@ -1243,7 +1241,7 @@ static struct slave *bond_alloc_slave(struct bonding *bond)
 {
        struct slave *slave = NULL;
 
-       slave = kzalloc(sizeof(struct slave), GFP_KERNEL);
+       slave = kzalloc(sizeof(*slave), GFP_KERNEL);
        if (!slave)
                return NULL;
 
@@ -1383,8 +1381,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
        if (slave_dev->flags & IFF_UP) {
                netdev_err(bond_dev, "%s is up - this may be due to an out of date ifenslave\n",
                           slave_dev->name);
-               res = -EPERM;
-               goto err_undo_flags;
+               return -EPERM;
        }
 
        /* set bonding device ether type by slave - bonding netdevices are
@@ -1404,8 +1401,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
                        res = notifier_to_errno(res);
                        if (res) {
                                netdev_err(bond_dev, "refused to change device type\n");
-                               res = -EBUSY;
-                               goto err_undo_flags;
+                               return -EBUSY;
                        }
 
                        /* Flush unicast and multicast addresses */
@@ -1425,8 +1421,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
        } else if (bond_dev->type != slave_dev->type) {
                netdev_err(bond_dev, "%s ether type (%d) is different from other slaves (%d), can not enslave it\n",
                           slave_dev->name, slave_dev->type, bond_dev->type);
-               res = -EINVAL;
-               goto err_undo_flags;
+               return -EINVAL;
        }
 
        if (slave_ops->ndo_set_mac_address == NULL) {
@@ -3327,6 +3322,7 @@ static struct rtnl_link_stats64 *bond_get_stats(struct net_device *bond_dev,
                stats->rx_bytes += sstats->rx_bytes - pstats->rx_bytes;
                stats->rx_errors += sstats->rx_errors - pstats->rx_errors;
                stats->rx_dropped += sstats->rx_dropped - pstats->rx_dropped;
+               stats->rx_nohandler += sstats->rx_nohandler - pstats->rx_nohandler;
 
                stats->tx_packets += sstats->tx_packets - pstats->tx_packets;;
                stats->tx_bytes += sstats->tx_bytes - pstats->tx_bytes;