[{"id":1774059,"web_url":"http://patchwork.ozlabs.org/comment/1774059/","msgid":"<80ca6187-4a08-d65d-fe16-27dcf7c55e4c@gmail.com>","list_archive_url":null,"date":"2017-09-23T17:17:37","subject":"Re: [PATCH net-next v2 6/6] rtnetlink: rtnl_have_link_slave_info\n\tdoesn't need rtnl","submitter":{"id":6918,"url":"http://patchwork.ozlabs.org/api/people/6918/","name":"David Ahern","email":"dsahern@gmail.com"},"content":"On 9/22/17 12:10 AM, Florian Westphal wrote:\n> Switch it to rcu.\n> \n> rtnl_link_slave_info_fill on to other hand does need rtnl mutex for now so\n> add an annotation to its caller as a reminder.\n> \n> Signed-off-by: Florian Westphal <fw@strlen.de>\n> ---\n>  Change since v1:\n>   - don't add ASSERT_RTNL to rtnl_link_slave_info_fill and\n>   rtnl_link_info_fill they are only called via rtnl_link_fill.\n> \n>  net/core/rtnetlink.c | 12 +++++++++---\n>  1 file changed, 9 insertions(+), 3 deletions(-)\n> \n> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c\n> index 590823f70cc3..e6f9e36d9d5a 100644\n> --- a/net/core/rtnetlink.c\n> +++ b/net/core/rtnetlink.c\n> @@ -522,11 +522,15 @@ static size_t rtnl_link_get_af_size(const struct net_device *dev,\n>  static bool rtnl_have_link_slave_info(const struct net_device *dev)\n>  {\n>  \tstruct net_device *master_dev;\n> +\tbool ret = false;\n>  \n> -\tmaster_dev = netdev_master_upper_dev_get((struct net_device *) dev);\n> +\trcu_read_lock();\n> +\n> +\tmaster_dev = netdev_master_upper_dev_get_rcu((struct net_device *)dev);\n>  \tif (master_dev && master_dev->rtnl_link_ops)\n> -\t\treturn true;\n> -\treturn false;\n> +\t\tret = true;\n> +\trcu_read_unlock();\n> +\treturn ret;\n>  }\n>  \n>  static int rtnl_link_slave_info_fill(struct sk_buff *skb,\n> @@ -598,6 +602,8 @@ static int rtnl_link_fill(struct sk_buff *skb, const struct net_device *dev)\n>  \tstruct nlattr *linkinfo;\n>  \tint err = -EMSGSIZE;\n>  \n> +\tASSERT_RTNL();\n\nRather than sprinkling the ASSERT_RTNL why not just add a comment above\nthe function which is done in many places. Since this is really meant as\nyour notes as you remove rtnl usage a comment serves the same purpose.\n\n> +\n>  \tlinkinfo = nla_nest_start(skb, IFLA_LINKINFO);\n>  \tif (linkinfo == NULL)\n>  \t\tgoto out;\n> \n\n\nReviewed-by: David Ahern <dsahern@gmail.com>","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"A5uaKFfL\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xzxqp3wvNz9tX4\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun, 24 Sep 2017 03:17:42 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751671AbdIWRRk (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 23 Sep 2017 13:17:40 -0400","from mail-pf0-f196.google.com ([209.85.192.196]:36671 \"EHLO\n\tmail-pf0-f196.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1750916AbdIWRRj (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Sat, 23 Sep 2017 13:17:39 -0400","by mail-pf0-f196.google.com with SMTP id f84so1798648pfj.3\n\tfor <netdev@vger.kernel.org>; Sat, 23 Sep 2017 10:17:38 -0700 (PDT)","from dsa-mb.local ([2601:282:800:7292:34fb:fcb:e9c2:fef8])\n\tby smtp.googlemail.com with ESMTPSA id\n\tu27sm4862341pfl.76.2017.09.23.10.17.37\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tSat, 23 Sep 2017 10:17:38 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=subject:to:references:from:message-id:date:user-agent:mime-version\n\t:in-reply-to:content-language:content-transfer-encoding;\n\tbh=tF4yvBzO76o5AgAdSTxNIKVpnp7ymSIMGpulSMECcUY=;\n\tb=A5uaKFfL3/EipcO40bfrv+jHjaj1rvkctOmHGUK5SgGoVVRObMdZdpid9mVvPNn7n4\n\tiB90czYAUJbAt7+kJyYZLMYGum/7Ebfoyd2X4vHANPOv4DKCVK88fxzt2IykhV93JFCb\n\thwhsHzm69XIKlxDjtUrK0rvuEcQGIhNuO+rkMSd9r21064nPr6iQOkIsMjKLjLo1slKe\n\t2nOI+A/z7Ix1G6fFgdHlHQEuLkNCyDPv7LMgmcApB8u5H3QPOzGw0rXac6K3BBUT05bI\n\tYxvB02qhuErtDNlMDM+yv8vgeUvpwJSOOGjTVJImQzskJ6tBA4HlU93yRQ3wTC6uT21S\n\t+t9w==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:subject:to:references:from:message-id:date\n\t:user-agent:mime-version:in-reply-to:content-language\n\t:content-transfer-encoding;\n\tbh=tF4yvBzO76o5AgAdSTxNIKVpnp7ymSIMGpulSMECcUY=;\n\tb=KCwBXsGYN/Ivxq0++mpasA8OcLiLnhsKE3ZbcIP1JAI2+BjRTzybyuCXPXnDBJFKSk\n\taGUoEC0yrBpgFZQQSqslf8sK/7eKBTnb8YFP/MSAWIbKRNoBJXNT44KW4q/gybHDyu+n\n\tzi3bIy1GUT9r0Rlktx2STdz1Sj8EmLy2h+bwuE897iDHKvqBefo0lrgXRGwWSd2rtFjh\n\tMFIlZsKLW6NyXe221+KGbSKCjzJrtdD4D55BHm1r89XtLxIw+8g8OnLeoKSq+mkeKQn+\n\tRDZGd1I2xp5k3LWXrxKXFOEJPmiODOijvSr6KwkcZpzYYEL4Yr/h9xPA6i03B8LXNsjm\n\tLL4A==","X-Gm-Message-State":"AHPjjUiSeTLY9KSRTuOznuZgvmIJNI5sZNha8xxtZhQrhh47FJnCGpxS\n\tH/Ftz1ddQ/akI7+Gnj1kLmcvyQ==","X-Google-Smtp-Source":"AOwi7QCsJP3Llhh+c0zyYfn56HoT2yyRRuR10hCnxyHyxYBKwyZHbfIx7MOCQwfc6IwmPJRNEedQGQ==","X-Received":"by 10.99.181.79 with SMTP id u15mr2721240pgo.116.1506187058401; \n\tSat, 23 Sep 2017 10:17:38 -0700 (PDT)","Subject":"Re: [PATCH net-next v2 6/6] rtnetlink: rtnl_have_link_slave_info\n\tdoesn't need rtnl","To":"Florian Westphal <fw@strlen.de>, netdev@vger.kernel.org","References":"<20170922061008.14723-1-fw@strlen.de>\n\t<20170922061008.14723-7-fw@strlen.de>","From":"David Ahern <dsahern@gmail.com>","Message-ID":"<80ca6187-4a08-d65d-fe16-27dcf7c55e4c@gmail.com>","Date":"Sat, 23 Sep 2017 11:17:37 -0600","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0)\n\tGecko/20100101 Thunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170922061008.14723-7-fw@strlen.de>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]