Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp432587iog; Mon, 13 Jun 2022 05:56:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx4ZPiDd6zlbrrnZjJ4hqVx4N5FF03TdYg44jBaBa2+zXDGvudPeROZ1psLXrIZpgP4KHsC X-Received: by 2002:a05:6a00:2386:b0:51c:3ca7:b185 with SMTP id f6-20020a056a00238600b0051c3ca7b185mr33876853pfc.8.1655124990398; Mon, 13 Jun 2022 05:56:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655124990; cv=none; d=google.com; s=arc-20160816; b=koVaUFNPrag9YT4PbZVfkTtMr6lRqOgZ8bwkebCPonPjsFm9UOw0HVxDY//mNjnRik 6e8hczDzvmoWVj16LcLgxaZRoA1UEd5NPJOSAck3DvBIiGPakaEabybFgo59xzEAk0/9 omUno4LgHssoAqX76bDAB8BGWftxY2tvlTutw0/lvvkRLAhr0EtLzthR9qmpllFT4IGs pO8MZ66zNP25zLYaX3Jy8e0pwhCqLTdLtfwyic01Hx3CI71fyqoKIpyY1GO4B7aI26bc wknSpPomVby+YtmUhOKmcnJ8pK81e9PayH1m//NXP4Fyh+swgrw5T4K4j/HUwIXi2jDM YZ2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:from:subject:cc:to:message-id:date; bh=rJrVda5qZ1+n2SAA5dhRzOtQ875eo0SbgWpJ4MgYHbE=; b=rMUKFQHR2MsaYUWeKeFrbB9TuHBNAoOhpVpX3mzugn9Sq25PJWTWoJDVsQ1SExjFmk vxyMzlfMTfCFY4ltZ5AV0S6L+9jg+RVP1XIWlo7ZCZ4a4SwuJYtYvPVrfbumeLqbonzi GiEiNEevsIje2A1nRcoAIPPrR2ETmw6oOn+ytxh1KqdDUagJ3pe2NfmSKt6mK1j6jrCC 6WYHBltCnHmIDxR7MsNEZI6/J8CJgiSxv7IpPoTIfi1AtPqwyAMUgy8VAZtCfbK3KAqM PDG6/JhaDFdMq4AwGL7M6Stn/8E+d6WnizFqYLZpP7/V17I7WjVITW8nsTYoMunbGFIT v9aQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s6-20020a63d046000000b003fe4da82aa6si9176696pgi.744.2022.06.13.05.56.17; Mon, 13 Jun 2022 05:56:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346758AbiFMKzT (ORCPT + 99 others); Mon, 13 Jun 2022 06:55:19 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:55278 "EHLO mail.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346494AbiFMKvI (ORCPT ); Mon, 13 Jun 2022 06:51:08 -0400 Received: from localhost (cpc147930-brnt3-2-0-cust60.4-2.cable.virginm.net [86.15.196.61]) by mail.monkeyblade.net (Postfix) with ESMTPSA id 2DBC183EA40E; Mon, 13 Jun 2022 03:51:04 -0700 (PDT) Date: Mon, 13 Jun 2022 11:50:58 +0100 (BST) Message-Id: <20220613.115058.818063822562949798.davem@davemloft.net> To: longli@microsoft.com, longli@linuxonhyperv.com Cc: kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, kuba@kernel.org, pabeni@redhat.com, jgg@ziepe.ca, leon@kernel.org, edumazet@google.com, shiraz.saleem@intel.com, sharmaajay@microsoft.com, linux-hyperv@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org Subject: Re: [Patch v3 03/12] net: mana: Handle vport sharing between devices From: David Miller In-Reply-To: <1655068494-16440-4-git-send-email-longli@linuxonhyperv.com> References: <1655068494-16440-1-git-send-email-longli@linuxonhyperv.com> <1655068494-16440-4-git-send-email-longli@linuxonhyperv.com> X-Mailer: Mew version 6.8 on Emacs 27.2 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (mail.monkeyblade.net [0.0.0.0]); Mon, 13 Jun 2022 03:51:08 -0700 (PDT) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: longli@linuxonhyperv.com Date: Sun, 12 Jun 2022 14:14:45 -0700 > +int mana_cfg_vport(struct mana_port_context *apc, u32 protection_dom_id, > + u32 doorbell_pg_id) > { > + /* Ethernet driver and IB driver can't take the port at the same time */ > + refcount_inc(&apc->port_use_count); > + if (refcount_read(&apc->port_use_count) > 2) { This is a racy test, the count could change after the test against '2'. It would be nice if there was a primitive to do the increment and test atomically, but I fail to see one that matches this scenerio currently. Thank you.