From patchwork Fri Feb 1 18:17:25 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 217561 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 BB19A2C0087 for ; Sat, 2 Feb 2013 05:17:42 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755858Ab3BASRk (ORCPT ); Fri, 1 Feb 2013 13:17:40 -0500 Received: from mail-ee0-f46.google.com ([74.125.83.46]:33911 "EHLO mail-ee0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755390Ab3BASRi (ORCPT ); Fri, 1 Feb 2013 13:17:38 -0500 Received: by mail-ee0-f46.google.com with SMTP id e49so2282815eek.33 for ; Fri, 01 Feb 2013 10:17:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:x-gm-message-state; bh=bPRO1L23s9JjoU2aw7h5aK/KLVvC+0rmAfZxCmRluTE=; b=bfFpfXWgU/OXuYifm99ntrFom0GgbOkTXawV19DnxmQQAvVEw3yigUPW3RmlTFXlxY nXIRzB4BBgVJls8o427SuueDb1HhpYsmLLa3sHcYZlR3JcrbGLEfVmoiu9Fps3HRk57w OyHzICa0y/R1OIqPFbkdZF0gD46FFIGx8zEhky0DpNz7XInaR5dqnFWFvMGdJA1uEqas mdj23yC3hmb+CDGFAXuczzQfbMUOo+fuPcWPVgzmoDBzeq5aaH6JUuHm8K8ILVVs8sMT JyLC35mdT3mTglynDMguA0quQ5xNLWwSJoRaSLL1XE0FCtBvJLpWRT4wN+fMC0TrUbRm s5PA== X-Received: by 10.14.194.4 with SMTP id l4mr41923124een.42.1359742657264; Fri, 01 Feb 2013 10:17:37 -0800 (PST) Received: from localhost (sun-0.pirko.cz. [84.16.102.25]) by mx.google.com with ESMTPS id 44sm13719272eek.5.2013.02.01.10.17.35 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 01 Feb 2013 10:17:36 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, fbl@redhat.com Subject: [patch net-next v2 2/3] team: move netlink event notifiers after team_port_leave() Date: Fri, 1 Feb 2013 19:17:25 +0100 Message-Id: <1359742646-1485-3-git-send-email-jiri@resnulli.us> X-Mailer: git-send-email 1.8.1 In-Reply-To: <1359742646-1485-1-git-send-email-jiri@resnulli.us> References: <1359742646-1485-1-git-send-email-jiri@resnulli.us> X-Gm-Message-State: ALoCoQkZJJa9ZqgPYnjnRrMOtoUNdls3YsWdRSf/3KbUIOeXjOWEJKLJRRYrOnZbqDKj29Ug3gsU Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In team_port_del(), there is need to be do all the cleanup related things first and netlink event notifiers should be called after that. This fixes two problems: team carrier is now correctly set (port is removed from list first) mode can set option as changed in .port_leave op Signed-off-by: Jiri Pirko --- drivers/net/team/team.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index 738f744..694ccf6 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c @@ -1131,10 +1131,6 @@ static int team_port_del(struct team *team, struct net_device *port_dev) return -ENOENT; } - __team_option_inst_mark_removed_port(team, port); - __team_options_change_check(team); - __team_option_inst_del_port(team, port); - __team_port_change_port_removed(port); team_port_disable(team, port); list_del_rcu(&port->list); netdev_rx_handler_unregister(port_dev); @@ -1143,6 +1139,12 @@ static int team_port_del(struct team *team, struct net_device *port_dev) vlan_vids_del_by_dev(port_dev, dev); dev_close(port_dev); team_port_leave(team, port); + + __team_option_inst_mark_removed_port(team, port); + __team_options_change_check(team); + __team_option_inst_del_port(team, port); + __team_port_change_port_removed(port); + team_port_set_orig_dev_addr(port); dev_set_mtu(port_dev, port->orig.mtu); synchronize_rcu();