Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp607707ybl; Fri, 24 Jan 2020 06:21:21 -0800 (PST) X-Google-Smtp-Source: APXvYqwvehqK4VJaca0qlN6yXgr20R2KrYvJnEG9A/a4BxaqXNJ0zTyXYgvSePhokV8RjTf9r4bW X-Received: by 2002:a54:4896:: with SMTP id r22mr2181687oic.30.1579875681729; Fri, 24 Jan 2020 06:21:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579875681; cv=none; d=google.com; s=arc-20160816; b=0FFf2v51pNApfu5JjVslL1ECcCHzmNIGWyV1uLd1QCU85ZciylxlYHAWqW8SVmnAiE 1fGN1oRSEd2l6BnLUsMJWvFETVwKImwWYqB6CQqXZ+XiMcFNUgtVsJL9+J9ECe1YK9u5 xNjIUyzWiGgJVf4G5PrdfgD9MOyfGfHe0/mthX1AVBOnq5bferlTkTr3psHow8/IraMr GVhipwasHHm/pNqjoM7pSl6H+uP+3nvM2AEDlXdz9UOpeuXLxVLVlG9GDx/qfwwGL7N4 oN8PniZASCGGDyKBz3QSShGFOtITJYFjoYY+g5dOUvG0+YJ8drCKKIxb+6bbr3TQXnde 1bEg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=io2j3tN6uSS0DJwr0LAv03uiG5GfQClul6I4mdAF9u8=; b=wK5sGjTCsXAz0bE5Nuh0AfQ7c01dK33P2kwKZH6gZhsGrbJglcQzE6nLK1Gj3fe8rB 19LeRJfTKAaROkADLQT8TASyA/813XphCLL1L77ZcJcHsOZGDT9jJHpzitHewMGD4+oG H+mlbIzcj3thCjxuJZfgaMdb1CqO/JSNrD0mtKxlwqg17VW4AZLWbBmHMQmlTOR+D3rT br1xpNEIMBxb0I2JZdUGNOfaBALepePvF2oukCoaxK3S5+u7KOVxHEM5DDHUGIu7OBfe g6riRT4KEbloETQ4b6nIIXBge40f2r36Wtv5SQCp1c8VWVQVuZtMBByc+zPrNjoE3HNw 0cdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Wzvg3cH0; 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 m26si2920745otn.307.2020.01.24.06.21.10; Fri, 24 Jan 2020 06:21:21 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=Wzvg3cH0; 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 S1729928AbgAXLAw (ORCPT + 99 others); Fri, 24 Jan 2020 06:00:52 -0500 Received: from mail.kernel.org ([198.145.29.99]:32854 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387408AbgAXLAu (ORCPT ); Fri, 24 Jan 2020 06:00:50 -0500 Received: from localhost (ip-213-127-102-57.ip.prioritytelecom.net [213.127.102.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2A97E222C2; Fri, 24 Jan 2020 11:00:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579863649; bh=6HX389w+zaGxa+DOkr+u/dZGFBBCxrUEvz+08VDcb3w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wzvg3cH0YQIM1uqgGOt+4SpI4bRdR8PvfHKefARYJqVDL2dOmjkZ4WPB7EJu6dfGs N2WmNsUE1m4AqAAVYV6e+b/1unooVizgB1w3AdIihgMZ2V4c+xYX31+3kf5/aTScSP WksPiUKs5eX5vqNuhYCiiIFRRu75h3925k7pXMX4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mike Marciniszyn , "Michael J. Ruhl" , Alex Estrin , Dennis Dalessandro , Jason Gunthorpe , Sasha Levin Subject: [PATCH 4.19 037/639] IB/hfi1: Add mtu check for operational data VLs Date: Fri, 24 Jan 2020 10:23:27 +0100 Message-Id: <20200124093052.093027878@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200124093047.008739095@linuxfoundation.org> References: <20200124093047.008739095@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alex Estrin [ Upstream commit eb50130964e8c1379f37c3d3bab33a411ec62e98 ] Since Virtual Lanes BCT credits and MTU are set through separate MADs, we have to ensure both are valid, and data VLs are ready for transmission before we allow port transition to Armed state. Fixes: 5e2d6764a729 ("IB/hfi1: Verify port data VLs credits on transition to Armed") Reviewed-by: Mike Marciniszyn Reviewed-by: Michael J. Ruhl Signed-off-by: Alex Estrin Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/hw/hfi1/chip.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/hw/hfi1/chip.c b/drivers/infiniband/hw/hfi1/chip.c index 6b89353611333..b09a4b1cf397b 100644 --- a/drivers/infiniband/hw/hfi1/chip.c +++ b/drivers/infiniband/hw/hfi1/chip.c @@ -10580,12 +10580,29 @@ void set_link_down_reason(struct hfi1_pportdata *ppd, u8 lcl_reason, } } -/* - * Verify if BCT for data VLs is non-zero. +/** + * data_vls_operational() - Verify if data VL BCT credits and MTU + * are both set. + * @ppd: pointer to hfi1_pportdata structure + * + * Return: true - Ok, false -otherwise. */ static inline bool data_vls_operational(struct hfi1_pportdata *ppd) { - return !!ppd->actual_vls_operational; + int i; + u64 reg; + + if (!ppd->actual_vls_operational) + return false; + + for (i = 0; i < ppd->vls_supported; i++) { + reg = read_csr(ppd->dd, SEND_CM_CREDIT_VL + (8 * i)); + if ((reg && !ppd->dd->vld[i].mtu) || + (!reg && ppd->dd->vld[i].mtu)) + return false; + } + + return true; } /* @@ -10698,7 +10715,8 @@ int set_link_state(struct hfi1_pportdata *ppd, u32 state) if (!data_vls_operational(ppd)) { dd_dev_err(dd, - "%s: data VLs not operational\n", __func__); + "%s: Invalid data VL credits or mtu\n", + __func__); ret = -EINVAL; break; } -- 2.20.1