Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp20651pxv; Wed, 14 Jul 2021 21:58:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzGioAMNsd3WnPksxLGczjhoJMFh+RTwPCXfKWL/y+DG/MH6Lj8hcH8zyayGYfb6gtNpXs6 X-Received: by 2002:a05:6e02:1142:: with SMTP id o2mr1288864ill.277.1626325124817; Wed, 14 Jul 2021 21:58:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626325124; cv=none; d=google.com; s=arc-20160816; b=a/AdNznBvMBhgw/aNWeDaUIRprmGQdTQU/e8dy669n+aRc5gCzqZptK99rxP8ueBxE sg9KfDyeFHHKUYOaDkg0TA4kLW5tPgsS45kP2gLSwc2nr39ozk5NTsSLegeHlqxkL5wo 2H5x9pDnD4zWd8j5umiG1AAT1hMR/8iQWENVYSEiNEY+5pH0Z8H7AR/NqlUutnHkkUbh GkLtf4DEPrLKnc7x8xZWBxQe7cw9Aq1zBPfkppykD0zCJz+SBKmPaO/dAYLcTqzUtR2Z XDnQ2l60i2A3EO4sOC51i/B9qoFdKcMPCMNB0WD1nz9Rj6IVjiK14XZcRAz79cyyVG+L mpsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=dBTosmdSR7CNRm+mVOCFUNDe7m3yGam3kuEQEMXECBA=; b=gKbEFdR/NEZ2QWv87zPRZSdU7Vlpe/GrUodnm8NCH7CyVTluZ2ZhaMPvIE1NTClbmm ZE39HfPtbYuc4vJ0goB9UD1FhSUxo4sdBCxeRoy6xL1pDUzz9N+vWQofWaWoFtZwPQNd 3Kyf4wjHGnrqoOhuDSpEYbMeQgh5K2kRW8cn5zn7R1wogYqTMmYqcsnc2zct0cJaGwUV 1Zq9O3PTcBKY2hPXw2UbqchOdxnE7wVfq4u819SX4t6TzFf579o+rtyLnFoDYG3ExRtr 1LalJp9HIq5ZTX9nFgSt+X0R4tEFAW3gfK1IjRhiHdwqn/q89aSxucP/oD8/CxKh6/ec eMJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jpCB6haM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g13si6375187ilf.35.2021.07.14.21.58.32; Wed, 14 Jul 2021 21:58:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=jpCB6haM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235182AbhGOEY5 (ORCPT + 99 others); Thu, 15 Jul 2021 00:24:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55206 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230076AbhGOEY4 (ORCPT ); Thu, 15 Jul 2021 00:24:56 -0400 Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF9EFC06175F; Wed, 14 Jul 2021 21:22:03 -0700 (PDT) Received: by mail-pg1-x52e.google.com with SMTP id 70so1335361pgh.2; Wed, 14 Jul 2021 21:22:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dBTosmdSR7CNRm+mVOCFUNDe7m3yGam3kuEQEMXECBA=; b=jpCB6haMNRn6FeOt67XPmN/G6rC9i3yRZ1ldqp++fUAhpf1FuNnkGqEhcXxDitTwSU C5VLnl+A8+6T0QEZjtKhsrGnnd8AoQseaYdnty0hGm5y+Ewt1IPc0efpVq76baqlQ3MH McWFGTYeo/zaVorZaakJ6MfbLGd8OruASzvzF98IpWe4xpYYM+hd1SKjsrzDAzEHqcv+ VPpqHvOLIKzZK93lIUrm6O1tjXsQ3HLmslzlaXdteKXXdRRk+iRVdcw2Bi5W5XRsT5vW 2dZTFXXxKStMKtU6syiQcxB5pLlbaecXiH099f4f9okVFGnw7AIiizFzeRLDpPk70UjF 2MCg== 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=dBTosmdSR7CNRm+mVOCFUNDe7m3yGam3kuEQEMXECBA=; b=Qcfg+aEnYcCUZMToOuHO/mGWgOkFkjVBLoq4ow/aN+wx9D4QFXPsK3vROuE7W6ksR/ 4k+yncc2cmsLS5EqXkLyE6HecwuT3ERdDs2s2ahRGn8jVQbpeZ0gzT62t6WwPaI4fDjB vl2oY3A7iZ6SCwLjeXf8DtQjj5/pP4Kivqz3rPQZXooChTw6/Kr/61ckWvQuJVUHSnvb roj6S+sZjhlOm0dKxUasCzNSjFN1atCgvsx/tJoz6rfm0K0FVaQqTCHhtcRq3q4NQ+y1 xo79ZYFnCgugZZTAJVez5bhf9SGrROJEB/ozPNG3FtrJSRK68YlmflGhxhhGeB7ZfXBN G9Ww== X-Gm-Message-State: AOAM530H9s76UgbwFUar4YHy7rdE2qT5B2T84vW+nUxwIVQSBzjVeK15 F+hN9XgJQ9g4txeIJK39AN595/rOJ75a5LpsKDY= X-Received: by 2002:a63:4302:: with SMTP id q2mr2141513pga.428.1626322923333; Wed, 14 Jul 2021 21:22:03 -0700 (PDT) MIME-Version: 1.0 References: <20210713123654.31174-1-yajun.deng@linux.dev> <20210713123654.31174-2-yajun.deng@linux.dev> In-Reply-To: <20210713123654.31174-2-yajun.deng@linux.dev> From: Cong Wang Date: Wed, 14 Jul 2021 21:21:52 -0700 Message-ID: Subject: Re: [PATCH 1/2] rtnetlink: use nlmsg_{multicast, unicast} instead of netlink_{broadcast,unicast} To: Yajun Deng Cc: David Miller , Jakub Kicinski , Jamal Hadi Salim , Jiri Pirko , Johannes Berg , ryazanov.s.a@gmail.com, Andrey Wagin , vladimir.oltean@nxp.com, Roopa Prabhu , "zhudi (J)" , LKML , Linux Kernel Network Developers Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 13, 2021 at 5:37 AM Yajun Deng wrote: > > It has a 'NETLINK_CB(' statement in nlmsg_multicast() and has 'if (err' > in nlmsg_{multicast, unicast}, use nlmsg_{multicast, unicast} instead > of netlink_{broadcast,unicast}. so the caller would not deal with the > 'if (err >0 )' statement. Add the return value for nlmsg_multicast. > As also, rename rtnetlink_send() to rtnl_send(), this makes style > uniform. > > Signed-off-by: Yajun Deng > --- > include/linux/rtnetlink.h | 2 +- > net/core/rtnetlink.c | 13 +++++++------ > 2 files changed, 8 insertions(+), 7 deletions(-) > > diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h > index bb9cb84114c1..60bef82e42ab 100644 > --- a/include/linux/rtnetlink.h > +++ b/include/linux/rtnetlink.h > @@ -9,7 +9,7 @@ > #include > #include > > -extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); > +extern int rtnl_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); > extern int rtnl_unicast(struct sk_buff *skb, struct net *net, u32 pid); > extern void rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid, > u32 group, struct nlmsghdr *nlh, gfp_t flags); > diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c > index f6af3e74fc44..c081d607bb69 100644 > --- a/net/core/rtnetlink.c > +++ b/net/core/rtnetlink.c > @@ -707,17 +707,18 @@ static int rtnl_link_fill(struct sk_buff *skb, const struct net_device *dev) > return err; > } > > -int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned int group, int echo) > +int rtnl_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned int group, int echo) > { > struct sock *rtnl = net->rtnl; > int err = 0; > > - NETLINK_CB(skb).dst_group = group; > - if (echo) > + err = nlmsg_multicast(rtnl, skb, pid, group, GFP_KERNEL); > + > + if (echo) { > refcount_inc(&skb->users); You also moved this refcount_inc() down after nlmsg_multicast(). Are you sure it is safe? And the name rtnl_send() is bad given that rtnl_unicast() follows it... Thanks.