From patchwork Thu Oct 19 02:43:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Mendoza-Jonas X-Patchwork-Id: 827909 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mendozajonas.com header.i=@mendozajonas.com header.b="NQyPs64O"; dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="iXvLI1Wl"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yHYD40j7wz9tX7 for ; Thu, 19 Oct 2017 13:44:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751617AbdJSCnc (ORCPT ); Wed, 18 Oct 2017 22:43:32 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:36915 "EHLO out4-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751091AbdJSCnV (ORCPT ); Wed, 18 Oct 2017 22:43:21 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id E6AD620C59; Wed, 18 Oct 2017 22:43:20 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute2.internal (MEProxy); Wed, 18 Oct 2017 22:43:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= mendozajonas.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=gJF1y1IcFd+yUfjCy2M3JF37o2s+mNJl0cjJIgWQPC0=; b=NQyPs64O YCZzUtggEGI4u+lTk1TQ9y2Ts5ZSZXMW3HPrk3TGVIFEdoIgSTqRyk1r+CcaotRb b2qDcLH+9/yZgYjU3FDSa7r5n+Pz79Xej45VvzRq8pLdgj1R0inrDBjOQzPAXGXz qqvQQ9mXNjulVh/lBxjuREybkTN1euSuN775VPqmzAVptmWtB95JbAclGWXI94GS NkmkCnrRhG3n8m/M/hIzZecPfk30BvyVt6l3zCZce0LMjDbmW/FoyTZYog7xQ/lC ft8Wu4TI0tau6g5e7zhsn3UbM9O+bLpjrWjlz9ZggpWCIuyM/H9ciF+7VMoGECrA xUKmGKqZy18Aeg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=gJF1y1IcFd+yUfjCy2M3JF37o2s+mNJl0cjJIgWQPC0=; b=iXvLI1Wl mO1OkwHIPEhhtHfkwjAVrJSPHUTw5scsR9i+plYr16CIakTce3916b5cHbOJntKZ xbLtaBL7B57zPioh91PVU0t4k4R6tq2IXWBzWyNQS4kcIwhNFEI6m9EfkvySyZ9P ImPI2jEyOeoqCs2cTNwZFDnXh8UJ7SfA7CoSMuT7vGQk9+yG11WzNgRjZGdHS024 fJsG6UNk8nKZPZFF8nTtEFze8KPTZN+Rz84feZdvlZh4wwIULAM5QL5lDWnPXeF/ kPDu5cQ/yDWiqwPgUI9oAwWLufqMUfkqAaBaMyqRtNujc64PRALb1BkQPIza3QBu 9yBFn5mmhuqprw== X-ME-Sender: Received: from v4.ozlabs.ibm.com (unknown [122.99.82.10]) by mail.messagingengine.com (Postfix) with ESMTPA id 227A87FA75; Wed, 18 Oct 2017 22:43:18 -0400 (EDT) From: Samuel Mendoza-Jonas To: netdev@vger.kernel.org Cc: Gavin Shan , "David S . Miller" , linux-kernel@vger.kernel.org, Samuel Mendoza-Jonas Subject: [PATCH net 3/5] net/ncsi: Disable HWA mode when no channels are found Date: Thu, 19 Oct 2017 13:43:07 +1100 Message-Id: <20171019024309.13628-3-sam@mendozajonas.com> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20171019024309.13628-1-sam@mendozajonas.com> References: <20171019024309.13628-1-sam@mendozajonas.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Gavin Shan When there are no NCSI channels probed, HWA (Hardware Arbitration) mode is enabled. It's not correct because HWA depends on the fact: NCSI channels exist and all of them support HWA mode. This disables HWA when no channels are probed. Signed-off-by: Gavin Shan Signed-off-by: Samuel Mendoza-Jonas --- net/ncsi/ncsi-manage.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/net/ncsi/ncsi-manage.c b/net/ncsi/ncsi-manage.c index b022deb39d31..0966eff48ce7 100644 --- a/net/ncsi/ncsi-manage.c +++ b/net/ncsi/ncsi-manage.c @@ -1005,12 +1005,15 @@ static bool ncsi_check_hwa(struct ncsi_dev_priv *ndp) struct ncsi_package *np; struct ncsi_channel *nc; unsigned int cap; + bool has_channel = false; /* The hardware arbitration is disabled if any one channel * doesn't support explicitly. */ NCSI_FOR_EACH_PACKAGE(ndp, np) { NCSI_FOR_EACH_CHANNEL(np, nc) { + has_channel = true; + cap = nc->caps[NCSI_CAP_GENERIC].cap; if (!(cap & NCSI_CAP_GENERIC_HWA) || (cap & NCSI_CAP_GENERIC_HWA_MASK) != @@ -1021,8 +1024,13 @@ static bool ncsi_check_hwa(struct ncsi_dev_priv *ndp) } } - ndp->flags |= NCSI_DEV_HWA; - return true; + if (has_channel) { + ndp->flags |= NCSI_DEV_HWA; + return true; + } + + ndp->flags &= ~NCSI_DEV_HWA; + return false; } static int ncsi_enable_hwa(struct ncsi_dev_priv *ndp)