From patchwork Thu May 17 02:09:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tonghao Zhang X-Patchwork-Id: 915040 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="t2679v1M"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40mZXJ5X2Lz9s1d for ; Thu, 17 May 2018 12:10:40 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751530AbeEQCJh (ORCPT ); Wed, 16 May 2018 22:09:37 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:36909 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751468AbeEQCJg (ORCPT ); Wed, 16 May 2018 22:09:36 -0400 Received: by mail-pf0-f193.google.com with SMTP id e9-v6so1284577pfi.4 for ; Wed, 16 May 2018 19:09:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=qRmJn5w2Jitw4K8JnB+rQGRN7N5tj25gJbasPDGMuaE=; b=t2679v1MFprNRPb9Rf/xgsIx8rQ7wNfdLI7oewlVcbKSgMJ3jaGzWJi5q30EOBempQ ssi/knkLXt4FLSDqKxVDPyVU903s8h/pZ8oiTRH+UX4UImg49M4gjoJF3d5flL88CGqn XE2rVI/lZz2nOeQ9LM0mtaBpy98PEhmV869z+5g5B/WgnpYU10zyzrVXbcmBZmMXxxew +L+BFY5qoNZxChyZm4DHNuRVNrZE5blgrxHDHZfLAqAzcitS4ED/vIZHpNASFbpmzsXu u+RAdElwguuWSCjbcCeLMJYTvub3lSx8bK4OSpTO8sFARc2ORiqb3ttsonx3LOUCIHiD 4qzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=qRmJn5w2Jitw4K8JnB+rQGRN7N5tj25gJbasPDGMuaE=; b=N+39yWyeaSrjNeFStP2KBjmnFwXxmFBgdzGDUg8B3Kv3kd5v2iq6gm4dqAcIxZJsdh gqfnECw0Ahmx3sQ4HCZliC4k9vX/VnrtXQpJ1rhB060duuS8CqLB7E3J2or5ai1Wt0KX evbKZN8m87x+UF/ttxzwSA8fu9qyCuvd25bshha2SJT3s6DGP+ZFHErYGO5iiIQDSv2A YGYzKAulCk5uJQzXXDirZ38lIcTg6SPkqe869EigxYhf41ZGxX69sLqjZIPjcKy5rN2P 0rkRNkgn73ugy4j2yAE0z8LmZVwF8adSe4vjmJAvUiTTcRr1RdR+LmwAL6sqKKkFKns/ hemA== X-Gm-Message-State: ALKqPwcZqqm0HmRQUqfF5/XIT4NC3/fxh4hqsckaOrbMrI9lQGEX3Pt+ EFwxCn9m7o+yMDFAesUanmQD8Mll X-Google-Smtp-Source: AB8JxZrIC4mL0BzmKIbTfpu/Qrm9GhatAIR3owEF4v+/CVm/MIVvUH5jGHcfe+TPf3/lnYehhh83Dw== X-Received: by 2002:a62:78c:: with SMTP id 12-v6mr3340737pfh.178.1526522975682; Wed, 16 May 2018 19:09:35 -0700 (PDT) Received: from local.opencloud.tech.localdomain ([52.229.160.192]) by smtp.gmail.com with ESMTPSA id q17-v6sm4246759pgt.70.2018.05.16.19.09.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 May 2018 19:09:35 -0700 (PDT) From: Tonghao Zhang To: netdev@vger.kernel.org Cc: Tonghao Zhang Subject: [PATCH] bonding: introduce link change helper Date: Wed, 16 May 2018 19:09:23 -0700 Message-Id: <1526522963-4317-1-git-send-email-xiangxia.m.yue@gmail.com> X-Mailer: git-send-email 1.8.3.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Introduce an new common helper to avoid redundancy. Signed-off-by: Tonghao Zhang --- drivers/net/bonding/bond_main.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 718e491..3063a9c 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -2135,6 +2135,24 @@ static int bond_miimon_inspect(struct bonding *bond) return commit; } +static void bond_miimon_link_change(struct bonding *bond, + struct slave *slave, + char link) +{ + switch (BOND_MODE(bond)) { + case BOND_MODE_8023AD: + bond_3ad_handle_link_change(slave, link); + break; + case BOND_MODE_TLB: + case BOND_MODE_ALB: + bond_alb_handle_link_change(bond, slave, link); + break; + case BOND_MODE_XOR: + bond_update_slave_arr(bond, NULL); + break; + } +} + static void bond_miimon_commit(struct bonding *bond) { struct list_head *iter; @@ -2176,16 +2194,7 @@ static void bond_miimon_commit(struct bonding *bond) slave->speed == SPEED_UNKNOWN ? 0 : slave->speed, slave->duplex ? "full" : "half"); - /* notify ad that the link status has changed */ - if (BOND_MODE(bond) == BOND_MODE_8023AD) - bond_3ad_handle_link_change(slave, BOND_LINK_UP); - - if (bond_is_lb(bond)) - bond_alb_handle_link_change(bond, slave, - BOND_LINK_UP); - - if (BOND_MODE(bond) == BOND_MODE_XOR) - bond_update_slave_arr(bond, NULL); + bond_miimon_link_change(bond, slave, BOND_LINK_UP); if (!bond->curr_active_slave || slave == primary) goto do_failover; @@ -2207,16 +2216,7 @@ static void bond_miimon_commit(struct bonding *bond) netdev_info(bond->dev, "link status definitely down for interface %s, disabling it\n", slave->dev->name); - if (BOND_MODE(bond) == BOND_MODE_8023AD) - bond_3ad_handle_link_change(slave, - BOND_LINK_DOWN); - - if (bond_is_lb(bond)) - bond_alb_handle_link_change(bond, slave, - BOND_LINK_DOWN); - - if (BOND_MODE(bond) == BOND_MODE_XOR) - bond_update_slave_arr(bond, NULL); + bond_miimon_link_change(bond, slave, BOND_LINK_DOWN); if (slave == rcu_access_pointer(bond->curr_active_slave)) goto do_failover;