From patchwork Fri Jul 5 06:32:59 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wang Yufen X-Patchwork-Id: 257048 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 5509A2C0096 for ; Fri, 5 Jul 2013 16:33:15 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753673Ab3GEGdL (ORCPT ); Fri, 5 Jul 2013 02:33:11 -0400 Received: from szxga01-in.huawei.com ([119.145.14.64]:58573 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752535Ab3GEGdK (ORCPT ); Fri, 5 Jul 2013 02:33:10 -0400 Received: from 172.24.2.119 (EHLO szxeml211-edg.china.huawei.com) ([172.24.2.119]) by szxrg01-dlp.huawei.com (MOS 4.3.4-GA FastPath queued) with ESMTP id BES56880; Fri, 05 Jul 2013 14:33:08 +0800 (CST) Received: from SZXEML403-HUB.china.huawei.com (10.82.67.35) by szxeml211-edg.china.huawei.com (172.24.2.182) with Microsoft SMTP Server (TLS) id 14.1.323.7; Fri, 5 Jul 2013 14:33:08 +0800 Received: from localhost (10.135.70.116) by szxeml403-hub.china.huawei.com (10.82.67.35) with Microsoft SMTP Server id 14.1.323.7; Fri, 5 Jul 2013 14:32:59 +0800 From: Wangyufen To: , CC: Subject: [PATCH] bonding:fix speed unknown,lacp bonding failed Date: Fri, 5 Jul 2013 14:32:59 +0800 Message-ID: <1373005979-10196-1-git-send-email-wangyufen@huawei.com> X-Mailer: git-send-email 1.8.1.msysgit.1 MIME-Version: 1.0 X-Originating-IP: [10.135.70.116] X-CFilter-Loop: Reflected Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: "Wang Yufen" We bonded nic using LACP mode repeatedly, occasionally LACP bonding failed, because a slave nic port speed was unknown. But when we used ethtool to check the slave NIC status, the nic status was normal,speed was 10000Mb/s. Bonding get the NIC speed from NIC drivers,just when enslave nic and receive NETDEV_CHANGE event.We call bond_update_speed_duplex to update speed and duplex when miimon inspect slave link is OK and slave speed is unknown. Signed-off-by: Wang Yufen --- drivers/net/bonding/bond_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index f975696..d288a98 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -2301,8 +2301,11 @@ static int bond_miimon_inspect(struct bonding *bond) switch (slave->link) { case BOND_LINK_UP: - if (link_state) + if (link_state) { + if (slave->speed == SPEED_UNKNOWN) + bond_update_speed_duplex(slave); continue; + } slave->link = BOND_LINK_FAIL; slave->delay = bond->params.downdelay;