Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp2466952imd; Fri, 2 Nov 2018 11:55:09 -0700 (PDT) X-Google-Smtp-Source: AJdET5catzesoqduq607UOrbra0TyP98ThpU2jsCfbdcJBsvcwHIKwp+h7gubCQkuqix9Q9G0c+x X-Received: by 2002:a65:610e:: with SMTP id z14-v6mr11942314pgu.138.1541184909158; Fri, 02 Nov 2018 11:55:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541184909; cv=none; d=google.com; s=arc-20160816; b=0422QP4G2KXWKaYrQ5HwFoOCAZBajc9Jc6z2TjEmF3+A/d7xl1VtHAXFs3TdFhA6hK PTqL9a+qwww6pfsFXJWzXydqMQdp5WRpOD/1Q1PjOPfEDdTMAa/PSVMPDW0KAVaAVexB arMGxKpfXSScS3HuWB3XU+3fLkw+YIL5m2WBzRjuQVFo2K/8L31rTBtsOvpVakPH4Lqr iB3TOaJF6LynqSvsGt38qvncfU/iBby1e4cK1MDmNHPe1cBGNdn0lORp2fNB6Piu/qzZ cgfnoAsqLqqDNldiGaCFRSECBl5cmv3CulJPNfYG+syGfY1XDZGIlziCiVd+Ww9gaIu3 PPTw== 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=sIut6HnlSrWvB0YXlnalH8gxQ68Bq3CSJmoXY2GEAWw=; b=fCYa3tx2diKJ71ocH5R4Ok4NuhhNOwcURn2IodaV5Zv8t6vct7bD8/lY8Y2hmF+5W+ rXl7daUAGOJG8ivb3cR+5Krkixf58/npr7RmjhSpwYxKt+m7HWX0lYPxF1FA+IgosZhR Wm/dwoWbB5AnuhOdI3YcrNdxq08g4Q0jPjxvtTilxQiZ0AUxa/3j3R2GWlwG9a5nchHy yfpaCTiQFQ8Gyhs1oUkfhpY+n7fujwEd+nOG0kkMYnL9AmRoZVC+Na9vdgoPVVwZlpZG wYx9lfGpdVjKeFU6dg5Im54U6C2xKMN6oUkmmbFcz8sT5JKgyZe1CF6VKFmHoJ91CQYW PRgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=WKEPaA12; 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 y22-v6si32893700plp.371.2018.11.02.11.54.54; Fri, 02 Nov 2018 11:55:09 -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; dkim=pass header.i=@kernel.org header.s=default header.b=WKEPaA12; 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 S1731191AbeKCECk (ORCPT + 99 others); Sat, 3 Nov 2018 00:02:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:58388 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726150AbeKCECj (ORCPT ); Sat, 3 Nov 2018 00:02:39 -0400 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (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 75CAD20848; Fri, 2 Nov 2018 18:54:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541184864; bh=GT90lk2hdG/w4vfIMBet4FbiqtqbZYJ/Hl2vtdxMCNc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WKEPaA12RD56Wy1yCiyTnaVYaqHaWZkGn7teeUpWIBhdAJHc87ZH1BGSlxgV+gEAf qXDdMG8oPlejaIfuxTsTpef2Lf787H8r1D5tegaqaq52p3vv08MlXQzIsWujqg8+r+ +/YRu6yEgNDlp/vg4AMgAj8s3BCmWvn3/yGAdtRM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ilya Lesokhin , Noa Osherovich , Leon Romanovsky , Jason Gunthorpe , Sasha Levin Subject: [PATCH 4.14 068/143] IB/mlx5: Avoid passing an invalid QP type to firmware Date: Fri, 2 Nov 2018 19:34:13 +0100 Message-Id: <20181102182902.678318483@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181102182857.064326086@linuxfoundation.org> References: <20181102182857.064326086@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review 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 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit e7b169f34403becd3c9fd3b6e46614ab788f2187 ] During QP creation, the mlx5 driver translates the QP type to an internal value which is passed on to FW. There was no check to make sure that the translated value is valid, and -EINVAL was coerced into the mailbox command. Current firmware refuses this as an invalid QP type, but future/past firmware may do something else. Fixes: 09a7d9eca1a6c ('{net,IB}/mlx5: QP/XRCD commands via mlx5 ifc') Reviewed-by: Ilya Lesokhin Signed-off-by: Noa Osherovich Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/hw/mlx5/qp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index ef9ee6c328a1..dfc190055167 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -1527,6 +1527,7 @@ static int create_qp_common(struct mlx5_ib_dev *dev, struct ib_pd *pd, u32 uidx = MLX5_IB_DEFAULT_UIDX; struct mlx5_ib_create_qp ucmd; struct mlx5_ib_qp_base *base; + int mlx5_st; void *qpc; u32 *in; int err; @@ -1535,6 +1536,10 @@ static int create_qp_common(struct mlx5_ib_dev *dev, struct ib_pd *pd, spin_lock_init(&qp->sq.lock); spin_lock_init(&qp->rq.lock); + mlx5_st = to_mlx5_st(init_attr->qp_type); + if (mlx5_st < 0) + return -EINVAL; + if (init_attr->rwq_ind_tbl) { if (!udata) return -ENOSYS; @@ -1688,7 +1693,7 @@ static int create_qp_common(struct mlx5_ib_dev *dev, struct ib_pd *pd, qpc = MLX5_ADDR_OF(create_qp_in, in, qpc); - MLX5_SET(qpc, qpc, st, to_mlx5_st(init_attr->qp_type)); + MLX5_SET(qpc, qpc, st, mlx5_st); MLX5_SET(qpc, qpc, pm_state, MLX5_QP_PM_MIGRATED); if (init_attr->qp_type != MLX5_IB_QPT_REG_UMR) -- 2.17.1