Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp40958imu; Thu, 8 Nov 2018 14:24:01 -0800 (PST) X-Google-Smtp-Source: AJdET5d+sNpWP6MzOO5vMNFjdwgniLFSzw3Rrz0fulEc2XekjRk01CAAABd3lPD01lr3uxbP9jqH X-Received: by 2002:a63:2a4a:: with SMTP id q71mr5262188pgq.374.1541715840945; Thu, 08 Nov 2018 14:24:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541715840; cv=none; d=google.com; s=arc-20160816; b=Of82F8vGgmi5DH9XGAJiUDesRcgtXE+jlIj3LRAdImNluL/I4g/7Ie/+e5jK7R+siw 9O78N4QnEu3DRtAhv+cGnIgMIHrYb3O9DX0I8b75ZEW23plLAlstMqT9RM/j6ZYU1Lol L4RHmkyqWGhCyJSm2Z0QXgyIJoyO/tWO2diOvnbxoRN3OAjQgSPdhMXmKm1wWA9iF7v3 G7gCms87C0oB5ovL0Xg1YLblNUC8KPhNRYXZ9pPuFrSTrOSr+YaCt8POF3GkmP+ONWST BcejDrD8uzi1QXzWXs3YpNEmjwxuD6bWaQhtl25z2030oQ8Mnh4/sPKbGNWzun7n2eVK h6ZQ== 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=0vvofAgHURD7aCxJ4z6dZZSJZJgPEJnQJ8A164+/nig=; b=Ei3ouKutcUV8IDPtqoQklZGgJcxFHTBferKu0FHq3HesmcgechVq+G6WjobOOzrgV0 Np+bolUJ+o9Oq+hehTnpdQWxjjPkJVZuIXXfcfU41spHjkT3ZozsD5uYqNPqzPF1UCD9 Qz0fZ4JWZdeSfwf56BBa8pHhNNNmYCXa99UFjWmfSkIWx4zroyUFe1i/biRplD7Nk97c SVTLU151ycnXem8wHiuj6QixcY0tyRG82FzU4sfFYnlEI2UzNUXnqnxeMploD1pP2VRg XKuYHqy6i79FoPuMFY+dqMMlNaEb/wwbXrMFtMZTHh7hwtIdhhRv3M6vyHxNO6+aAL9R Ei8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=cmzH7kBA; 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 r18-v6si5931957pfc.253.2018.11.08.14.23.46; Thu, 08 Nov 2018 14:24:00 -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=cmzH7kBA; 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 S1731756AbeKIHnM (ORCPT + 99 others); Fri, 9 Nov 2018 02:43:12 -0500 Received: from mail.kernel.org ([198.145.29.99]:35458 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729245AbeKIHnL (ORCPT ); Fri, 9 Nov 2018 02:43:11 -0500 Received: from localhost (unknown [208.72.13.198]) (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 5D35A20892; Thu, 8 Nov 2018 22:05:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541714741; bh=5dBt6c3ogwKCIR681v6TrIqP5AjXs8AZLnLcCWNEGbo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cmzH7kBArU3d8gOLZqFaKXUx7ahyt7LMxnfbHXaWwXNhbvOZccjvbrZnZFuHdKkeS arWVpO+b/0YW9lCKBgwYW2Zw1AQxvqckIObMyu3LQ/S4UY9tHw7AkGPMEaaWZ1hWCC s21dR2u1tFOtPI/ACZ9XSVEsolCsbbkb+PUqgXS8= 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.9 098/171] IB/mlx5: Avoid passing an invalid QP type to firmware Date: Thu, 8 Nov 2018 13:51:08 -0800 Message-Id: <20181108215134.589754310@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181108215127.257643509@linuxfoundation.org> References: <20181108215127.257643509@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.9-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 abb47e780070..f8f7a2191b98 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -1523,6 +1523,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; @@ -1538,6 +1539,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; @@ -1665,7 +1670,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