From patchwork Thu May 22 13:12:04 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Veaceslav Falico X-Patchwork-Id: 351489 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 7CCD9140088 for ; Thu, 22 May 2014 23:16:42 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755016AbaEVNQj (ORCPT ); Thu, 22 May 2014 09:16:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60544 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752318AbaEVNQh (ORCPT ); Thu, 22 May 2014 09:16:37 -0400 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s4MDGZRt006305 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 22 May 2014 09:16:35 -0400 Received: from darkmag.usersys.redhat.com (dhcp-27-102.brq.redhat.com [10.34.27.102]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s4MDGUPF018569; Thu, 22 May 2014 09:16:34 -0400 From: Veaceslav Falico To: netdev@vger.kernel.org Cc: Veaceslav Falico , Jay Vosburgh , Andy Gospodarek Subject: [PATCH net-next 2/2] bonding: remove alb_set_mac_address() Date: Thu, 22 May 2014 15:12:04 +0200 Message-Id: <1400764324-23221-3-git-send-email-vfalico@gmail.com> In-Reply-To: <1400764324-23221-1-git-send-email-vfalico@gmail.com> References: <1400764324-23221-1-git-send-email-vfalico@gmail.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Currently it's called only from bond_alb_set_mac_address(), which is called only for ALB mode, and it does nothing in case the mode is ALB. So, basically, it's a no-op. All the needed functionality (modifying the active slave's mac address, per example) is handled by the bond_alb_set_mac_address() itself. So remove it, as it's not needed. CC: Jay Vosburgh CC: Andy Gospodarek Signed-off-by: Veaceslav Falico --- drivers/net/bonding/bond_alb.c | 61 ------------------------------------------ 1 file changed, 61 deletions(-) diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c index 965518b..1d772b5 100644 --- a/drivers/net/bonding/bond_alb.c +++ b/drivers/net/bonding/bond_alb.c @@ -1256,62 +1256,6 @@ static int alb_handle_addr_collision_on_attach(struct bonding *bond, struct slav return 0; } -/** - * alb_set_mac_address - * @bond: - * @addr: - * - * In TLB mode all slaves are configured to the bond's hw address, but set - * their dev_addr field to different addresses (based on their permanent hw - * addresses). - * - * For each slave, this function sets the interface to the new address and then - * changes its dev_addr field to its previous value. - * - * Unwinding assumes bond's mac address has not yet changed. - */ -static int alb_set_mac_address(struct bonding *bond, void *addr) -{ - struct slave *slave, *rollback_slave; - struct list_head *iter; - struct sockaddr sa; - char tmp_addr[ETH_ALEN]; - int res; - - if (BOND_MODE(bond) == BOND_MODE_ALB) - return 0; - - bond_for_each_slave(bond, slave, iter) { - /* save net_device's current hw address */ - ether_addr_copy(tmp_addr, slave->dev->dev_addr); - - res = dev_set_mac_address(slave->dev, addr); - - /* restore net_device's hw address */ - ether_addr_copy(slave->dev->dev_addr, tmp_addr); - - if (res) - goto unwind; - } - - return 0; - -unwind: - memcpy(sa.sa_data, bond->dev->dev_addr, bond->dev->addr_len); - sa.sa_family = bond->dev->type; - - /* unwind from head to the slave that failed */ - bond_for_each_slave(bond, rollback_slave, iter) { - if (rollback_slave == slave) - break; - ether_addr_copy(tmp_addr, rollback_slave->dev->dev_addr); - dev_set_mac_address(rollback_slave->dev, &sa); - ether_addr_copy(rollback_slave->dev->dev_addr, tmp_addr); - } - - return res; -} - /************************ exported alb funcions ************************/ int bond_alb_initialize(struct bonding *bond) @@ -1777,15 +1721,10 @@ int bond_alb_set_mac_address(struct net_device *bond_dev, void *addr) struct bonding *bond = netdev_priv(bond_dev); struct sockaddr *sa = addr; struct slave *swap_slave; - int res; if (!is_valid_ether_addr(sa->sa_data)) return -EADDRNOTAVAIL; - res = alb_set_mac_address(bond, addr); - if (res) - return res; - memcpy(bond_dev->dev_addr, sa->sa_data, bond_dev->addr_len); /* If there is no curr_active_slave there is nothing else to do.