From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: Question about force_primary in bonding driver Date: Wed, 06 Jun 2018 13:57:35 -0400 (EDT) Message-ID: <20180606.135735.1944600623033358099.davem@davemloft.net> References: Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org To: yuxiangning@gmail.com Return-path: Received: from shards.monkeyblade.net ([184.105.139.130]:45324 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933785AbeFFR5h (ORCPT ); Wed, 6 Jun 2018 13:57:37 -0400 In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: From: Xiangning Yu Date: Wed, 6 Jun 2018 03:18:23 -0700 > diff --git a/drivers/net/bonding/bond_options.c > b/drivers/net/bonding/bond_options.c > index 58c705f..b594bae 100644 > --- a/drivers/net/bonding/bond_options.c > +++ b/drivers/net/bonding/bond_options.c > @@ -1142,6 +1142,7 @@ static int bond_option_primary_set(struct bonding *bond, > slave->dev->name); > rcu_assign_pointer(bond->primary_slave, slave); > strcpy(bond->params.primary, slave->dev->name); > + bond->force_primary = true; > bond_select_active_slave(bond); > goto out; > } Based upon your analysis, it does indeed seem logical that we need to re-evaluate bond->force_primary any time the primary slave name string changes. Please submit this formally, thank you.