From patchwork Thu Sep 30 16:19:10 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Oledzki X-Patchwork-Id: 66182 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 69D46B6F07 for ; Fri, 1 Oct 2010 02:19:45 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756696Ab0I3QTX (ORCPT ); Thu, 30 Sep 2010 12:19:23 -0400 Received: from bizon.gios.gov.pl ([195.187.34.71]:52191 "EHLO bizon.gios.gov.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754737Ab0I3QTW (ORCPT ); Thu, 30 Sep 2010 12:19:22 -0400 X-Virus-Scanned: amavisd-new at gios.gov.pl Received: from bizon.gios.gov.pl (ole@localhost6 [IPv6:::1]) by bizon.gios.gov.pl (8.14.3/8.14.3) with ESMTP id o8UGJAMD014344 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 30 Sep 2010 18:19:12 +0200 Received: (from ole@localhost) by bizon.gios.gov.pl (8.14.3/8.14.3/Submit) id o8UGJAuI014342; Thu, 30 Sep 2010 18:19:10 +0200 X-Authentication-Warning: bizon.gios.gov.pl: ole set sender to Krzysztof Piotr Oledzki using -r Date: Thu, 30 Sep 2010 18:19:10 +0200 From: Krzysztof Piotr Oledzki To: fubar@us.ibm.com, bonding-devel@lists.sourceforge.net, netdev@vger.kernel.org Subject: [net-next-2.6 PATCH 3/3] bonding: reread information about speed and duplex when interface goes up Message-ID: <4ca4b87e.NzbQ35P2qRrA2iuz%ole@ans.pl> User-Agent: nail 11.25 7/29/05 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From 43285224a785e90c7d4cff2be0766ca8df6ddfb9 Mon Sep 17 00:00:00 2001 From: Krzysztof Piotr Oledzki Date: Thu, 30 Sep 2010 17:09:02 +0200 Subject: bonding: reread information about speed and duplex when interface goes up When an interface was enslaved when it was down, bonding thinks it has speed -1 even after it goes up. This leads into selecting a wrong active interface in active/backup mode on mixed 10G/1G or 1G/100M environment. before: bonding: bond0: link status definitely up for interface eth5, 100 Mbps full duplex. bonding: bond0: link status definitely up for interface eth0, 100 Mbps full duplex. after: bonding: bond0: link status definitely up for interface eth5, 10000 Mbps full duplex. bonding: bond0: link status definitely up for interface eth0, 1000 Mbps full duplex. Signed-off-by: Krzysztof Piotr Oledzki --- drivers/net/bonding/bond_main.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 721abc4..e409c14 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -2368,6 +2368,8 @@ static void bond_miimon_commit(struct bonding *bond) slave->state = BOND_STATE_BACKUP; } + bond_update_speed_duplex(slave); + pr_info("%s: link status definitely up for interface %s, %d Mbps %s duplex.\n", bond->dev->name, slave->dev->name, slave->speed, slave->duplex ? "full" : "half");