From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.6 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 848BCC10F03 for ; Tue, 23 Apr 2019 16:32:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 508C721773 for ; Tue, 23 Apr 2019 16:32:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="bbB5lbNv" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728964AbfDWQcD (ORCPT ); Tue, 23 Apr 2019 12:32:03 -0400 Received: from mail-io1-f68.google.com ([209.85.166.68]:37488 "EHLO mail-io1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728005AbfDWQcB (ORCPT ); Tue, 23 Apr 2019 12:32:01 -0400 Received: by mail-io1-f68.google.com with SMTP id a23so9346410iot.4 for ; Tue, 23 Apr 2019 09:32:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gwPYAxQS165MH+PS7/wOmbT0/CQpWtDuOXFgAdudack=; b=bbB5lbNvP77c++zo6u3dqBEU9cpJRmLNeOCYXi3t4W4UPbgL+6N4Dw/R37Zq2w7758 gzOg2GH7Y0jfxx/t+UyCNlNLtcX6N1AoFxA37QSLbHFjiEntv1BkTcj10j6lNQVAwZkr eqPtZGY/4yVOcxYfthdZmOmB/JRBGWQQOQzX3bmhhZA/ly4WrxebCqehX/yr4Bboa/iO nzxy0JnU10OlKtnq8X3R4EMZC2sbL2hLZSkNfjBjj8CzUcehtFPBNIypZU7OCQnQhECc G1jWZV5YP2VfAUQeJMfc9AUY89kWzzQUljkImbMlt6q3qYAF+UuJhN2FLa2CB2g/Xj/p 4o5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gwPYAxQS165MH+PS7/wOmbT0/CQpWtDuOXFgAdudack=; b=crVPFFr1dvDMOheBoKPiErCOyltbr1w2reZ3sJEikS+r0Dc4nzew6HCnrOaO5bti33 8wOfvqkW6a7C8PQpGENCYVs4Lt2HwwBX+7eQAjG+riAb7scJW3gK8q4/TkOFFC5hFDKH i2Dkzo+cesk1clQrqOvwdI1KZSWzhi1txcjSnwh0xuTJjzheTDSoqmabGXKMq3np2e7E Kbnw2wGxrUCQiIbqY0bMrlh2RbqqPSseDD+L3sKtIpwk8eThEoCuywA60BMaWoyG96MH yJSCwR2SKHBmk7aV/adRrtndrN6EbDuhtfL089AFLlkSH+5q+f1bPp2/d80lqhtoU4VZ 6Jag== X-Gm-Message-State: APjAAAXueD9e2ucu7Vgss7C/RvxskwXoHf68mfwJWR7/qaxQ1Kc7FHZ2 ILyFuGSD1Uad1/Sst3aBlr0zMX6uLvd2lmT7DD36qA== X-Google-Smtp-Source: APXvYqzUZ9eJyq/HJy+Y0gdRtBov5XsLvAum5OsuzmMsrv4SXL+2q4OVb/iu5YpQ1tlbjUZXtLgEEyqeeopcUH7zqOY= X-Received: by 2002:a6b:b8d6:: with SMTP id i205mr19389018iof.122.1556037120899; Tue, 23 Apr 2019 09:32:00 -0700 (PDT) MIME-Version: 1.0 References: <20190423013503.217729-1-edumazet@google.com> <20190423013503.217729-3-edumazet@google.com> In-Reply-To: <20190423013503.217729-3-edumazet@google.com> From: Wei Wang Date: Tue, 23 Apr 2019 09:31:49 -0700 Message-ID: Subject: Re: [PATCH net-next 2/3] ipv6: broadly use fib6_info_hold() helper To: Eric Dumazet Cc: "David S . Miller" , netdev , Eric Dumazet Content-Type: text/plain; charset="UTF-8" Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Mon, Apr 22, 2019 at 6:35 PM Eric Dumazet wrote: > > Instead of using atomic_inc(), prefer fib6_info_hold() > so that upcoming refcount_t conversion is simpler. > > Only fib6_info_alloc() is using atomic_set() since we > just allocated a new object. > > Signed-off-by: Eric Dumazet > Cc: Wei Wang > --- Acked-by: Wei Wang > net/ipv6/ip6_fib.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c > index 55193859152969794dab3df02637217a7f21016f..a5e83593e0e45c2762eca85d04757f9d8e118e0f 100644 > --- a/net/ipv6/ip6_fib.c > +++ b/net/ipv6/ip6_fib.c > @@ -162,7 +162,7 @@ struct fib6_info *fib6_info_alloc(gfp_t gfp_flags) > } > > INIT_LIST_HEAD(&f6i->fib6_siblings); > - atomic_inc(&f6i->fib6_ref); > + atomic_set(&f6i->fib6_ref, 1); > > return f6i; > } > @@ -846,8 +846,8 @@ static struct fib6_node *fib6_add_1(struct net *net, > > RCU_INIT_POINTER(in->parent, pn); > in->leaf = fn->leaf; > - atomic_inc(&rcu_dereference_protected(in->leaf, > - lockdep_is_held(&table->tb6_lock))->fib6_ref); > + fib6_info_hold(rcu_dereference_protected(in->leaf, > + lockdep_is_held(&table->tb6_lock))); > > /* update parent pointer */ > if (dir) > @@ -942,7 +942,7 @@ static void fib6_purge_rt(struct fib6_info *rt, struct fib6_node *fn, > struct fib6_info *new_leaf; > if (!(fn->fn_flags & RTN_RTINFO) && leaf == rt) { > new_leaf = fib6_find_prefix(net, table, fn); > - atomic_inc(&new_leaf->fib6_ref); > + fib6_info_hold(new_leaf); > > rcu_assign_pointer(fn->leaf, new_leaf); > fib6_info_release(rt); > @@ -1108,7 +1108,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct fib6_info *rt, > return err; > > rcu_assign_pointer(rt->fib6_next, iter); > - atomic_inc(&rt->fib6_ref); > + fib6_info_hold(rt); > rcu_assign_pointer(rt->fib6_node, fn); > rcu_assign_pointer(*ins, rt); > if (!info->skip_notify) > @@ -1136,7 +1136,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct fib6_info *rt, > if (err) > return err; > > - atomic_inc(&rt->fib6_ref); > + fib6_info_hold(rt); > rcu_assign_pointer(rt->fib6_node, fn); > rt->fib6_next = iter->fib6_next; > rcu_assign_pointer(*ins, rt); > @@ -1278,7 +1278,7 @@ int fib6_add(struct fib6_node *root, struct fib6_info *rt, > if (!sfn) > goto failure; > > - atomic_inc(&info->nl_net->ipv6.fib6_null_entry->fib6_ref); > + fib6_info_hold(info->nl_net->ipv6.fib6_null_entry); > rcu_assign_pointer(sfn->leaf, > info->nl_net->ipv6.fib6_null_entry); > sfn->fn_flags = RTN_ROOT; > @@ -1321,7 +1321,7 @@ int fib6_add(struct fib6_node *root, struct fib6_info *rt, > rcu_assign_pointer(fn->leaf, > info->nl_net->ipv6.fib6_null_entry); > } else { > - atomic_inc(&rt->fib6_ref); > + fib6_info_hold(rt); > rcu_assign_pointer(fn->leaf, rt); > } > } > -- > 2.21.0.593.g511ec345e18-goog >