Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp2495168imm; Thu, 18 Oct 2018 15:58:40 -0700 (PDT) X-Google-Smtp-Source: ACcGV63JLKE9NI91cVBRSvqlAMu+qoOH5C5LC9ufWh08fkMt3FqfwCeQm4xgwOnGwoA08HpRZwJF X-Received: by 2002:a63:2903:: with SMTP id p3-v6mr30447078pgp.188.1539903520669; Thu, 18 Oct 2018 15:58:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539903520; cv=none; d=google.com; s=arc-20160816; b=d5SJrE+vOoA5O9HxLUah4DdF1Sd6rMZZt3qzCyaxVKj+fwzGkhy0/K40TANnYhSnH9 zV9496Qg2vTY8jQds+JV+ZpS7GIsmgVBYfepXRluFr0okHaNW0A7tqyXe6lw4Kw60JRX VKHgmIjGLmR3ZhgvHXBNhZAnSXhwqfkEA32E45ES9SFYGZp4cZOxv3S66CMZTEtSHw7s H9Nztewp2ieKpslHViLbIt0zqrea6mUjBMDd/7Nv9KAX2eVQKZi6EyuY7wA4gNDvOf5f gBBfhiBoJfsud2hBVVipiFVHn2P8RmOYu8NIUdzq31WPSmPaKe2z/q6qSW6gPlAKwc5p vvXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:from:subject:cc:to:message-id:date; bh=o15WOS4J+2OeCrTL1s1ztKxcNyFy4gmUDtCdlqyeJA4=; b=MpGA/KLhB3vSkx/XwdOr22RqUveBTjHeL+zf6ierKIv/OAsPPukq9WtI+9/Hp7Bp46 Qr54ObokUKh+Xybv9gzhVXuzpIw0BcY5UXNvE7w3BevKpZFerGPpPjmCgwPgfn3bxkKw TIlrZHKcS6yhE6NfB5d8tb3PHQi/wPtFWBexOv9j+caFvpyS7SJES1r9WFLKbhn7nto2 VvhjB3nFZvxqNJytBDJ7c23Dd+kzeaj4AKx4DTkvYk0Vkm36bhA01FkiyzI9pSprUieV cf9if0B37MRWxr8xJtbaox6ENwLQTV2IZBAexp8eSoEfdAh1roMgE1RMpHDJzBtuQlCO Yuhw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r39-v6si22851928pld.163.2018.10.18.15.58.24; Thu, 18 Oct 2018 15:58:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727173AbeJSG77 (ORCPT + 99 others); Fri, 19 Oct 2018 02:59:59 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:42162 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726733AbeJSG77 (ORCPT ); Fri, 19 Oct 2018 02:59:59 -0400 Received: from localhost (c-67-183-62-245.hsd1.wa.comcast.net [67.183.62.245]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 0094B140A9E0D; Thu, 18 Oct 2018 15:56:47 -0700 (PDT) Date: Thu, 18 Oct 2018 15:56:47 -0700 (PDT) Message-Id: <20181018.155647.1045018243241594303.davem@davemloft.net> To: sam@mendozajonas.com Cc: netdev@vger.kernel.org, Justin.Lee1@Dell.com, linux-kernel@vger.kernel.org, openbmc@lists.ozlabs.org Subject: Re: [PATCH net-next 0/6] net/ncsi: Allow enabling multiple packages & channels From: David Miller In-Reply-To: <20181018035917.19413-1-sam@mendozajonas.com> References: <20181018035917.19413-1-sam@mendozajonas.com> X-Mailer: Mew version 6.7 on Emacs 26 / Mule 6.0 (HANACHIRUSATO) 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.5.12 (shards.monkeyblade.net [149.20.54.216]); Thu, 18 Oct 2018 15:56:48 -0700 (PDT) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Samuel Mendoza-Jonas Date: Thu, 18 Oct 2018 14:59:11 +1100 > This series extends the NCSI driver to configure multiple packages > and/or channels simultaneously. Since the RFC series this includes a few > extra changes to fix areas in the driver that either made this harder or > were roadblocks due to deviations from the NCSI specification. > > Patches 1 & 2 fix two issues where the driver made assumptions about the > capabilities of the NCSI topology. > Patches 3 & 4 change some internal semantics slightly to make multi-mode > easier. > Patch 5 introduces a cleaner way of reconfiguring the NCSI configuration > and keeping track of channel states. > Patch 6 implements the main multi-package/multi-channel configuration, > configured via the Netlink interface. > > Readers who have an interesting NCSI setup - especially multi-package > with HWA - please test! I think I've covered all permutations but I > don't have infinite hardware to test on. This doesn't apply cleanly to net-next. Does it depend upon changes applied elsewhere? You must always make that explicit. Also, please explain this locking in ncsi_reset_dev(): + NCSI_FOR_EACH_PACKAGE(ndp, np) { + NCSI_FOR_EACH_CHANNEL(np, nc) { + spin_lock_irqsave(&nc->lock, flags); + enabled = nc->monitor.enabled; + state = nc->state; + spin_unlock_irqrestore(&nc->lock, flags); + + if (enabled) + ncsi_stop_channel_monitor(nc); + if (state == NCSI_CHANNEL_ACTIVE) { + active = nc; + break; + } Is that really protecting anything? Right after you drop np->lock those two values can change, the state of the 'nc' can change such that it isn't NCSI_CHANNEL_ACTIVE anymore etc. At best this locking makes sure thatn enabled and state are consistent with respect to eachother, only. It doesn't guarantee anything about the stability of the state of the object at all, and it can change right from under you.