On Wed, Oct 02, 2019 at 06:43:09PM -0700, paulmck@xxxxxxxxxx wrote: > From: "Paul E. McKenney" <paulmck@xxxxxxxxxx> > > This commit replaces the use of rcu_swap_protected() with the more > intuitively appealing rcu_replace() as a step towards removing > rcu_swap_protected(). > > Link: https://lore.kernel.org/lkml/CAHk-=wiAsJLw1egFEE=Z7-GGtM6wcvtyytXZA1+BHqta4gg6Hw@xxxxxxxxxxxxxx/ > Reported-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx> > Cc: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> > Cc: Jozsef Kadlecsik <kadlec@xxxxxxxxxxxxx> > Cc: Florian Westphal <fw@xxxxxxxxx> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > Cc: <netfilter-devel@xxxxxxxxxxxxxxx> > Cc: <coreteam@xxxxxxxxxxxxx> > Cc: <netdev@xxxxxxxxxxxxxxx> Acked-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> > --- > net/netfilter/nf_tables_api.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c > index d481f9b..8499baf 100644 > --- a/net/netfilter/nf_tables_api.c > +++ b/net/netfilter/nf_tables_api.c > @@ -1461,8 +1461,9 @@ static void nft_chain_stats_replace(struct nft_trans *trans) > if (!nft_trans_chain_stats(trans)) > return; > > - rcu_swap_protected(chain->stats, nft_trans_chain_stats(trans), > - lockdep_commit_lock_is_held(trans->ctx.net)); > + nft_trans_chain_stats(trans) = > + rcu_replace(chain->stats, nft_trans_chain_stats(trans), > + lockdep_commit_lock_is_held(trans->ctx.net)); > > if (!nft_trans_chain_stats(trans)) > static_branch_inc(&nft_counters_enabled); > -- > 2.9.5 >