From patchwork Thu Dec 12 09:37:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287693 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 76ACC138C for ; Thu, 12 Dec 2019 09:38:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 523DD24654 for ; Thu, 12 Dec 2019 09:38:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143525; bh=7VSap/pDkZCJ2HaTTu0ygwqILaPsiLNK7bYS+hXyIiE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=TjURhWSy8jZt2hX3XI2nNVaP+yBVptqrmys2h9ZncFR4KlXeUyjIh/5nLRPn9Ia+K A9ZiqdWSC8T7zFe/W3rh8/Pe8SI6wtH1v8F6Q5Y1vxhQvyqvntYlR/zNZCeu5SC7v7 MzRgnn5Qo66ciaoSHkkdToWUaBpEA2PfmD7N/wrY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728389AbfLLJio (ORCPT ); Thu, 12 Dec 2019 04:38:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:38454 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728348AbfLLJio (ORCPT ); Thu, 12 Dec 2019 04:38:44 -0500 Received: from localhost (unknown [193.47.165.251]) (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 26BD82173E; Thu, 12 Dec 2019 09:38:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143523; bh=7VSap/pDkZCJ2HaTTu0ygwqILaPsiLNK7bYS+hXyIiE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XBFaGD9U0V1FzAHqSaEfDgFZwFyd6+obBMYk7JB55rXopRa3+NaZ24wH4FLtsLNoL kry37KtgTLkEbuIY1MRy1RHPZ9kJpjDsqYisJLP6YSadaPEqmYg/qxypC1Dp7IKVVj UGgL+qv4mo7t3mSiVbMjom+EyDl/b/3UD6VZeXDk= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 01/48] RDMA/cm: Provide private data size to CM users Date: Thu, 12 Dec 2019 11:37:43 +0200 Message-Id: <20191212093830.316934-2-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Prepare code to removal IB_CM_*_PRIVATE_DATA_SIZE enum so we will store such size in adjacent to actual data. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 11 +++++++++++ include/rdma/ib_cm.h | 1 + 2 files changed, 12 insertions(+) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 455b3659d84b..c341a68b6f97 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1681,6 +1681,7 @@ static void cm_format_req_event(struct cm_work *work, param->srq = cm_req_get_srq(req_msg); param->ppath_sgid_attr = cm_id_priv->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &req_msg->private_data; + work->cm_event.private_data_len = IB_CM_REQ_PRIVATE_DATA_SIZE; } static void cm_process_work(struct cm_id_private *cm_id_priv, @@ -2193,6 +2194,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); param->srq = cm_rep_get_srq(rep_msg); work->cm_event.private_data = &rep_msg->private_data; + work->cm_event.private_data_len = IB_CM_REP_PRIVATE_DATA_SIZE; } static void cm_dup_rep_handler(struct cm_work *work) @@ -2395,6 +2397,7 @@ static int cm_rtu_handler(struct cm_work *work) return -EINVAL; work->cm_event.private_data = &rtu_msg->private_data; + work->cm_event.private_data_len = IB_CM_RTU_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->id.state != IB_CM_REP_SENT && @@ -2597,6 +2600,7 @@ static int cm_dreq_handler(struct cm_work *work) } work->cm_event.private_data = &dreq_msg->private_data; + work->cm_event.private_data_len = IB_CM_DREQ_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->local_qpn != cm_dreq_get_remote_qpn(dreq_msg)) @@ -2671,6 +2675,7 @@ static int cm_drep_handler(struct cm_work *work) return -EINVAL; work->cm_event.private_data = &drep_msg->private_data; + work->cm_event.private_data_len = IB_CM_DREP_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->id.state != IB_CM_DREQ_SENT && @@ -2770,6 +2775,7 @@ static void cm_format_rej_event(struct cm_work *work) param->ari_length = cm_rej_get_reject_info_len(rej_msg); param->reason = __be16_to_cpu(rej_msg->reason); work->cm_event.private_data = &rej_msg->private_data; + work->cm_event.private_data_len = IB_CM_REJ_PRIVATE_DATA_SIZE; } static struct cm_id_private * cm_acquire_rejected_id(struct cm_rej_msg *rej_msg) @@ -2982,6 +2988,7 @@ static int cm_mra_handler(struct cm_work *work) return -EINVAL; work->cm_event.private_data = &mra_msg->private_data; + work->cm_event.private_data_len = IB_CM_MRA_PRIVATE_DATA_SIZE; work->cm_event.param.mra_rcvd.service_timeout = cm_mra_get_service_timeout(mra_msg); timeout = cm_convert_to_ms(cm_mra_get_service_timeout(mra_msg)) + @@ -3214,6 +3221,7 @@ static int cm_lap_handler(struct cm_work *work) param->alternate_path = &work->path[0]; cm_format_path_from_lap(cm_id_priv, param->alternate_path, lap_msg); work->cm_event.private_data = &lap_msg->private_data; + work->cm_event.private_data_len = IB_CM_LAP_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->id.state != IB_CM_ESTABLISHED) @@ -3367,6 +3375,7 @@ static int cm_apr_handler(struct cm_work *work) work->cm_event.param.apr_rcvd.apr_info = &apr_msg->info; work->cm_event.param.apr_rcvd.info_len = apr_msg->info_length; work->cm_event.private_data = &apr_msg->private_data; + work->cm_event.private_data_len = IB_CM_APR_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->id.state != IB_CM_ESTABLISHED || @@ -3515,6 +3524,7 @@ static void cm_format_sidr_req_event(struct cm_work *work, param->port = work->port->port_num; param->sgid_attr = rx_cm_id->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &sidr_req_msg->private_data; + work->cm_event.private_data_len = IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE; } static int cm_sidr_req_handler(struct cm_work *work) @@ -3664,6 +3674,7 @@ static void cm_format_sidr_rep_event(struct cm_work *work, param->info_len = sidr_rep_msg->info_length; param->sgid_attr = cm_id_priv->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &sidr_rep_msg->private_data; + work->cm_event.private_data_len = IB_CM_SIDR_REP_PRIVATE_DATA_SIZE; } static int cm_sidr_rep_handler(struct cm_work *work) diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index b01a8a8d4de9..b476e0e27ec9 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -254,6 +254,7 @@ struct ib_cm_event { } param; void *private_data; + u8 private_data_len; }; #define CM_REQ_ATTR_ID cpu_to_be16(0x0010) From patchwork Thu Dec 12 09:37:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287703 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3DBCC14E3 for ; Thu, 12 Dec 2019 09:39:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 133482465E for ; Thu, 12 Dec 2019 09:39:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143541; bh=cBF5EzpRLP8zba3+uMC181Ty7ovdm1c/rDN73Kw60aE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=obmsATkDCg2tU4YoPcq0G7B0XZ/nqWviuZlUSN0RxgzBY5K0FX4BT3Ks6pn7b+BDp yO2wAfXM2RogmTv//4kEJpSZ2jLBQWtv6yhV2BL+2+C4Ky+JD0avqVd8noXL7eFpRZ GdICT/OzL+NwDh1baUL3kODg63yzIiIpbSfekqng= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728482AbfLLJjA (ORCPT ); Thu, 12 Dec 2019 04:39:00 -0500 Received: from mail.kernel.org ([198.145.29.99]:39058 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728391AbfLLJi7 (ORCPT ); Thu, 12 Dec 2019 04:38:59 -0500 Received: from localhost (unknown [193.47.165.251]) (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 D084622527; Thu, 12 Dec 2019 09:38:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143539; bh=cBF5EzpRLP8zba3+uMC181Ty7ovdm1c/rDN73Kw60aE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TqohTxJCrHnxDLav4E+mXF4HmmEq6ofSuBSY/oRiFXca19pS9rTdfCOCzqD2kwRaC m0Jx2cb3TH7BoUbz6fq6htUmVgaBbqbwI3Rj9lRfY1zGdLukX56+wZRQJ2ldPkgXX2 nsya7Lv8o6VSRvxzdcoRhfZpBTs+rTNs9pTMnUjI= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 02/48] RDMA/srpt: Use private_data_len instead of hardcoded value Date: Thu, 12 Dec 2019 11:37:44 +0200 Message-Id: <20191212093830.316934-3-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Reuse recently introduced private_data_len to get IBTA REJ message private data size. Reviewed-by: Bart Van Assche Signed-off-by: Leon Romanovsky --- drivers/infiniband/ulp/srpt/ib_srpt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c index 23c782e3d49a..a0dd17f90861 100644 --- a/drivers/infiniband/ulp/srpt/ib_srpt.c +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c @@ -2648,7 +2648,7 @@ static int srpt_cm_handler(struct ib_cm_id *cm_id, case IB_CM_REJ_RECEIVED: srpt_cm_rej_recv(ch, event->param.rej_rcvd.reason, event->private_data, - IB_CM_REJ_PRIVATE_DATA_SIZE); + event->private_data_len); break; case IB_CM_RTU_RECEIVED: case IB_CM_USER_ESTABLISHED: From patchwork Thu Dec 12 09:37:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287695 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 96105138C for ; Thu, 12 Dec 2019 09:38:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6B0B324654 for ; Thu, 12 Dec 2019 09:38:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143528; bh=KgjoelqVhEOaIDgNkKTIDlSDroSND8RxZdzw6cH0C4E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=xtTjaiqIyVHyE4jvate5oma9s8Xs11ngJcKjuoVkh8Je9OL80ZPG5KY5T8Av1kSSw WaiN09+vtv5qK7sz1UoCD5qJ1vG7JG0Qrc5ecuAdi5/13mApeVjdpzX+fSXlJyHeDn IA4qe87NuSee59/VFnu2w/YzwGGwgtkZh3jyFFyg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728348AbfLLJir (ORCPT ); Thu, 12 Dec 2019 04:38:47 -0500 Received: from mail.kernel.org ([198.145.29.99]:38548 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728329AbfLLJir (ORCPT ); Thu, 12 Dec 2019 04:38:47 -0500 Received: from localhost (unknown [193.47.165.251]) (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 4642322527; Thu, 12 Dec 2019 09:38:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143526; bh=KgjoelqVhEOaIDgNkKTIDlSDroSND8RxZdzw6cH0C4E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YFuK5/UIWc8e6B5MtVUqL+9kquyZJRnFGm8ryg8m3VDR6haFBkj8G93iNnGG3oxu4 m1JTNdDBHUgaCywXtBjDCKfrNWLBKf9lKVt4BJeltjHMqH4zPktTQVzXfK4SnidwsH lpNvGnUz2AhHNVwBzb45awO3d6YGzynpEMzlGCDg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 03/48] RDMA/ucma: Mask QPN to be 24 bits according to IBTA Date: Thu, 12 Dec 2019 11:37:45 +0200 Message-Id: <20191212093830.316934-4-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky IBTA declares QPN as 24bits, mask input to ensure that kernel doesn't get higher bits and ensure by adding WANR_ONCE() that other CM users do the same. Fixes: 75216638572f ("RDMA/cma: Export rdma cm interface to userspace") Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 5 ++++- drivers/infiniband/core/ucma.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index c341a68b6f97..efa2d329da30 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2102,7 +2102,10 @@ int ib_send_cm_rep(struct ib_cm_id *cm_id, cm_id_priv->initiator_depth = param->initiator_depth; cm_id_priv->responder_resources = param->responder_resources; cm_id_priv->rq_psn = cm_rep_get_starting_psn(rep_msg); - cm_id_priv->local_qpn = cpu_to_be32(param->qp_num & 0xFFFFFF); + WARN_ONCE(param->qp_num & 0xFF000000, + "IBTA declares QPN to be 24 bits, but it is 0x%X\n", + param->qp_num); + cm_id_priv->local_qpn = cpu_to_be32(param->qp_num); out: spin_unlock_irqrestore(&cm_id_priv->lock, flags); return ret; diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c index 0274e9b704be..57e68491a2fd 100644 --- a/drivers/infiniband/core/ucma.c +++ b/drivers/infiniband/core/ucma.c @@ -1045,7 +1045,7 @@ static void ucma_copy_conn_param(struct rdma_cm_id *id, dst->retry_count = src->retry_count; dst->rnr_retry_count = src->rnr_retry_count; dst->srq = src->srq; - dst->qp_num = src->qp_num; + dst->qp_num = src->qp_num & 0xFFFFFF; dst->qkey = (id->route.addr.src_addr.ss_family == AF_IB) ? src->qkey : 0; } From patchwork Thu Dec 12 09:37:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287699 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 670DA14E3 for ; Thu, 12 Dec 2019 09:38:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3C2CE24658 for ; Thu, 12 Dec 2019 09:38:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143537; bh=isWG08aPpLtMetL3wpIGsC/lLXgv4w1eyMK8B++ELhI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=rIZOXqndXIwpxzRfWZyb7geAUxNmip8jHPFlliVEUhMeWoPVevvP/vHabT52wGDGd 13fkbSxLS9glfL8UxjRmZwj9P0t4z3eDpqI0WCvW+a61e63uKIhZCFv5pss1jCVzHy hmzDuBwm/ovKi0yEBIbai6forDg73+qinaG9bAPA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728329AbfLLJi4 (ORCPT ); Thu, 12 Dec 2019 04:38:56 -0500 Received: from mail.kernel.org ([198.145.29.99]:38688 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728391AbfLLJiu (ORCPT ); Thu, 12 Dec 2019 04:38:50 -0500 Received: from localhost (unknown [193.47.165.251]) (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 6ADC72467A; Thu, 12 Dec 2019 09:38:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143530; bh=isWG08aPpLtMetL3wpIGsC/lLXgv4w1eyMK8B++ELhI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ToJSHS8MuqhIivxjEActRn05XclbQYUpRNyOi3RsnyUYdJ/hx3DuCXeNqhwBgq56I PvD8Y8h5iviLJQmDN+3OU0ROdfjqZBBvoigvAPeYZgZu/PCXOeS90kJF36sHWSgoQK QvewiKOOA7C5ljRphvuTkh8F6473SKsmNxAfxESI= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 04/48] RDMA/cm: Add SET/GET implementations to hide IBA wire format Date: Thu, 12 Dec 2019 11:37:46 +0200 Message-Id: <20191212093830.316934-5-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky There is no separation between RDMA-CM wire format as it is declared in IBTA and kernel logic which implements needed support. Such situation causes to many mistakes in conversion between big-endian (wire format) and CPU format used by kernel. It also mixes RDMA core code with combination of uXX and beXX variables. The idea that all accesses to IBA definitions will go through special GET/SET macros to ensure that no conversion mistakes are done. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm_msgs.h | 6 +- include/rdma/iba.h | 138 ++++++++++++++++++++++++++++++ 2 files changed, 139 insertions(+), 5 deletions(-) create mode 100644 include/rdma/iba.h diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 92d7260ac913..9bc468833831 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -8,14 +8,10 @@ #ifndef CM_MSGS_H #define CM_MSGS_H +#include #include #include -/* - * Parameters to routines below should be in network-byte order, and values - * are returned in network-byte order. - */ - #define IB_CM_CLASS_VERSION 2 /* IB specification 1.2 */ struct cm_req_msg { diff --git a/include/rdma/iba.h b/include/rdma/iba.h new file mode 100644 index 000000000000..a77cc89f9f3f --- /dev/null +++ b/include/rdma/iba.h @@ -0,0 +1,138 @@ +/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ +/* + * Copyright (c) 2019, Mellanox Technologies inc. All rights reserved. + */ +#ifndef _IBA_DEFS_H_ +#define _IBA_DEFS_H_ + +#include +#include +#include + +static inline u32 _iba_get8(const u8 *ptr) +{ + return *ptr; +} + +static inline void _iba_set8(u8 *ptr, u32 mask, u32 prep_value) +{ + *ptr = (*ptr & ~mask) | prep_value; +} + +static inline u16 _iba_get16(const __be16 *ptr) +{ + return be16_to_cpu(*ptr); +} + +static inline void _iba_set16(__be16 *ptr, u16 mask, u16 prep_value) +{ + *ptr = cpu_to_be16((be16_to_cpu(*ptr) & ~mask) | prep_value); +} + +static inline u32 _iba_get32(const __be32 *ptr) +{ + return be32_to_cpu(*ptr); +} + +static inline void _iba_set32(__be32 *ptr, u32 mask, u32 prep_value) +{ + *ptr = cpu_to_be32((be32_to_cpu(*ptr) & ~mask) | prep_value); +} + +static inline u64 _iba_get64(const __be64 *ptr) +{ + /* + * The mads are constructed so that 32 bit and smaller are naturally + * aligned, everything larger has a max alignment of 4 bytes. + */ + return be64_to_cpu(get_unaligned(ptr)); +} + +static inline void _iba_set64(__be64 *ptr, u64 mask, u64 prep_value) +{ + put_unaligned(cpu_to_be64((_iba_get64(ptr) & ~mask) | prep_value), ptr); +} + +#define _IBA_SET(field_struct, field_offset, field_mask, mask_width, ptr, \ + value) \ + ({ \ + field_struct *_ptr = ptr; \ + _iba_set##mask_width((void *)_ptr + (field_offset), \ + field_mask, \ + FIELD_PREP(field_mask, value)); \ + }) +#define IBA_SET(field, ptr, value) _IBA_SET(field, ptr, value) + +#define _IBA_SET_MEM(field_struct, field_offset, byte_size, ptr, in, bytes) \ + ({ \ + WARN_ON(bytes > byte_size); \ + if (in && bytes) { \ + field_struct *_ptr = ptr; \ + memcpy((void *)_ptr + (field_offset), in, bytes); \ + } \ + }) +#define IBA_SET_MEM(field, ptr, in, bytes) _IBA_SET_MEM(field, ptr, in, bytes) + +#define _IBA_GET(field_struct, field_offset, field_mask, mask_width, ptr) \ + ({ \ + const field_struct *_ptr = ptr; \ + (u##mask_width) FIELD_GET( \ + field_mask, _iba_get##mask_width((const void *)_ptr + \ + (field_offset))); \ + }) +#define IBA_GET(field, ptr) _IBA_GET(field, ptr) + +#define _IBA_GET_MEM(field_struct, field_offset, byte_size, ptr, out, bytes) \ + ({ \ + WARN_ON(bytes > byte_size); \ + if (out && bytes) { \ + const field_struct *_ptr = ptr; \ + memcpy(out, (void *)_ptr + (field_offset), bytes); \ + } \ + }) +#define IBA_GET_MEM(field, ptr, out, bytes) _IBA_GET_MEM(field, ptr, out, bytes) + +/* + * The generated list becomes the parameters to the macros, the order is: + * - struct this applies to + * - starting offset of the max + * - GENMASK or GENMASK_ULL in CPU order + * - The width of data the mask operations should work on, in bits + */ + +/* + * Extraction using a tabular description like table 106. bit_offset is from + * the Byte[Bit] notation. + */ +#define IBA_FIELD_BLOC(field_struct, byte_offset, bit_offset, num_bits) \ + field_struct, byte_offset, \ + GENMASK(7 - (bit_offset), 7 - (bit_offset) - (num_bits - 1)), \ + 8 +#define IBA_FIELD8_LOC(field_struct, byte_offset, num_bits) \ + IBA_FIELD_BLOC(field_struct, byte_offset, 0, num_bits) + +#define IBA_FIELD16_LOC(field_struct, byte_offset, num_bits) \ + field_struct, (byte_offset)&0xFFFE, \ + GENMASK(15 - (((byte_offset) % 2) * 8), \ + 15 - (((byte_offset) % 2) * 8) - (num_bits - 1)), \ + 16 + +#define IBA_FIELD32_LOC(field_struct, byte_offset, num_bits) \ + field_struct, (byte_offset)&0xFFFC, \ + GENMASK(31 - (((byte_offset) % 4) * 8), \ + 31 - (((byte_offset) % 4) * 8) - (num_bits - 1)), \ + 32 + +#define IBA_FIELD64_LOC(field_struct, byte_offset, num_bits) \ + field_struct, (byte_offset)&0xFFF8, \ + GENMASK_ULL(63 - (((byte_offset) % 8) * 8), \ + 63 - (((byte_offset) % 8) * 8) - (num_bits - 1)), \ + 64 +/* + * In IBTA spec, everything that is more than 64bits is multiple + * of bytes without leftover bits. + */ +#define IBA_FIELD_MLOC(field_struct, byte_offset, num_bits) \ + field_struct, (byte_offset)&0xFFFC, (num_bits / 8) + +#endif /* _IBA_DEFS_H_ */ From patchwork Thu Dec 12 09:37:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287697 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 77EBB1593 for ; Thu, 12 Dec 2019 09:38:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 42ED524679 for ; Thu, 12 Dec 2019 09:38:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143536; bh=Z7sAxmI/gCKYL9O+Sh07OeB9+39/2BkV0zdmdmFLjBA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=fwmXCDGCcb7/Hb9MWS76syyp5FSgbg2fdj9Wsa1pUVO5ooegTakR3D4yG07xzwkUU xH6uKOPj4YpTpIeVtSvjPjQGWmtV0yR598VOv1BBBFA1DVgntAXloGyrB7EDqKvo0S /IVTdD3ALAbT4zjD1l91h52KzYO6tJ3hRStm0XXM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728410AbfLLJiz (ORCPT ); Thu, 12 Dec 2019 04:38:55 -0500 Received: from mail.kernel.org ([198.145.29.99]:38834 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728561AbfLLJiy (ORCPT ); Thu, 12 Dec 2019 04:38:54 -0500 Received: from localhost (unknown [193.47.165.251]) (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 8CCC722527; Thu, 12 Dec 2019 09:38:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143533; bh=Z7sAxmI/gCKYL9O+Sh07OeB9+39/2BkV0zdmdmFLjBA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VY3h2ZS6syYvRieEEO8YP0EFijJe2efnBQ2i7Mt9n1LSUUfxGVhiBsoRve8ftgMpW TExivww+6STyOZPyYgLqVwoRHmRuPa/XwQjaVGftF+nnAcMT9XgovHRZT4li8+zFOm 99uuBxWpZ85o87g7QJjUGY9RFjcf8OGKaMyXHdcs= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 05/48] RDMA/cm: Request For Communication (REQ) message definitions Date: Thu, 12 Dec 2019 11:37:47 +0200 Message-Id: <20191212093830.316934-6-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add Request For Communication (REQ) message definitions as it is written in IBTA release 1.3 volume 1. There are three types of definitions: 1. Regular ones with offset and mask, they will be accessible by IBA_GET()/IBA_SET(). 2. GIDs and private data will be accessible by IBA_GET_MEM()/IBA_SET_MEM(). Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 +- drivers/infiniband/core/cm_msgs.h | 4 +- drivers/infiniband/core/cma.c | 3 +- include/rdma/ib_cm.h | 1 - include/rdma/ibta_vol1_c12.h | 91 +++++++++++++++++++++++++++++++ 5 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 include/rdma/ibta_vol1_c12.h diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index efa2d329da30..3c0cbdc748ac 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1368,7 +1368,7 @@ static int cm_validate_req_param(struct ib_cm_req_param *param) return -EINVAL; if (param->private_data && - param->private_data_len > IB_CM_REQ_PRIVATE_DATA_SIZE) + param->private_data_len > CM_REQ_PRIVATE_DATA_SIZE) return -EINVAL; if (param->alternate_path && @@ -1681,7 +1681,7 @@ static void cm_format_req_event(struct cm_work *work, param->srq = cm_req_get_srq(req_msg); param->ppath_sgid_attr = cm_id_priv->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &req_msg->private_data; - work->cm_event.private_data_len = IB_CM_REQ_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_REQ_PRIVATE_DATA_SIZE; } static void cm_process_work(struct cm_id_private *cm_id_priv, diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 9bc468833831..9e50da044c43 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -8,7 +8,7 @@ #ifndef CM_MSGS_H #define CM_MSGS_H -#include +#include #include #include @@ -66,7 +66,7 @@ struct cm_req_msg { /* local ACK timeout:5, rsvd:3 */ u8 alt_offset139; - u32 private_data[IB_CM_REQ_PRIVATE_DATA_SIZE / sizeof(u32)]; + u32 private_data[CM_REQ_PRIVATE_DATA_SIZE / sizeof(u32)]; } __packed; diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 25f2b70fd8ef..02490a3c11f3 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -36,6 +36,7 @@ #include "core_priv.h" #include "cma_priv.h" +#include "cm_msgs.h" MODULE_AUTHOR("Sean Hefty"); MODULE_DESCRIPTION("Generic RDMA CM Agent"); @@ -2085,7 +2086,7 @@ static void cma_set_req_event_data(struct rdma_cm_event *event, void *private_data, int offset) { event->param.conn.private_data = private_data + offset; - event->param.conn.private_data_len = IB_CM_REQ_PRIVATE_DATA_SIZE - offset; + event->param.conn.private_data_len = CM_REQ_PRIVATE_DATA_SIZE - offset; event->param.conn.responder_resources = req_data->responder_resources; event->param.conn.initiator_depth = req_data->initiator_depth; event->param.conn.flow_control = req_data->flow_control; diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index b476e0e27ec9..956256b2fc5d 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,7 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_REQ_PRIVATE_DATA_SIZE = 92, IB_CM_MRA_PRIVATE_DATA_SIZE = 222, IB_CM_REJ_PRIVATE_DATA_SIZE = 148, IB_CM_REP_PRIVATE_DATA_SIZE = 196, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h new file mode 100644 index 000000000000..2db7f736379e --- /dev/null +++ b/include/rdma/ibta_vol1_c12.h @@ -0,0 +1,91 @@ +/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ +/* + * Copyright (c) 2019, Mellanox Technologies inc. All rights reserved. + * + * This file is IBTA volume 1, chapter 12 declarations: + * * CHAPTER 12: C OMMUNICATION MANAGEMENT + */ +#ifndef _IBTA_VOL1_C12_H_ +#define _IBTA_VOL1_C12_H_ + +#include + +#define CM_FIELD_BLOC(field_struct, byte_offset, bits_offset, width) \ + IBA_FIELD_BLOC(field_struct, \ + (byte_offset + sizeof(struct ib_mad_hdr)), bits_offset, \ + width) +#define CM_FIELD8_LOC(field_struct, byte_offset, width) \ + IBA_FIELD8_LOC(field_struct, \ + (byte_offset + sizeof(struct ib_mad_hdr)), width) +#define CM_FIELD16_LOC(field_struct, byte_offset, width) \ + IBA_FIELD16_LOC(field_struct, \ + (byte_offset + sizeof(struct ib_mad_hdr)), width) +#define CM_FIELD32_LOC(field_struct, byte_offset, width) \ + IBA_FIELD32_LOC(field_struct, \ + (byte_offset + sizeof(struct ib_mad_hdr)), width) +#define CM_FIELD64_LOC(field_struct, byte_offset, width) \ + IBA_FIELD64_LOC(field_struct, \ + (byte_offset + sizeof(struct ib_mad_hdr)), width) +#define CM_FIELD_MLOC(field_struct, byte_offset, width) \ + IBA_FIELD_MLOC(field_struct, \ + (byte_offset + sizeof(struct ib_mad_hdr)), width) + +/* Table 106 REQ Message Contents */ +#define CM_REQ_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_req_msg, 0, 32) +#define CM_REQ_SERVICE_ID CM_FIELD64_LOC(struct cm_req_msg, 8, 64) +#define CM_REQ_LOCAL_CA_GUID CM_FIELD64_LOC(struct cm_req_msg, 16, 64) +#define CM_REQ_LOCAL_Q_KEY CM_FIELD32_LOC(struct cm_req_msg, 28, 32) +#define CM_REQ_LOCAL_QPN CM_FIELD32_LOC(struct cm_req_msg, 32, 24) +#define CM_REQ_RESPONDED_RESOURCES CM_FIELD8_LOC(struct cm_req_msg, 35, 8) +#define CM_REQ_LOCAL_EECN CM_FIELD32_LOC(struct cm_req_msg, 36, 24) +#define CM_REQ_INITIATOR_DEPTH CM_FIELD8_LOC(struct cm_req_msg, 39, 8) +#define CM_REQ_REMOTE_EECN CM_FIELD32_LOC(struct cm_req_msg, 40, 24) +#define CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT \ + CM_FIELD8_LOC(struct cm_req_msg, 43, 5) +#define CM_REQ_TRANSPORT_SERVICE_TYPE CM_FIELD_BLOC(struct cm_req_msg, 43, 5, 2) +#define CM_REQ_END_TO_END_FLOW_CONTROL \ + CM_FIELD_BLOC(struct cm_req_msg, 43, 7, 1) +#define CM_REQ_STARTING_PSN CM_FIELD32_LOC(struct cm_req_msg, 44, 24) +#define CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT CM_FIELD8_LOC(struct cm_req_msg, 47, 5) +#define CM_REQ_RETRY_COUNT CM_FIELD_BLOC(struct cm_req_msg, 47, 5, 3) +#define CM_REQ_PARTITION_KEY CM_FIELD16_LOC(struct cm_req_msg, 48, 16) +#define CM_REQ_PATH_PACKET_PAYLOAD_MTU CM_FIELD8_LOC(struct cm_req_msg, 50, 4) +#define CM_REQ_RDC_EXISTS CM_FIELD_BLOC(struct cm_req_msg, 50, 4, 1) +#define CM_REQ_RNR_RETRY_COUNT CM_FIELD_BLOC(struct cm_req_msg, 50, 5, 3) +#define CM_REQ_MAX_CM_RETRIES CM_FIELD8_LOC(struct cm_req_msg, 51, 4) +#define CM_REQ_SRQ CM_FIELD_BLOC(struct cm_req_msg, 51, 4, 1) +#define CM_REQ_EXTENDED_TRANSPORT_TYPE \ + CM_FIELD_BLOC(struct cm_req_msg, 51, 5, 3) +#define CM_REQ_PRIMARY_LOCAL_PORT_LID CM_FIELD16_LOC(struct cm_req_msg, 52, 16) +#define CM_REQ_PRIMARY_REMOTE_PORT_LID CM_FIELD16_LOC(struct cm_req_msg, 54, 16) +#define CM_REQ_PRIMARY_LOCAL_PORT_GID CM_FIELD_MLOC(struct cm_req_msg, 56, 128) +#define CM_REQ_PRIMARY_REMOTE_PORT_GID CM_FIELD_MLOC(struct cm_req_msg, 72, 128) +#define CM_REQ_PRIMARY_FLOW_LABEL CM_FIELD32_LOC(struct cm_req_msg, 88, 20) +#define CM_REQ_PRIMARY_PACKET_RATE CM_FIELD_BLOC(struct cm_req_msg, 91, 2, 2) +#define CM_REQ_PRIMARY_TRAFFIC_CLASS CM_FIELD8_LOC(struct cm_req_msg, 92, 8) +#define CM_REQ_PRIMARY_HOP_LIMIT CM_FIELD8_LOC(struct cm_req_msg, 93, 8) +#define CM_REQ_PRIMARY_SL CM_FIELD8_LOC(struct cm_req_msg, 94, 4) +#define CM_REQ_PRIMARY_SUBNET_LOCAL CM_FIELD_BLOC(struct cm_req_msg, 94, 4, 1) +#define CM_REQ_PRIMARY_LOCAL_ACK_TIMEOUT CM_FIELD8_LOC(struct cm_req_msg, 95, 5) +#define CM_REQ_ALTERNATE_LOCAL_PORT_LID \ + CM_FIELD16_LOC(struct cm_req_msg, 96, 16) +#define CM_REQ_ALTERNATE_REMOTE_PORT_LID \ + CM_FIELD16_LOC(struct cm_req_msg, 98, 16) +#define CM_REQ_ALTERNATE_LOCAL_PORT_GID \ + CM_FIELD_MLOC(struct cm_req_msg, 100, 128) +#define CM_REQ_ALTERNATE_REMOTE_PORT_GID \ + CM_FIELD_MLOC(struct cm_req_msg, 116, 128) +#define CM_REQ_ALTERNATE_FLOW_LABEL CM_FIELD32_LOC(struct cm_req_msg, 132, 20) +#define CM_REQ_ALTERNATE_PACKET_RATE CM_FIELD_BLOC(struct cm_req_msg, 135, 2, 6) +#define CM_REQ_ALTERNATE_TRAFFIC_CLASS CM_FIELD8_LOC(struct cm_req_msg, 136, 8) +#define CM_REQ_ALTERNATE_HOP_LIMIT CM_FIELD8_LOC(struct cm_req_msg, 137, 8) +#define CM_REQ_ALTERNATE_SL CM_FIELD8_LOC(struct cm_req_msg, 138, 4) +#define CM_REQ_ALTERNATE_SUBNET_LOCAL \ + CM_FIELD_BLOC(struct cm_req_msg, 138, 4, 1) +#define CM_REQ_ALTERNATE_LOCAL_ACK_TIMEOUT \ + CM_FIELD8_LOC(struct cm_req_msg, 139, 5) +#define CM_REQ_SAP_SUPPORTED CM_FIELD_BLOC(struct cm_req_msg, 139, 5, 1) +#define CM_REQ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_req_msg, 140, 736) +#define CM_REQ_PRIVATE_DATA_SIZE 92 + +#endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287701 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BD079138C for ; Thu, 12 Dec 2019 09:38:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9C0572467B for ; Thu, 12 Dec 2019 09:38:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143538; bh=RJ8ovtWVIjgYEChcnekyOvkAKNJp82pTOXXoMemOO7o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=GrUnJv8Bht0QKwzNgx5RD2eUUeCak3Jx70fynjOhC36kMEa4vC6L+A8YFwlOpWf0F FjQCKq2cKtMdziylyyq2XbW1tOdE4v/9+bLoI1SX89n1o0EplIDK0kNalgp+6ryfrW Ih6HxzmV94HXbMG4wVk68HfSjPrm61Nq97Qj440s= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728431AbfLLJi5 (ORCPT ); Thu, 12 Dec 2019 04:38:57 -0500 Received: from mail.kernel.org ([198.145.29.99]:38944 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728391AbfLLJi5 (ORCPT ); Thu, 12 Dec 2019 04:38:57 -0500 Received: from localhost (unknown [193.47.165.251]) (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 AE32424654; Thu, 12 Dec 2019 09:38:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143536; bh=RJ8ovtWVIjgYEChcnekyOvkAKNJp82pTOXXoMemOO7o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rr3dXomSwpro26vSfbFCzsjCyYW+PPWp7O7lzLorfaWpTkxLKAGet1powI/+eLh9d 1sbF9WhSNdN1xzl5K2WrVMkYu6Ulfy88Y1ZwoPCEsfN5dmv1KGRnSrM7EQML8ABoth FstT2keknYSWi+HFzcq/ntw1lOXpa1wD9gN7CE5Y= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 06/48] RDMA/cm: Message Receipt Acknowledgment (MRA) message definitions Date: Thu, 12 Dec 2019 11:37:48 +0200 Message-Id: <20191212093830.316934-7-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add Message Receipt Acknowledgment (MRA) definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 2 +- include/rdma/ib_cm.h | 1 - include/rdma/ibta_vol1_c12.h | 8 ++++++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 3c0cbdc748ac..5a0ee9e46ff9 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2897,7 +2897,7 @@ int ib_send_cm_mra(struct ib_cm_id *cm_id, unsigned long flags; int ret; - if (private_data && private_data_len > IB_CM_MRA_PRIVATE_DATA_SIZE) + if (private_data && private_data_len > CM_MRA_PRIVATE_DATA_SIZE) return -EINVAL; data = cm_copy_private_data(private_data, private_data_len); @@ -2991,7 +2991,7 @@ static int cm_mra_handler(struct cm_work *work) return -EINVAL; work->cm_event.private_data = &mra_msg->private_data; - work->cm_event.private_data_len = IB_CM_MRA_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_MRA_PRIVATE_DATA_SIZE; work->cm_event.param.mra_rcvd.service_timeout = cm_mra_get_service_timeout(mra_msg); timeout = cm_convert_to_ms(cm_mra_get_service_timeout(mra_msg)) + diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 9e50da044c43..888209ec058d 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -391,7 +391,7 @@ enum cm_msg_response { /* service timeout:5, rsvd:3 */ u8 offset9; - u8 private_data[IB_CM_MRA_PRIVATE_DATA_SIZE]; + u8 private_data[CM_MRA_PRIVATE_DATA_SIZE]; } __packed; diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 956256b2fc5d..6d73316be651 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,7 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_MRA_PRIVATE_DATA_SIZE = 222, IB_CM_REJ_PRIVATE_DATA_SIZE = 148, IB_CM_REP_PRIVATE_DATA_SIZE = 196, IB_CM_RTU_PRIVATE_DATA_SIZE = 224, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index 2db7f736379e..52dbc80a0d1b 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -88,4 +88,12 @@ #define CM_REQ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_req_msg, 140, 736) #define CM_REQ_PRIVATE_DATA_SIZE 92 +/* Table 107 MRA Message Contents */ +#define CM_MRA_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_mra_msg, 0, 32) +#define CM_MRA_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_mra_msg, 4, 32) +#define CM_MRA_MESSAGE_MRAED CM_FIELD8_LOC(struct cm_mra_msg, 8, 2) +#define CM_MRA_SERVICE_TIMEOUT CM_FIELD8_LOC(struct cm_mra_msg, 9, 5) +#define CM_MRA_PRIVATE_DATA CM_FIELD_MLOC(struct cm_mra_msg, 10, 1776) +#define CM_MRA_PRIVATE_DATA_SIZE 222 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287711 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E0E18138C for ; Thu, 12 Dec 2019 09:39:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BFFA72465A for ; Thu, 12 Dec 2019 09:39:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143553; bh=4oSh45tk7GMq9y7eBVzjTgs4Wa2Ozwau6RsA6aDNDi0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=0Ngr1AVW44tt8uRWddKi3Zk+2YxmI97xNzut9Ih3Rfk6ePcJK5ZZz7Cg6k1CbavMT 8kIqvA+BgUNGaVhIWUlge8A7ZdU5RWl8pAij96JFEIqyOfQX87YGvujYh9/fjn0xck OudBTtEhaSNxkrSnYAqrnz//RRDuhsngP+MeAFuo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728495AbfLLJjN (ORCPT ); Thu, 12 Dec 2019 04:39:13 -0500 Received: from mail.kernel.org ([198.145.29.99]:39402 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728427AbfLLJjN (ORCPT ); Thu, 12 Dec 2019 04:39:13 -0500 Received: from localhost (unknown [193.47.165.251]) (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 64FFD24658; Thu, 12 Dec 2019 09:39:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143552; bh=4oSh45tk7GMq9y7eBVzjTgs4Wa2Ozwau6RsA6aDNDi0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iErSsLikqSsyapbUHe+DQIvbBZmFk9JIZOy0/IBVuxOGXPWyLXDUQWY1gMTxP/zMP ZGEU6kmeILEccP8a+WnhMfo23cHkWmoOTXRlP9tGaqR+NkFQcWzPj77KoSKAzWlKIw v5YUpuO0jRXwyEXZlF8x47Ox/TvndS/Lsj7JoGfY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 07/48] RDMA/cm: Reject (REJ) message definitions Date: Thu, 12 Dec 2019 11:37:49 +0200 Message-Id: <20191212093830.316934-8-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add Reject (REJ) definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 4 ++-- drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_cm.h | 2 -- include/rdma/ibta_vol1_c12.h | 11 +++++++++++ 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 5a0ee9e46ff9..f19c817ac99f 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2716,8 +2716,8 @@ int ib_send_cm_rej(struct ib_cm_id *cm_id, unsigned long flags; int ret; - if ((private_data && private_data_len > IB_CM_REJ_PRIVATE_DATA_SIZE) || - (ari && ari_length > IB_CM_REJ_ARI_LENGTH)) + if ((private_data && private_data_len > CM_REJ_PRIVATE_DATA_SIZE) || + (ari && ari_length > CM_REJ_ARI_SIZE)) return -EINVAL; cm_id_priv = container_of(cm_id, struct cm_id_private, id); @@ -2778,7 +2778,7 @@ static void cm_format_rej_event(struct cm_work *work) param->ari_length = cm_rej_get_reject_info_len(rej_msg); param->reason = __be16_to_cpu(rej_msg->reason); work->cm_event.private_data = &rej_msg->private_data; - work->cm_event.private_data_len = IB_CM_REJ_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_REJ_PRIVATE_DATA_SIZE; } static struct cm_id_private * cm_acquire_rejected_id(struct cm_rej_msg *rej_msg) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 888209ec058d..48c97ec4ae13 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -427,9 +427,9 @@ struct cm_rej_msg { /* reject info length:7, rsvd:1. */ u8 offset9; __be16 reason; - u8 ari[IB_CM_REJ_ARI_LENGTH]; + u8 ari[CM_REJ_ARI_SIZE]; - u8 private_data[IB_CM_REJ_PRIVATE_DATA_SIZE]; + u8 private_data[CM_REJ_PRIVATE_DATA_SIZE]; } __packed; diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 02490a3c11f3..8495ad001e92 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -1951,7 +1951,7 @@ static int cma_ib_handler(struct ib_cm_id *cm_id, event.status = ib_event->param.rej_rcvd.reason; event.event = RDMA_CM_EVENT_REJECTED; event.param.conn.private_data = ib_event->private_data; - event.param.conn.private_data_len = IB_CM_REJ_PRIVATE_DATA_SIZE; + event.param.conn.private_data_len = CM_REJ_PRIVATE_DATA_SIZE; break; default: pr_err("RDMA CMA: unexpected IB CM event: %d\n", diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 6d73316be651..a5b9bd49041b 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,12 +65,10 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_REJ_PRIVATE_DATA_SIZE = 148, IB_CM_REP_PRIVATE_DATA_SIZE = 196, IB_CM_RTU_PRIVATE_DATA_SIZE = 224, IB_CM_DREQ_PRIVATE_DATA_SIZE = 220, IB_CM_DREP_PRIVATE_DATA_SIZE = 224, - IB_CM_REJ_ARI_LENGTH = 72, IB_CM_LAP_PRIVATE_DATA_SIZE = 168, IB_CM_APR_PRIVATE_DATA_SIZE = 148, IB_CM_APR_INFO_LENGTH = 72, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index 52dbc80a0d1b..08378eb4d6df 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -96,4 +96,15 @@ #define CM_MRA_PRIVATE_DATA CM_FIELD_MLOC(struct cm_mra_msg, 10, 1776) #define CM_MRA_PRIVATE_DATA_SIZE 222 +/* Table 108 REJ Message Contents */ +#define CM_REJ_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_rej_msg, 0, 32) +#define CM_REJ_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_rej_msg, 4, 32) +#define CM_REJ_MESSAGE_REJECTED CM_FIELD8_LOC(struct cm_rej_msg, 8, 2) +#define CM_REJ_REJECTED_INFO_LENGTH CM_FIELD8_LOC(struct cm_rej_msg, 9, 7) +#define CM_REJ_REASON CM_FIELD16_LOC(struct cm_rej_msg, 10, 16) +#define CM_REJ_ARI CM_FIELD_MLOC(struct cm_rej_msg, 12, 576) +#define CM_REJ_ARI_SIZE 72 +#define CM_REJ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_rej_msg, 84, 1184) +#define CM_REJ_PRIVATE_DATA_SIZE 148 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287705 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D459314E3 for ; Thu, 12 Dec 2019 09:39:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B356224671 for ; Thu, 12 Dec 2019 09:39:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143544; bh=tEpnAuH9ayv0PtHjnpsZNv2gr0idcNkG1PiAPiJS5cw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=uh09uP6O4QOCA1ldNnfKgipmrP6qZ7jNi2uhNf/dq7Wpsm7tskwmHLQ+Ce3ZJC5f5 4mFFn6NSU+BbyTcEBQ6eWpIy8rRCYRPoxWrmsUTr8NJjgJdJvIa8ZVY8ojLyy3tb7i Gj9aSfl/RtqVEjVd5aWtInZR905DVJ7i/nSn9ttU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728415AbfLLJjE (ORCPT ); Thu, 12 Dec 2019 04:39:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:39148 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728391AbfLLJjD (ORCPT ); Thu, 12 Dec 2019 04:39:03 -0500 Received: from localhost (unknown [193.47.165.251]) (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 F00FE24658; Thu, 12 Dec 2019 09:39:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143542; bh=tEpnAuH9ayv0PtHjnpsZNv2gr0idcNkG1PiAPiJS5cw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HugBWU91xn4ZgeRemDOC+e/0KEHHMeJ7/8hBKENS7wjEO/s5GNX+zLJYmugIO+agx PPsNzMc+W3WZRWAZElEf1c7A6CPk31397wZwpa4QwfJMtB+/Vhr/0yMjXYeDSlYT8b knNgrzSwXGoAyajjFtPgVyZTGnn9XXdJdsk4Izv4= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 08/48] RDMA/cm: Reply To Request for communication (REP) definitions Date: Thu, 12 Dec 2019 11:37:50 +0200 Message-Id: <20191212093830.316934-9-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add REP message definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 2 +- drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_cm.h | 1 - include/rdma/ibta_vol1_c12.h | 19 +++++++++++++++++++ 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index f19c817ac99f..ffdca9d1c3f6 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2068,7 +2068,7 @@ int ib_send_cm_rep(struct ib_cm_id *cm_id, int ret; if (param->private_data && - param->private_data_len > IB_CM_REP_PRIVATE_DATA_SIZE) + param->private_data_len > CM_REP_PRIVATE_DATA_SIZE) return -EINVAL; cm_id_priv = container_of(cm_id, struct cm_id_private, id); @@ -2197,7 +2197,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); param->srq = cm_rep_get_srq(rep_msg); work->cm_event.private_data = &rep_msg->private_data; - work->cm_event.private_data_len = IB_CM_REP_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_REP_PRIVATE_DATA_SIZE; } static void cm_dup_rep_handler(struct cm_work *work) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 48c97ec4ae13..b66e9eaf9721 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -474,7 +474,7 @@ struct cm_rep_msg { u8 offset27; __be64 local_ca_guid; - u8 private_data[IB_CM_REP_PRIVATE_DATA_SIZE]; + u8 private_data[CM_REP_PRIVATE_DATA_SIZE]; } __packed; diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 8495ad001e92..ece92889aa88 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -1882,7 +1882,7 @@ static void cma_set_rep_event_data(struct rdma_cm_event *event, void *private_data) { event->param.conn.private_data = private_data; - event->param.conn.private_data_len = IB_CM_REP_PRIVATE_DATA_SIZE; + event->param.conn.private_data_len = CM_REP_PRIVATE_DATA_SIZE; event->param.conn.responder_resources = rep_data->responder_resources; event->param.conn.initiator_depth = rep_data->initiator_depth; event->param.conn.flow_control = rep_data->flow_control; diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index a5b9bd49041b..ebfbf63388de 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,7 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_REP_PRIVATE_DATA_SIZE = 196, IB_CM_RTU_PRIVATE_DATA_SIZE = 224, IB_CM_DREQ_PRIVATE_DATA_SIZE = 220, IB_CM_DREP_PRIVATE_DATA_SIZE = 224, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index 08378eb4d6df..966517ed229d 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -107,4 +107,23 @@ #define CM_REJ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_rej_msg, 84, 1184) #define CM_REJ_PRIVATE_DATA_SIZE 148 +/* Table 110 REP Message Contents */ +#define CM_REP_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_rep_msg, 0, 32) +#define CM_REP_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_rep_msg, 4, 32) +#define CM_REP_LOCAL_Q_KEY CM_FIELD32_LOC(struct cm_rep_msg, 8, 32) +#define CM_REP_LOCAL_QPN CM_FIELD32_LOC(struct cm_rep_msg, 12, 24) +#define CM_REP_LOCAL_EE_CONTEXT_NUMBER CM_FIELD32_LOC(struct cm_rep_msg, 16, 24) +#define CM_REP_STARTING_PSN CM_FIELD32_LOC(struct cm_rep_msg, 20, 24) +#define CM_REP_RESPONDER_RESOURCES CM_FIELD8_LOC(struct cm_rep_msg, 24, 8) +#define CM_REP_INITIATOR_DEPTH CM_FIELD8_LOC(struct cm_rep_msg, 25, 8) +#define CM_REP_TARGET_ACK_DELAY CM_FIELD8_LOC(struct cm_rep_msg, 26, 5) +#define CM_REP_FAILOVER_ACCEPTED CM_FIELD_BLOC(struct cm_rep_msg, 26, 5, 2) +#define CM_REP_END_TO_END_FLOW_CONTROL \ + CM_FIELD_BLOC(struct cm_rep_msg, 26, 7, 1) +#define CM_REP_RNR_RETRY_COUNT CM_FIELD8_LOC(struct cm_rep_msg, 27, 3) +#define CM_REP_SRQ CM_FIELD_BLOC(struct cm_rep_msg, 27, 3, 1) +#define CM_REP_LOCAL_CA_GUID CM_FIELD64_LOC(struct cm_rep_msg, 28, 64) +#define CM_REP_PRIVATE_DATA CM_FIELD_MLOC(struct cm_rep_msg, 36, 1568) +#define CM_REP_PRIVATE_DATA_SIZE 196 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287707 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 98991138C for ; Thu, 12 Dec 2019 09:39:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 76DD022527 for ; Thu, 12 Dec 2019 09:39:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143547; bh=9dpnPKouONJcsK7rILddoiGoJHU5HQ+1FG57ZwYnIfQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=m+YL7GzYdJw/TPgGijUrAzzL9KiVPVl/B3LKceS7M3vMfU6OkmeQ7O5T2PAO6HAmn An8aVFjvl+QC17AZJefg4LQdzENE14V3N2AOZzOVjyq6aT09jNF8i4wlw+4RxkKwjj NRO7MWPuLT/zzugb8sLnvG/YvgbQRfjQGTn0fH40= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728430AbfLLJjH (ORCPT ); Thu, 12 Dec 2019 04:39:07 -0500 Received: from mail.kernel.org ([198.145.29.99]:39228 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728391AbfLLJjG (ORCPT ); Thu, 12 Dec 2019 04:39:06 -0500 Received: from localhost (unknown [193.47.165.251]) (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 1A8A92465A; Thu, 12 Dec 2019 09:39:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143545; bh=9dpnPKouONJcsK7rILddoiGoJHU5HQ+1FG57ZwYnIfQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=z1gIBTuuQaMaF4zNNios4WGAMzpiPllWdMUmCnGxVWIheU9bp4u5kQJPxBhY/rIeq lFsmeF5c2t8qFOmF9NqZ5aQiOOOEVtS9m4yv8o4Zn8CqMOBiBXwGc4FHEHEOaDE4gu fg4eOpv9A0gYmlj1oQoxiUf1duXBxI9gAhj2ENRo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 09/48] RDMA/cm: Ready To Use (RTU) definitions Date: Thu, 12 Dec 2019 11:37:51 +0200 Message-Id: <20191212093830.316934-10-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add RTU message definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 2 +- include/rdma/ib_cm.h | 1 - include/rdma/ibta_vol1_c12.h | 6 ++++++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index ffdca9d1c3f6..73f93e354d8b 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2135,7 +2135,7 @@ int ib_send_cm_rtu(struct ib_cm_id *cm_id, void *data; int ret; - if (private_data && private_data_len > IB_CM_RTU_PRIVATE_DATA_SIZE) + if (private_data && private_data_len > CM_RTU_PRIVATE_DATA_SIZE) return -EINVAL; data = cm_copy_private_data(private_data, private_data_len); @@ -2400,7 +2400,7 @@ static int cm_rtu_handler(struct cm_work *work) return -EINVAL; work->cm_event.private_data = &rtu_msg->private_data; - work->cm_event.private_data_len = IB_CM_RTU_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_RTU_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->id.state != IB_CM_REP_SENT && diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index b66e9eaf9721..d36e90ccaeb7 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -582,7 +582,7 @@ struct cm_rtu_msg { __be32 local_comm_id; __be32 remote_comm_id; - u8 private_data[IB_CM_RTU_PRIVATE_DATA_SIZE]; + u8 private_data[CM_RTU_PRIVATE_DATA_SIZE]; } __packed; diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index ebfbf63388de..34dc12b30399 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,7 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_RTU_PRIVATE_DATA_SIZE = 224, IB_CM_DREQ_PRIVATE_DATA_SIZE = 220, IB_CM_DREP_PRIVATE_DATA_SIZE = 224, IB_CM_LAP_PRIVATE_DATA_SIZE = 168, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index 966517ed229d..892d3122023c 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -126,4 +126,10 @@ #define CM_REP_PRIVATE_DATA CM_FIELD_MLOC(struct cm_rep_msg, 36, 1568) #define CM_REP_PRIVATE_DATA_SIZE 196 +/* Table 111 RTU Message Contents */ +#define CM_RTU_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_rtu_msg, 0, 32) +#define CM_RTU_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_rtu_msg, 4, 32) +#define CM_RTU_PRIVATE_DATA CM_FIELD_MLOC(struct cm_rtu_msg, 8, 1792) +#define CM_RTU_PRIVATE_DATA_SIZE 224 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287709 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 29C3C14E3 for ; Thu, 12 Dec 2019 09:39:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 08FD52465A for ; Thu, 12 Dec 2019 09:39:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143552; bh=aSy8KPLa2NxDpkFwiOcxe7vOLkC+swyd2gyIIrqLNrc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=kt1Ytfa/oJI0ALeseQuVU/q73rBg6N4v5UlGGNE85sCXYtiK3Kud5NATtVgLAHQiF uchDFZC5W6cB9e7d91sNH4nCjnuLPPoFrwg5EmifNeSgmXg1LP/takjrkKsKVHmR2B E49lRmPZ0mhyneKF94GZJ9fS2UxRfPwjeXgj1ya8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728391AbfLLJjL (ORCPT ); Thu, 12 Dec 2019 04:39:11 -0500 Received: from mail.kernel.org ([198.145.29.99]:39314 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728427AbfLLJjK (ORCPT ); Thu, 12 Dec 2019 04:39:10 -0500 Received: from localhost (unknown [193.47.165.251]) (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 42DFE22527; Thu, 12 Dec 2019 09:39:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143548; bh=aSy8KPLa2NxDpkFwiOcxe7vOLkC+swyd2gyIIrqLNrc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l2GD2FHCBbOYGnhVDwSK0cbGeHCnbOHCcuHudDP5pd6ZvuNy4A5iLTyfsmnCKTY3Z ZeOTdnU0RSvCx/WXjuZ4jK0uABYOUK6b593ab05JytmrVwBCydYk+0YQbzeHkEFLaV 8gzq+A9Fd10ImoGFoQTvQUIWsY+TfXlQkBecOers= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 10/48] RDMA/cm: Request For Communication Release (DREQ) definitions Date: Thu, 12 Dec 2019 11:37:52 +0200 Message-Id: <20191212093830.316934-11-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add DREQ definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 2 +- include/rdma/ib_cm.h | 1 - include/rdma/ibta_vol1_c12.h | 7 +++++++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 73f93e354d8b..57e35d2f657f 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2452,7 +2452,7 @@ int ib_send_cm_dreq(struct ib_cm_id *cm_id, unsigned long flags; int ret; - if (private_data && private_data_len > IB_CM_DREQ_PRIVATE_DATA_SIZE) + if (private_data && private_data_len > CM_DREQ_PRIVATE_DATA_SIZE) return -EINVAL; cm_id_priv = container_of(cm_id, struct cm_id_private, id); @@ -2603,7 +2603,7 @@ static int cm_dreq_handler(struct cm_work *work) } work->cm_event.private_data = &dreq_msg->private_data; - work->cm_event.private_data_len = IB_CM_DREQ_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_DREQ_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->local_qpn != cm_dreq_get_remote_qpn(dreq_msg)) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index d36e90ccaeb7..c2b19d21fbe6 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -594,7 +594,7 @@ struct cm_dreq_msg { /* remote QPN/EECN:24, rsvd:8 */ __be32 offset8; - u8 private_data[IB_CM_DREQ_PRIVATE_DATA_SIZE]; + u8 private_data[CM_DREQ_PRIVATE_DATA_SIZE]; } __packed; diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 34dc12b30399..77f4818aaf10 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,7 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_DREQ_PRIVATE_DATA_SIZE = 220, IB_CM_DREP_PRIVATE_DATA_SIZE = 224, IB_CM_LAP_PRIVATE_DATA_SIZE = 168, IB_CM_APR_PRIVATE_DATA_SIZE = 148, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index 892d3122023c..e3116b62d7ba 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -132,4 +132,11 @@ #define CM_RTU_PRIVATE_DATA CM_FIELD_MLOC(struct cm_rtu_msg, 8, 1792) #define CM_RTU_PRIVATE_DATA_SIZE 224 +/* Table 112 DREQ Message Contents */ +#define CM_DREQ_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_dreq_msg, 0, 32) +#define CM_DREQ_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_dreq_msg, 4, 32) +#define CM_DREQ_REMOTE_QPN_EECN CM_FIELD32_LOC(struct cm_dreq_msg, 8, 24) +#define CM_DREQ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_dreq_msg, 12, 1760) +#define CM_DREQ_PRIVATE_DATA_SIZE 220 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287719 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 67A3A14E3 for ; Thu, 12 Dec 2019 09:39:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 46F8022527 for ; Thu, 12 Dec 2019 09:39:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143566; bh=cBp6OwmXInsOJZ9pnr7Na1+SAmOOCaGyukNTM34upos=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=rijNj5SnXrPgiv6jIQif20bzqDHvrS6wbO9MAqQ7iiyK++4EtkwM4fif/nmcoUj+q m7uRqC9IudbAZOmARGL4rlIdlFzcnSJA6/58KAlO17tFBndDoQkLVARNRexxHTmYXg nKYJgWB+O3N0T8Gu1CtO+z/ofBnt8xa+5OHBvJdc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728442AbfLLJjZ (ORCPT ); Thu, 12 Dec 2019 04:39:25 -0500 Received: from mail.kernel.org ([198.145.29.99]:39678 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728435AbfLLJjZ (ORCPT ); Thu, 12 Dec 2019 04:39:25 -0500 Received: from localhost (unknown [193.47.165.251]) (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 31AD524658; Thu, 12 Dec 2019 09:39:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143564; bh=cBp6OwmXInsOJZ9pnr7Na1+SAmOOCaGyukNTM34upos=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TACFjSgr50QeobmBdj8s8BEeSGr14DgxDOkGkiozBIlNGrf73CxkIpdmDuxHi4TW4 RrZbn9mGM3S32xx0mTphO98lGWQJjOWo0gkHWkYgXzXsQspC7vFYO4b1zSAEJoQuxs 3MMfwweK8hg89Q+bpub3uaoArMuA3h4J1Skl75jg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 11/48] RDMA/cm: Reply To Request For Communication Release (DREP) definitions Date: Thu, 12 Dec 2019 11:37:53 +0200 Message-Id: <20191212093830.316934-12-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add DREP definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 2 +- include/rdma/ib_cm.h | 1 - include/rdma/ibta_vol1_c12.h | 6 ++++++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 57e35d2f657f..d11ca6bdf016 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2517,7 +2517,7 @@ int ib_send_cm_drep(struct ib_cm_id *cm_id, void *data; int ret; - if (private_data && private_data_len > IB_CM_DREP_PRIVATE_DATA_SIZE) + if (private_data && private_data_len > CM_DREP_PRIVATE_DATA_SIZE) return -EINVAL; data = cm_copy_private_data(private_data, private_data_len); @@ -2678,7 +2678,7 @@ static int cm_drep_handler(struct cm_work *work) return -EINVAL; work->cm_event.private_data = &drep_msg->private_data; - work->cm_event.private_data_len = IB_CM_DREP_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_DREP_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->id.state != IB_CM_DREQ_SENT && diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index c2b19d21fbe6..98088a84f2fc 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -615,7 +615,7 @@ struct cm_drep_msg { __be32 local_comm_id; __be32 remote_comm_id; - u8 private_data[IB_CM_DREP_PRIVATE_DATA_SIZE]; + u8 private_data[CM_DREP_PRIVATE_DATA_SIZE]; } __packed; diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 77f4818aaf10..f1fccc8f387f 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,7 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_DREP_PRIVATE_DATA_SIZE = 224, IB_CM_LAP_PRIVATE_DATA_SIZE = 168, IB_CM_APR_PRIVATE_DATA_SIZE = 148, IB_CM_APR_INFO_LENGTH = 72, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index e3116b62d7ba..8d57e24534aa 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -139,4 +139,10 @@ #define CM_DREQ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_dreq_msg, 12, 1760) #define CM_DREQ_PRIVATE_DATA_SIZE 220 +/* Table 113 DREP Message Contents */ +#define CM_DREP_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_drep_msg, 0, 32) +#define CM_DREP_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_drep_msg, 4, 32) +#define CM_DREP_PRIVATE_DATA CM_FIELD_MLOC(struct cm_drep_msg, 8, 1792) +#define CM_DREP_PRIVATE_DATA_SIZE 224 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287713 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 38671138C for ; Thu, 12 Dec 2019 09:39:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 185AC2465A for ; Thu, 12 Dec 2019 09:39:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143557; bh=MywUgQYs3tI+fsLzBEbvhHq21Vz73iUYJrinWRabm4s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=QXtigqIN54VkBADta03Ku0/c0iTX2HfK/P2Ggwb5E+iqw7MgOEkL8EP4a/HrCd4O/ lAvnAKNqQRCq088JoT7930qOysWiSNRpIa076K4pQy6Z1JdjpCBT1cO7eriJl4IRpX xOJdapu4uT7JPYbzVLewytWmUDeEJ9gWTvkyq/Qo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728377AbfLLJjQ (ORCPT ); Thu, 12 Dec 2019 04:39:16 -0500 Received: from mail.kernel.org ([198.145.29.99]:39472 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728427AbfLLJjQ (ORCPT ); Thu, 12 Dec 2019 04:39:16 -0500 Received: from localhost (unknown [193.47.165.251]) (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 95388214D8; Thu, 12 Dec 2019 09:39:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143555; bh=MywUgQYs3tI+fsLzBEbvhHq21Vz73iUYJrinWRabm4s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kyE0iWyXe6my5cIryvCR89IBI34PrEp6WGYoC30F6wnQ/lvR06uwPh13SsHWWfpcw gFv7mqb4lf+I9MOjTH9hhi2nvQzRaN+YMTzOeNoUcK+7fIAEbjJZ1geGGxV2ydFKN3 CAQANw5QDtiGv/dKvhi+RWJU3D5xf+T+DUGaeiUE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 12/48] RDMA/cm: Load Alternate Path (LAP) definitions Date: Thu, 12 Dec 2019 11:37:54 +0200 Message-Id: <20191212093830.316934-13-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add LAP message definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 2 +- include/rdma/ib_cm.h | 1 - include/rdma/ibta_vol1_c12.h | 26 ++++++++++++++++++++++++++ 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index d11ca6bdf016..002904c03554 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3110,7 +3110,7 @@ int ib_send_cm_lap(struct ib_cm_id *cm_id, unsigned long flags; int ret; - if (private_data && private_data_len > IB_CM_LAP_PRIVATE_DATA_SIZE) + if (private_data && private_data_len > CM_LAP_PRIVATE_DATA_SIZE) return -EINVAL; cm_id_priv = container_of(cm_id, struct cm_id_private, id); @@ -3224,7 +3224,7 @@ static int cm_lap_handler(struct cm_work *work) param->alternate_path = &work->path[0]; cm_format_path_from_lap(cm_id_priv, param->alternate_path, lap_msg); work->cm_event.private_data = &lap_msg->private_data; - work->cm_event.private_data_len = IB_CM_LAP_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_LAP_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->id.state != IB_CM_ESTABLISHED) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 98088a84f2fc..6c94d083c996 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -644,7 +644,7 @@ struct cm_lap_msg { /* local ACK timeout:5, rsvd:3 */ u8 offset63; - u8 private_data[IB_CM_LAP_PRIVATE_DATA_SIZE]; + u8 private_data[CM_LAP_PRIVATE_DATA_SIZE]; } __packed; static inline __be32 cm_lap_get_remote_qpn(struct cm_lap_msg *lap_msg) diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index f1fccc8f387f..08d3217bdaf1 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,7 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_LAP_PRIVATE_DATA_SIZE = 168, IB_CM_APR_PRIVATE_DATA_SIZE = 148, IB_CM_APR_INFO_LENGTH = 72, IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE = 216, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index 8d57e24534aa..d998cf0cde4c 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -145,4 +145,30 @@ #define CM_DREP_PRIVATE_DATA CM_FIELD_MLOC(struct cm_drep_msg, 8, 1792) #define CM_DREP_PRIVATE_DATA_SIZE 224 +/* Table 115 LAP Message Contents */ +#define CM_LAP_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_lap_msg, 0, 32) +#define CM_LAP_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_lap_msg, 4, 32) +#define CM_LAP_REMOTE_QPN_EECN CM_FIELD32_LOC(struct cm_lap_msg, 12, 24) +#define CM_LAP_REMOTE_CM_RESPONSE_TIMEOUT \ + CM_FIELD8_LOC(struct cm_lap_msg, 15, 5) +#define CM_LAP_ALTERNATE_LOCAL_PORT_LID \ + CM_FIELD16_LOC(struct cm_lap_msg, 20, 16) +#define CM_LAP_ALTERNATE_REMOTE_PORT_LID \ + CM_FIELD16_LOC(struct cm_lap_msg, 22, 16) +#define CM_LAP_ALTERNATE_LOCAL_PORT_GID \ + CM_FIELD_MLOC(struct cm_lap_msg, 24, 128) +#define CM_LAP_ALTERNATE_REMOTE_PORT_GID \ + CM_FIELD_MLOC(struct cm_lap_msg, 40, 128) +#define CM_LAP_ALTERNATE_FLOW_LABEL CM_FIELD32_LOC(struct cm_lap_msg, 56, 20) +#define CM_LAP_ALTERNATE_TRAFFIC_CLASS CM_FIELD8_LOC(struct cm_lap_msg, 59, 8) +#define CM_LAP_ALTERNATE_HOP_LIMIT CM_FIELD8_LOC(struct cm_lap_msg, 60, 8) +#define CM_LAP_ALTERNATE_PACKET_RATE CM_FIELD_BLOC(struct cm_lap_msg, 61, 2, 6) +#define CM_LAP_ALTERNATE_SL CM_FIELD8_LOC(struct cm_lap_msg, 62, 4) +#define CM_LAP_ALTERNATE_SUBNET_LOCAL \ + CM_FIELD_BLOC(struct cm_lap_msg, 62, 4, 1) +#define CM_LAP_ALTERNATE_LOCAL_ACK_TIMEOUT \ + CM_FIELD8_LOC(struct cm_lap_msg, 63, 5) +#define CM_LAP_PRIVATE_DATA CM_FIELD_MLOC(struct cm_lap_msg, 64, 1344) +#define CM_LAP_PRIVATE_DATA_SIZE 168 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287715 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8FCAA14E3 for ; Thu, 12 Dec 2019 09:39:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6E7B72465A for ; Thu, 12 Dec 2019 09:39:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143560; bh=9MIGIll/ZL8717z/HIj9fFZ/O0ZDtZr/RrAOCWMFRsY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=f2XbQ6+DGE6mary9M3pfCWxDK8hlVpYaJTMf5H7OTUrxVsqHSteEe4U9B8etj0QhA RYeE3AMU4jh46MY5erpKKf+rc5ctJkeyj0RmtWDbVwPln1LFyZSHzKPoFp43qijG3R n83eS8OEI1yOrKwY4ZNem/hiIvk9VZKUeJExclYA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728427AbfLLJjT (ORCPT ); Thu, 12 Dec 2019 04:39:19 -0500 Received: from mail.kernel.org ([198.145.29.99]:39528 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728420AbfLLJjT (ORCPT ); Thu, 12 Dec 2019 04:39:19 -0500 Received: from localhost (unknown [193.47.165.251]) (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 C295B22527; Thu, 12 Dec 2019 09:39:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143558; bh=9MIGIll/ZL8717z/HIj9fFZ/O0ZDtZr/RrAOCWMFRsY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0xMtSTXlBGet7wyiPUZzJ6KT5Oq/oy01fvehFES5j4BOe6THoSR7xlvosWOtHvFPl wip04TYnyADxnp3+t3zXJINMQegG22EmLbV/V90GYBE5Coh0DdQa+XClI8yioQXBEU ihhEkBNAqnptarrRvUx8IoCxUOX83oi17PMT4yCE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 13/48] RDMA/cm: Alternate Path Response (APR) message definitions Date: Thu, 12 Dec 2019 11:37:55 +0200 Message-Id: <20191212093830.316934-14-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add APR definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 4 ++-- include/rdma/ib_cm.h | 1 - include/rdma/ibta_vol1_c12.h | 11 +++++++++++ 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 002904c03554..275603c56581 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3323,8 +3323,8 @@ int ib_send_cm_apr(struct ib_cm_id *cm_id, unsigned long flags; int ret; - if ((private_data && private_data_len > IB_CM_APR_PRIVATE_DATA_SIZE) || - (info && info_length > IB_CM_APR_INFO_LENGTH)) + if ((private_data && private_data_len > CM_APR_PRIVATE_DATA_SIZE) || + (info && info_length > CM_APR_ADDITIONAL_INFORMATION_SIZE)) return -EINVAL; cm_id_priv = container_of(cm_id, struct cm_id_private, id); @@ -3378,7 +3378,7 @@ static int cm_apr_handler(struct cm_work *work) work->cm_event.param.apr_rcvd.apr_info = &apr_msg->info; work->cm_event.param.apr_rcvd.info_len = apr_msg->info_length; work->cm_event.private_data = &apr_msg->private_data; - work->cm_event.private_data_len = IB_CM_APR_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_APR_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); if (cm_id_priv->id.state != IB_CM_ESTABLISHED || diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 6c94d083c996..1ca2378bbf0d 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -751,9 +751,9 @@ struct cm_apr_msg { u8 info_length; u8 ap_status; __be16 rsvd; - u8 info[IB_CM_APR_INFO_LENGTH]; + u8 info[CM_APR_ADDITIONAL_INFORMATION_SIZE]; - u8 private_data[IB_CM_APR_PRIVATE_DATA_SIZE]; + u8 private_data[CM_APR_PRIVATE_DATA_SIZE]; } __packed; struct cm_sidr_req_msg { diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 08d3217bdaf1..18a3e2ee0758 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,7 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_APR_PRIVATE_DATA_SIZE = 148, IB_CM_APR_INFO_LENGTH = 72, IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE = 216, IB_CM_SIDR_REP_PRIVATE_DATA_SIZE = 136, diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index d998cf0cde4c..6a747067d9c0 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -171,4 +171,15 @@ #define CM_LAP_PRIVATE_DATA CM_FIELD_MLOC(struct cm_lap_msg, 64, 1344) #define CM_LAP_PRIVATE_DATA_SIZE 168 +/* Table 116 APR Message Contents */ +#define CM_APR_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_apr_msg, 0, 32) +#define CM_APR_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_apr_msg, 4, 32) +#define CM_APR_ADDITIONAL_INFORMATION_LENGTH \ + CM_FIELD8_LOC(struct cm_apr_msg, 8, 8) +#define CM_APR_AR_STATUS CM_FIELD8_LOC(struct cm_apr_msg, 9, 8) +#define CM_APR_ADDITIONAL_INFORMATION CM_FIELD_MLOC(struct cm_apr_msg, 12, 576) +#define CM_APR_ADDITIONAL_INFORMATION_SIZE 72 +#define CM_APR_PRIVATE_DATA CM_FIELD_MLOC(struct cm_apr_msg, 84, 1184) +#define CM_APR_PRIVATE_DATA_SIZE 148 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287717 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 49A7014E3 for ; Thu, 12 Dec 2019 09:39:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 272BD24658 for ; Thu, 12 Dec 2019 09:39:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143563; bh=/AE9/U/FuaxnhGeHu/WnJbew6bKMHq57Zr2c73Ce3DA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=AxK+keJod/V6fLLXRjozwJex4adsUEt92DblUOcwitrxnTHFKYn4IVZeYhdtZvOwT 9NmR3jNyDuSSfJFCYJqKk/zFFNOAqDVpOu2iYd666uanSWicJPjB25m9Xj3yml9j37 6JeZUVu18KeGfRO/neALpntfoGybBlOo7GO/g3hs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728517AbfLLJjW (ORCPT ); Thu, 12 Dec 2019 04:39:22 -0500 Received: from mail.kernel.org ([198.145.29.99]:39592 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728420AbfLLJjW (ORCPT ); Thu, 12 Dec 2019 04:39:22 -0500 Received: from localhost (unknown [193.47.165.251]) (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 F3EEA24654; Thu, 12 Dec 2019 09:39:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143561; bh=/AE9/U/FuaxnhGeHu/WnJbew6bKMHq57Zr2c73Ce3DA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WsyA2HvP+9wEmp8VPcE7DcX/8l9jHafqaFIKSyKK+J3WyMDOD6FuyFPnHJW6Rzvf/ DtJ1qaBFcpmQuwUPc+ScpALqLxknrv2L1i2+oMs88uinN2yBmbkOfOTon6fa7mBN3W x1IGHXmItT9OOyI9MwhwXaRtjVCvJJVrfDcNo82I= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 14/48] RDMA/cm: Service ID Resolution Request (SIDR_REQ) definitions Date: Thu, 12 Dec 2019 11:37:56 +0200 Message-Id: <20191212093830.316934-15-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add SIDR_REQ message definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 2 +- drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_cm.h | 2 -- include/rdma/ibta_vol1_c12.h | 7 +++++++ 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 275603c56581..db17421beeff 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3468,7 +3468,7 @@ int ib_send_cm_sidr_req(struct ib_cm_id *cm_id, int ret; if (!param->path || (param->private_data && - param->private_data_len > IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE)) + param->private_data_len > CM_SIDR_REQ_PRIVATE_DATA_SIZE)) return -EINVAL; cm_id_priv = container_of(cm_id, struct cm_id_private, id); @@ -3527,7 +3527,7 @@ static void cm_format_sidr_req_event(struct cm_work *work, param->port = work->port->port_num; param->sgid_attr = rx_cm_id->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &sidr_req_msg->private_data; - work->cm_event.private_data_len = IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_SIDR_REQ_PRIVATE_DATA_SIZE; } static int cm_sidr_req_handler(struct cm_work *work) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 1ca2378bbf0d..47f7ce1ac143 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -764,7 +764,7 @@ struct cm_sidr_req_msg { __be16 rsvd; __be64 service_id; - u32 private_data[IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE / sizeof(u32)]; + u32 private_data[CM_SIDR_REQ_PRIVATE_DATA_SIZE / sizeof(u32)]; } __packed; struct cm_sidr_rep_msg { diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index ece92889aa88..aeb528b2aa49 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -2137,7 +2137,7 @@ static int cma_ib_req_handler(struct ib_cm_id *cm_id, conn_id = cma_ib_new_udp_id(&listen_id->id, ib_event, net_dev); event.param.ud.private_data = ib_event->private_data + offset; event.param.ud.private_data_len = - IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE - offset; + CM_SIDR_REQ_PRIVATE_DATA_SIZE - offset; } else { conn_id = cma_ib_new_conn_id(&listen_id->id, ib_event, net_dev); cma_set_req_event_data(&event, &ib_event->param.req_rcvd, diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 18a3e2ee0758..8f0c377ad250 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -65,8 +65,6 @@ enum ib_cm_event_type { }; enum ib_cm_data_size { - IB_CM_APR_INFO_LENGTH = 72, - IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE = 216, IB_CM_SIDR_REP_PRIVATE_DATA_SIZE = 136, IB_CM_SIDR_REP_INFO_LENGTH = 72, }; diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index 6a747067d9c0..36aa3ab25b42 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -182,4 +182,11 @@ #define CM_APR_PRIVATE_DATA CM_FIELD_MLOC(struct cm_apr_msg, 84, 1184) #define CM_APR_PRIVATE_DATA_SIZE 148 +/* Table 119 SIDR_REQ Message Contents */ +#define CM_SIDR_REQ_REQUESTID CM_FIELD32_LOC(struct cm_sidr_req_msg, 0, 32) +#define CM_SIDR_REQ_PARTITION_KEY CM_FIELD16_LOC(struct cm_sidr_req_msg, 4, 16) +#define CM_SIDR_REQ_SERVICEID CM_FIELD64_LOC(struct cm_sidr_req_msg, 8, 64) +#define CM_SIDR_REQ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_sidr_req_msg, 16, 1728) +#define CM_SIDR_REQ_PRIVATE_DATA_SIZE 216 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287729 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 48064138C for ; Thu, 12 Dec 2019 09:39:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2712D2465A for ; Thu, 12 Dec 2019 09:39:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143583; bh=BPx8jFeAKUihtwyKy0g2DjA1gKd2s7GmWiPF8SrJrnc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=AGXl9PaOvUy0nATVs6ZdmyF1LTgWqeRaIj0GiFsTdI8Zt0mZgIZd2/KhqpgjAe7qf vyfK8mAymYBpRzxKg83cj2y5SLEP6VSRcrTeLckDWSWR2Q+IEZmrCUkcCbORlbAJxY L7p6W1J31Y8i7Y7pvjAaLIjzxzdM4nrDb4DwllyI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728274AbfLLJjm (ORCPT ); Thu, 12 Dec 2019 04:39:42 -0500 Received: from mail.kernel.org ([198.145.29.99]:40058 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728382AbfLLJjm (ORCPT ); Thu, 12 Dec 2019 04:39:42 -0500 Received: from localhost (unknown [193.47.165.251]) (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 678F52173E; Thu, 12 Dec 2019 09:39:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143581; bh=BPx8jFeAKUihtwyKy0g2DjA1gKd2s7GmWiPF8SrJrnc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xHz8j6o104fBmRQm2f7l4PUaJ1MLcFRmZcuy2flm0leeHzaSz5Rh6VEXttL2hRKDe dzWy2blLnfi40bT0fznShbbTG1ypY6I0xStZhYUVD1u114+T2wESvKj8w7flq6smDj kOFXPyOxtP2XfCR2ib7ras94efLUreDYXO7+iMA8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 15/48] RDMA/cm: Service ID Resolution Response (SIDR_REP) definitions Date: Thu, 12 Dec 2019 11:37:57 +0200 Message-Id: <20191212093830.316934-16-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Add SIDR_REP message definitions as it is written in IBTA release 1.3 volume 1. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 7 ++++--- drivers/infiniband/core/cm_msgs.h | 4 ++-- drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_cm.h | 5 ----- include/rdma/ibta_vol1_c12.h | 14 ++++++++++++++ 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index db17421beeff..fd79605c9e8b 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3621,9 +3621,10 @@ int ib_send_cm_sidr_rep(struct ib_cm_id *cm_id, unsigned long flags; int ret; - if ((param->info && param->info_length > IB_CM_SIDR_REP_INFO_LENGTH) || + if ((param->info && + param->info_length > CM_SIDR_REP_ADDITIONAL_INFORMATION_SIZE) || (param->private_data && - param->private_data_len > IB_CM_SIDR_REP_PRIVATE_DATA_SIZE)) + param->private_data_len > CM_SIDR_REP_PRIVATE_DATA_SIZE)) return -EINVAL; cm_id_priv = container_of(cm_id, struct cm_id_private, id); @@ -3677,7 +3678,7 @@ static void cm_format_sidr_rep_event(struct cm_work *work, param->info_len = sidr_rep_msg->info_length; param->sgid_attr = cm_id_priv->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &sidr_rep_msg->private_data; - work->cm_event.private_data_len = IB_CM_SIDR_REP_PRIVATE_DATA_SIZE; + work->cm_event.private_data_len = CM_SIDR_REP_PRIVATE_DATA_SIZE; } static int cm_sidr_rep_handler(struct cm_work *work) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 47f7ce1ac143..ed887be775e3 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -778,9 +778,9 @@ struct cm_sidr_rep_msg { __be32 offset8; __be64 service_id; __be32 qkey; - u8 info[IB_CM_SIDR_REP_INFO_LENGTH]; + u8 info[CM_SIDR_REP_ADDITIONAL_INFORMATION_SIZE]; - u8 private_data[IB_CM_SIDR_REP_PRIVATE_DATA_SIZE]; + u8 private_data[CM_SIDR_REP_PRIVATE_DATA_SIZE]; } __packed; static inline __be32 cm_sidr_rep_get_qpn(struct cm_sidr_rep_msg *sidr_rep_msg) diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index aeb528b2aa49..6c8beabc3363 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -3706,7 +3706,7 @@ static int cma_sidr_rep_handler(struct ib_cm_id *cm_id, break; case IB_CM_SIDR_REP_RECEIVED: event.param.ud.private_data = ib_event->private_data; - event.param.ud.private_data_len = IB_CM_SIDR_REP_PRIVATE_DATA_SIZE; + event.param.ud.private_data_len = CM_SIDR_REP_PRIVATE_DATA_SIZE; if (rep->status != IB_SIDR_SUCCESS) { event.event = RDMA_CM_EVENT_UNREACHABLE; event.status = ib_event->param.sidr_rep_rcvd.status; diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 8f0c377ad250..6237c369dbd6 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -64,11 +64,6 @@ enum ib_cm_event_type { IB_CM_SIDR_REP_RECEIVED }; -enum ib_cm_data_size { - IB_CM_SIDR_REP_PRIVATE_DATA_SIZE = 136, - IB_CM_SIDR_REP_INFO_LENGTH = 72, -}; - struct ib_cm_id; struct ib_cm_req_event_param { diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index 36aa3ab25b42..f937865fe6b5 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -189,4 +189,18 @@ #define CM_SIDR_REQ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_sidr_req_msg, 16, 1728) #define CM_SIDR_REQ_PRIVATE_DATA_SIZE 216 +/* Table 120 SIDR_REP Message Contents */ +#define CM_SIDR_REP_REQUESTID CM_FIELD32_LOC(struct cm_sidr_rep_msg, 0, 32) +#define CM_SIDR_REP_STATUS CM_FIELD8_LOC(struct cm_sidr_rep_msg, 4, 8) +#define CM_SIDR_REP_ADDITIONAL_INFORMATION_LENGTH \ + CM_FIELD8_LOC(struct cm_sidr_rep_msg, 5, 8) +#define CM_SIDR_REP_QPN CM_FIELD32_LOC(struct cm_sidr_rep_msg, 8, 24) +#define CM_SIDR_REP_SERVICEID CM_FIELD64_LOC(struct cm_sidr_rep_msg, 12, 64) +#define CM_SIDR_REP_Q_KEY CM_FIELD32_LOC(struct cm_sidr_rep_msg, 20, 32) +#define CM_SIDR_REP_ADDITIONAL_INFORMATION \ + CM_FIELD_MLOC(struct cm_sidr_rep_msg, 24, 576) +#define CM_SIDR_REP_ADDITIONAL_INFORMATION_SIZE 72 +#define CM_SIDR_REP_PRIVATE_DATA CM_FIELD_MLOC(struct cm_sidr_rep_msg, 96, 1088) +#define CM_SIDR_REP_PRIVATE_DATA_SIZE 136 + #endif /* _IBTA_VOL1_C12_H_ */ From patchwork Thu Dec 12 09:37:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287721 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 78650138C for ; Thu, 12 Dec 2019 09:39:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4D67E24658 for ; Thu, 12 Dec 2019 09:39:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143570; bh=BGSDKMjaheWV4Lfmz1O+3NmUfINrABOTX792Tg3Db74=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=YdTOew6T53OZHtu9S/ldkh4dRciiZ0htM4ERg1m4+YFDi7KJE9mRZrUp2iQS36TVI voJ1QJMthV8VRX8Q/+NxpxCtsNqWGZRvPc4EmA1TL/SF2w4Aq7p+AboPL4ojNkkm+0 XEwmF/+2BqU6mouJqFcKtQyMSw30WcA6nM0JaAsU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728449AbfLLJj3 (ORCPT ); Thu, 12 Dec 2019 04:39:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:39750 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728440AbfLLJj3 (ORCPT ); Thu, 12 Dec 2019 04:39:29 -0500 Received: from localhost (unknown [193.47.165.251]) (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 6A75722527; Thu, 12 Dec 2019 09:39:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143568; bh=BGSDKMjaheWV4Lfmz1O+3NmUfINrABOTX792Tg3Db74=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jwY5dp2ebyWdscj74UjT6X7Nwq5dtxt8o5p4iPpBQK59cX9MILTNJCi0GUr30vy3Q WnKMnMV5sQpm654rZqcpBBP3Ij5EJ1JhTLZTsH9PTjZHn9+NnB3QOtLy1Xj+gCd3wt rwvh2pOQvf+Uq/jcMk3yoMieZeNCidtXE+sjodts= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 16/48] RDMA/cm: Convert QPN and EECN to be u32 variables Date: Thu, 12 Dec 2019 11:37:58 +0200 Message-Id: <20191212093830.316934-17-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Remove unnecessary ambiguity in mixing be32<->u32 declarations of QPN and EECN, convert them from be32 to u32 with help of newly introduced CM_GET/CM_SET macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 55 ++++++++++++++++---------- drivers/infiniband/core/cm_msgs.h | 64 +------------------------------ 2 files changed, 35 insertions(+), 84 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index fd79605c9e8b..247238469af1 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -225,7 +225,7 @@ struct cm_timewait_info { struct rb_node remote_qp_node; struct rb_node remote_id_node; __be64 remote_ca_guid; - __be32 remote_qpn; + u32 remote_qpn; u8 inserted_remote_qp; u8 inserted_remote_id; }; @@ -250,8 +250,8 @@ struct cm_id_private { void *private_data; __be64 tid; - __be32 local_qpn; - __be32 remote_qpn; + u32 local_qpn; + u32 remote_qpn; enum ib_qp_type qp_type; __be32 sq_psn; __be32 rq_psn; @@ -764,15 +764,15 @@ static struct cm_timewait_info * cm_insert_remote_qpn(struct cm_timewait_info struct rb_node *parent = NULL; struct cm_timewait_info *cur_timewait_info; __be64 remote_ca_guid = timewait_info->remote_ca_guid; - __be32 remote_qpn = timewait_info->remote_qpn; + u32 remote_qpn = timewait_info->remote_qpn; while (*link) { parent = *link; cur_timewait_info = rb_entry(parent, struct cm_timewait_info, remote_qp_node); - if (be32_lt(remote_qpn, cur_timewait_info->remote_qpn)) + if (remote_qpn < cur_timewait_info->remote_qpn) link = &(*link)->rb_left; - else if (be32_gt(remote_qpn, cur_timewait_info->remote_qpn)) + else if (remote_qpn > cur_timewait_info->remote_qpn) link = &(*link)->rb_right; else if (be64_lt(remote_ca_guid, cur_timewait_info->remote_ca_guid)) link = &(*link)->rb_left; @@ -1265,7 +1265,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->local_comm_id = cm_id_priv->id.local_id; req_msg->service_id = param->service_id; req_msg->local_ca_guid = cm_id_priv->id.device->node_guid; - cm_req_set_local_qpn(req_msg, cpu_to_be32(param->qp_num)); + IBA_SET(CM_REQ_LOCAL_QPN, req_msg, param->qp_num); cm_req_set_init_depth(req_msg, param->initiator_depth); cm_req_set_remote_resp_timeout(req_msg, param->remote_cm_response_timeout); @@ -1443,7 +1443,7 @@ int ib_send_cm_req(struct ib_cm_id *cm_id, cm_id_priv->msg->timeout_ms = cm_id_priv->timeout_ms; cm_id_priv->msg->context[1] = (void *) (unsigned long) IB_CM_REQ_SENT; - cm_id_priv->local_qpn = cm_req_get_local_qpn(req_msg); + cm_id_priv->local_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); cm_id_priv->rq_psn = cm_req_get_starting_psn(req_msg); spin_lock_irqsave(&cm_id_priv->lock, flags); @@ -1666,7 +1666,7 @@ static void cm_format_req_event(struct cm_work *work, } param->remote_ca_guid = req_msg->local_ca_guid; param->remote_qkey = be32_to_cpu(req_msg->local_qkey); - param->remote_qpn = be32_to_cpu(cm_req_get_local_qpn(req_msg)); + param->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); param->qp_type = cm_req_get_qp_type(req_msg); param->starting_psn = be32_to_cpu(cm_req_get_starting_psn(req_msg)); param->responder_resources = cm_req_get_init_depth(req_msg); @@ -1929,7 +1929,7 @@ static int cm_req_handler(struct cm_work *work) } cm_id_priv->timewait_info->work.remote_id = req_msg->local_comm_id; cm_id_priv->timewait_info->remote_ca_guid = req_msg->local_ca_guid; - cm_id_priv->timewait_info->remote_qpn = cm_req_get_local_qpn(req_msg); + cm_id_priv->timewait_info->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); listen_cm_id_priv = cm_match_req(work, cm_id_priv); if (!listen_cm_id_priv) { @@ -2003,7 +2003,7 @@ static int cm_req_handler(struct cm_work *work) cm_id_priv->timeout_ms = cm_convert_to_ms( cm_req_get_local_resp_timeout(req_msg)); cm_id_priv->max_cm_retries = cm_req_get_max_cm_retries(req_msg); - cm_id_priv->remote_qpn = cm_req_get_local_qpn(req_msg); + cm_id_priv->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = cm_req_get_resp_res(req_msg); cm_id_priv->responder_resources = cm_req_get_init_depth(req_msg); cm_id_priv->path_mtu = cm_req_get_path_mtu(req_msg); @@ -2047,10 +2047,10 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, rep_msg->initiator_depth = param->initiator_depth; cm_rep_set_flow_ctrl(rep_msg, param->flow_control); cm_rep_set_srq(rep_msg, param->srq); - cm_rep_set_local_qpn(rep_msg, cpu_to_be32(param->qp_num)); + IBA_SET(CM_REP_LOCAL_QPN, rep_msg, param->qp_num); } else { cm_rep_set_srq(rep_msg, 1); - cm_rep_set_local_eecn(rep_msg, cpu_to_be32(param->qp_num)); + IBA_SET(CM_REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg, param->qp_num); } if (param->private_data && param->private_data_len) @@ -2105,7 +2105,7 @@ int ib_send_cm_rep(struct ib_cm_id *cm_id, WARN_ONCE(param->qp_num & 0xFF000000, "IBTA declares QPN to be 24 bits, but it is 0x%X\n", param->qp_num); - cm_id_priv->local_qpn = cpu_to_be32(param->qp_num); + cm_id_priv->local_qpn = param->qp_num; out: spin_unlock_irqrestore(&cm_id_priv->lock, flags); return ret; @@ -2187,7 +2187,11 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param = &work->cm_event.param.rep_rcvd; param->remote_ca_guid = rep_msg->local_ca_guid; param->remote_qkey = be32_to_cpu(rep_msg->local_qkey); - param->remote_qpn = be32_to_cpu(cm_rep_get_qpn(rep_msg, qp_type)); + if (qp_type == IB_QPT_XRC_INI) + param->remote_qpn = + IBA_GET(CM_REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); + else + param->remote_qpn = IBA_GET(CM_REP_LOCAL_QPN, rep_msg); param->starting_psn = be32_to_cpu(cm_rep_get_starting_psn(rep_msg)); param->responder_resources = rep_msg->initiator_depth; param->initiator_depth = rep_msg->resp_resources; @@ -2280,7 +2284,12 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv->timewait_info->work.remote_id = rep_msg->local_comm_id; cm_id_priv->timewait_info->remote_ca_guid = rep_msg->local_ca_guid; - cm_id_priv->timewait_info->remote_qpn = cm_rep_get_qpn(rep_msg, cm_id_priv->qp_type); + if (cm_id_priv->qp_type == IB_QPT_XRC_INI) + cm_id_priv->timewait_info->remote_qpn = + IBA_GET(CM_REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); + else + cm_id_priv->timewait_info->remote_qpn = + IBA_GET(CM_REP_LOCAL_QPN, rep_msg); spin_lock(&cm.lock); /* Check for duplicate REP. */ @@ -2323,7 +2332,11 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv->id.state = IB_CM_REP_RCVD; cm_id_priv->id.remote_id = rep_msg->local_comm_id; - cm_id_priv->remote_qpn = cm_rep_get_qpn(rep_msg, cm_id_priv->qp_type); + if (cm_id_priv->qp_type == IB_QPT_XRC_INI) + cm_id_priv->remote_qpn = + IBA_GET(CM_REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); + else + cm_id_priv->remote_qpn = IBA_GET(CM_REP_LOCAL_QPN, rep_msg); cm_id_priv->initiator_depth = rep_msg->resp_resources; cm_id_priv->responder_resources = rep_msg->initiator_depth; cm_id_priv->sq_psn = cm_rep_get_starting_psn(rep_msg); @@ -2437,7 +2450,7 @@ static void cm_format_dreq(struct cm_dreq_msg *dreq_msg, cm_form_tid(cm_id_priv)); dreq_msg->local_comm_id = cm_id_priv->id.local_id; dreq_msg->remote_comm_id = cm_id_priv->id.remote_id; - cm_dreq_set_remote_qpn(dreq_msg, cm_id_priv->remote_qpn); + IBA_SET(CM_DREQ_REMOTE_QPN_EECN, dreq_msg, cm_id_priv->remote_qpn); if (private_data && private_data_len) memcpy(dreq_msg->private_data, private_data, private_data_len); @@ -2606,7 +2619,7 @@ static int cm_dreq_handler(struct cm_work *work) work->cm_event.private_data_len = CM_DREQ_PRIVATE_DATA_SIZE; spin_lock_irq(&cm_id_priv->lock); - if (cm_id_priv->local_qpn != cm_dreq_get_remote_qpn(dreq_msg)) + if (cm_id_priv->local_qpn != IBA_GET(CM_DREQ_REMOTE_QPN_EECN, dreq_msg)) goto unlock; switch (cm_id_priv->id.state) { @@ -3071,7 +3084,7 @@ static void cm_format_lap(struct cm_lap_msg *lap_msg, cm_form_tid(cm_id_priv)); lap_msg->local_comm_id = cm_id_priv->id.local_id; lap_msg->remote_comm_id = cm_id_priv->id.remote_id; - cm_lap_set_remote_qpn(lap_msg, cm_id_priv->remote_qpn); + IBA_SET(CM_LAP_REMOTE_QPN_EECN, lap_msg, cm_id_priv->remote_qpn); /* todo: need remote CM response timeout */ cm_lap_set_remote_resp_timeout(lap_msg, 0x1F); lap_msg->alt_local_lid = @@ -4114,7 +4127,7 @@ static int cm_init_qp_rtr_attr(struct cm_id_private *cm_id_priv, IB_QP_DEST_QPN | IB_QP_RQ_PSN; qp_attr->ah_attr = cm_id_priv->av.ah_attr; qp_attr->path_mtu = cm_id_priv->path_mtu; - qp_attr->dest_qp_num = be32_to_cpu(cm_id_priv->remote_qpn); + qp_attr->dest_qp_num = cm_id_priv->remote_qpn; qp_attr->rq_psn = be32_to_cpu(cm_id_priv->rq_psn); if (cm_id_priv->qp_type == IB_QPT_RC || cm_id_priv->qp_type == IB_QPT_XRC_TGT) { diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index ed887be775e3..650d6fb312c8 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,18 +70,6 @@ struct cm_req_msg { } __packed; -static inline __be32 cm_req_get_local_qpn(struct cm_req_msg *req_msg) -{ - return cpu_to_be32(be32_to_cpu(req_msg->offset32) >> 8); -} - -static inline void cm_req_set_local_qpn(struct cm_req_msg *req_msg, __be32 qpn) -{ - req_msg->offset32 = cpu_to_be32((be32_to_cpu(qpn) << 8) | - (be32_to_cpu(req_msg->offset32) & - 0x000000FF)); -} - static inline u8 cm_req_get_resp_res(struct cm_req_msg *req_msg) { return (u8) be32_to_cpu(req_msg->offset32); @@ -462,6 +450,7 @@ struct cm_rep_msg { __be32 local_qkey; /* local QPN:24, rsvd:8 */ __be32 offset12; + /* local EECN:24, rsvd:8 */ __be32 offset16; /* starting PSN:24 rsvd:8 */ @@ -478,34 +467,6 @@ struct cm_rep_msg { } __packed; -static inline __be32 cm_rep_get_local_qpn(struct cm_rep_msg *rep_msg) -{ - return cpu_to_be32(be32_to_cpu(rep_msg->offset12) >> 8); -} - -static inline void cm_rep_set_local_qpn(struct cm_rep_msg *rep_msg, __be32 qpn) -{ - rep_msg->offset12 = cpu_to_be32((be32_to_cpu(qpn) << 8) | - (be32_to_cpu(rep_msg->offset12) & 0x000000FF)); -} - -static inline __be32 cm_rep_get_local_eecn(struct cm_rep_msg *rep_msg) -{ - return cpu_to_be32(be32_to_cpu(rep_msg->offset16) >> 8); -} - -static inline void cm_rep_set_local_eecn(struct cm_rep_msg *rep_msg, __be32 eecn) -{ - rep_msg->offset16 = cpu_to_be32((be32_to_cpu(eecn) << 8) | - (be32_to_cpu(rep_msg->offset16) & 0x000000FF)); -} - -static inline __be32 cm_rep_get_qpn(struct cm_rep_msg *rep_msg, enum ib_qp_type qp_type) -{ - return (qp_type == IB_QPT_XRC_INI) ? - cm_rep_get_local_eecn(rep_msg) : cm_rep_get_local_qpn(rep_msg); -} - static inline __be32 cm_rep_get_starting_psn(struct cm_rep_msg *rep_msg) { return cpu_to_be32(be32_to_cpu(rep_msg->offset20) >> 8); @@ -598,17 +559,6 @@ struct cm_dreq_msg { } __packed; -static inline __be32 cm_dreq_get_remote_qpn(struct cm_dreq_msg *dreq_msg) -{ - return cpu_to_be32(be32_to_cpu(dreq_msg->offset8) >> 8); -} - -static inline void cm_dreq_set_remote_qpn(struct cm_dreq_msg *dreq_msg, __be32 qpn) -{ - dreq_msg->offset8 = cpu_to_be32((be32_to_cpu(qpn) << 8) | - (be32_to_cpu(dreq_msg->offset8) & 0x000000FF)); -} - struct cm_drep_msg { struct ib_mad_hdr hdr; @@ -647,18 +597,6 @@ struct cm_lap_msg { u8 private_data[CM_LAP_PRIVATE_DATA_SIZE]; } __packed; -static inline __be32 cm_lap_get_remote_qpn(struct cm_lap_msg *lap_msg) -{ - return cpu_to_be32(be32_to_cpu(lap_msg->offset12) >> 8); -} - -static inline void cm_lap_set_remote_qpn(struct cm_lap_msg *lap_msg, __be32 qpn) -{ - lap_msg->offset12 = cpu_to_be32((be32_to_cpu(qpn) << 8) | - (be32_to_cpu(lap_msg->offset12) & - 0x000000FF)); -} - static inline u8 cm_lap_get_remote_resp_timeout(struct cm_lap_msg *lap_msg) { return (u8) ((be32_to_cpu(lap_msg->offset12) & 0xF8) >> 3); From patchwork Thu Dec 12 09:37:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287723 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EBB4F138C for ; Thu, 12 Dec 2019 09:39:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CA4342465B for ; Thu, 12 Dec 2019 09:39:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143572; bh=3x+rg8sJs9gCLLyJRyCedQdhZup8Nor0xiHxZ3ZpFlg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=CHEv6rSV8o+6Ujm2WIMi3s4SM7Iedja6vUAZ8W8EMVQByZ6ln1t91DHdekXHLnRhp ntW0X//ya0xcmUYtzL4HlIGNOAZREgkJ/Co8f1ojqbBpreGrVD2C87wRqAeZrpifhV nmgBwjdLxX048AnzRK6VFcNH6M71FAyWX2siQo50= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728396AbfLLJjc (ORCPT ); Thu, 12 Dec 2019 04:39:32 -0500 Received: from mail.kernel.org ([198.145.29.99]:39842 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728339AbfLLJjc (ORCPT ); Thu, 12 Dec 2019 04:39:32 -0500 Received: from localhost (unknown [193.47.165.251]) (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 B0BDC2173E; Thu, 12 Dec 2019 09:39:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143571; bh=3x+rg8sJs9gCLLyJRyCedQdhZup8Nor0xiHxZ3ZpFlg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UvD/NbULkMs3EwKLwPjO16QDzWzVvdTj6DtdQhUQ8tvdmJY2J2q6gAI5aEDIBzsz8 P/NRspV40I2b/htlM84qDdyzfPWOzlLjmDs0XFRe+v/HAaUd/sKNPGcJrzdFHsQsUh J3JFBWa5dB+xBjkzAD5vWH6TbB3I9hK/GW+ZN0jc= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 17/48] RDMA/cm: Convert REQ responded resources to the new scheme Date: Thu, 12 Dec 2019 11:37:59 +0200 Message-Id: <20191212093830.316934-18-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Use new scheme to get/set REQ responded resources. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 7 ++++--- drivers/infiniband/core/cm_msgs.h | 12 ------------ 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 247238469af1..26718d25564c 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1279,7 +1279,8 @@ static void cm_format_req(struct cm_req_msg *req_msg, cm_req_set_max_cm_retries(req_msg, param->max_cm_retries); if (param->qp_type != IB_QPT_XRC_INI) { - cm_req_set_resp_res(req_msg, param->responder_resources); + IBA_SET(CM_REQ_RESPONDED_RESOURCES, req_msg, + param->responder_resources); cm_req_set_retry_count(req_msg, param->retry_count); cm_req_set_rnr_retry_count(req_msg, param->rnr_retry_count); cm_req_set_srq(req_msg, param->srq); @@ -1670,7 +1671,7 @@ static void cm_format_req_event(struct cm_work *work, param->qp_type = cm_req_get_qp_type(req_msg); param->starting_psn = be32_to_cpu(cm_req_get_starting_psn(req_msg)); param->responder_resources = cm_req_get_init_depth(req_msg); - param->initiator_depth = cm_req_get_resp_res(req_msg); + param->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); param->local_cm_response_timeout = cm_req_get_remote_resp_timeout(req_msg); param->flow_control = cm_req_get_flow_ctrl(req_msg); @@ -2004,7 +2005,7 @@ static int cm_req_handler(struct cm_work *work) cm_req_get_local_resp_timeout(req_msg)); cm_id_priv->max_cm_retries = cm_req_get_max_cm_retries(req_msg); cm_id_priv->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); - cm_id_priv->initiator_depth = cm_req_get_resp_res(req_msg); + cm_id_priv->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); cm_id_priv->responder_resources = cm_req_get_init_depth(req_msg); cm_id_priv->path_mtu = cm_req_get_path_mtu(req_msg); cm_id_priv->pkey = req_msg->pkey; diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 650d6fb312c8..7909100dc9eb 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,18 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_resp_res(struct cm_req_msg *req_msg) -{ - return (u8) be32_to_cpu(req_msg->offset32); -} - -static inline void cm_req_set_resp_res(struct cm_req_msg *req_msg, u8 resp_res) -{ - req_msg->offset32 = cpu_to_be32(resp_res | - (be32_to_cpu(req_msg->offset32) & - 0xFFFFFF00)); -} - static inline u8 cm_req_get_init_depth(struct cm_req_msg *req_msg) { return (u8) be32_to_cpu(req_msg->offset36); From patchwork Thu Dec 12 09:38:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287725 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 61CA91593 for ; Thu, 12 Dec 2019 09:39:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3F3D72465A for ; Thu, 12 Dec 2019 09:39:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143576; bh=TXT5vXhVanahK+Bvi7IVHNo7qoNd5GqPYyYKvb0+5ds=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=N7MpCGM485SlcKbbvz5hR+sF/1fi244ka2PWoUrkEy5hAkYmKDhm8ZeWudU9BzE47 g2J9OojdHxdweNm8sUoQhVV3/2I/wNfzvcemUbfitJiyz6QGGU/ckZYJbLLGgnw16q /7fsCX3mqT/cOEzJ7KV8vqV4UGpbpYR+5vromgyI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728448AbfLLJjf (ORCPT ); Thu, 12 Dec 2019 04:39:35 -0500 Received: from mail.kernel.org ([198.145.29.99]:39942 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728435AbfLLJjf (ORCPT ); Thu, 12 Dec 2019 04:39:35 -0500 Received: from localhost (unknown [193.47.165.251]) (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 EA5C82173E; Thu, 12 Dec 2019 09:39:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143574; bh=TXT5vXhVanahK+Bvi7IVHNo7qoNd5GqPYyYKvb0+5ds=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2Y0wzfqXKlYS9ukR1g3IenZcrH0z63dpJRUEZEHhDFHuuOSmS/5Gz/atVaXzbJlYg sW/BJZpo4bf1iZcksCGkmWQ5ELmFGbNUp6zom1jmWtUVWUZvmh2MRP6QaugDybmo1D oSzokyaIwHWgBgwQC9IrkJHfsZCYt0tvrtuLUhCo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 18/48] RDMA/cm: Convert REQ initiator depth to the new scheme Date: Thu, 12 Dec 2019 11:38:00 +0200 Message-Id: <20191212093830.316934-19-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Adapt REQ initiator depth to new get/set macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 13 ------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 26718d25564c..1f80db6b24e7 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1266,7 +1266,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->service_id = param->service_id; req_msg->local_ca_guid = cm_id_priv->id.device->node_guid; IBA_SET(CM_REQ_LOCAL_QPN, req_msg, param->qp_num); - cm_req_set_init_depth(req_msg, param->initiator_depth); + IBA_SET(CM_REQ_INITIATOR_DEPTH, req_msg, param->initiator_depth); cm_req_set_remote_resp_timeout(req_msg, param->remote_cm_response_timeout); cm_req_set_qp_type(req_msg, param->qp_type); @@ -1670,7 +1670,7 @@ static void cm_format_req_event(struct cm_work *work, param->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); param->qp_type = cm_req_get_qp_type(req_msg); param->starting_psn = be32_to_cpu(cm_req_get_starting_psn(req_msg)); - param->responder_resources = cm_req_get_init_depth(req_msg); + param->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); param->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); param->local_cm_response_timeout = cm_req_get_remote_resp_timeout(req_msg); @@ -2006,7 +2006,7 @@ static int cm_req_handler(struct cm_work *work) cm_id_priv->max_cm_retries = cm_req_get_max_cm_retries(req_msg); cm_id_priv->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); - cm_id_priv->responder_resources = cm_req_get_init_depth(req_msg); + cm_id_priv->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); cm_id_priv->path_mtu = cm_req_get_path_mtu(req_msg); cm_id_priv->pkey = req_msg->pkey; cm_id_priv->sq_psn = cm_req_get_starting_psn(req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 7909100dc9eb..4adf107f07f0 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,19 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_init_depth(struct cm_req_msg *req_msg) -{ - return (u8) be32_to_cpu(req_msg->offset36); -} - -static inline void cm_req_set_init_depth(struct cm_req_msg *req_msg, - u8 init_depth) -{ - req_msg->offset36 = cpu_to_be32(init_depth | - (be32_to_cpu(req_msg->offset36) & - 0xFFFFFF00)); -} - static inline u8 cm_req_get_remote_resp_timeout(struct cm_req_msg *req_msg) { return (u8) ((be32_to_cpu(req_msg->offset40) & 0xF8) >> 3); From patchwork Thu Dec 12 09:38:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287727 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 492C014E3 for ; Thu, 12 Dec 2019 09:39:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2764B24658 for ; Thu, 12 Dec 2019 09:39:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143579; bh=ft2P2R+4z2YcD7Wa4yjkDQ33vLAm1igD+/GjkqRcGGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=DcrThHjDATOdDjRmuugipXLPaPYxoPnsKFxyl2lXk3iXzdcuxT0LQkkqDGXPSWDar x81XlR8QKuDvUuPg636GLrQCRBYDvht6P6ViWPQLrL7a5ndjP59GR1k12uiSQjQT3p xBe4OMqatsG7zYSx3i1rXsnP1pv0t7q9XV0sBX8w= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728460AbfLLJji (ORCPT ); Thu, 12 Dec 2019 04:39:38 -0500 Received: from mail.kernel.org ([198.145.29.99]:40006 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728386AbfLLJji (ORCPT ); Thu, 12 Dec 2019 04:39:38 -0500 Received: from localhost (unknown [193.47.165.251]) (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 33DC222527; Thu, 12 Dec 2019 09:39:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143577; bh=ft2P2R+4z2YcD7Wa4yjkDQ33vLAm1igD+/GjkqRcGGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TbQv/whovaXVkq/RXd/dxEy+Md5LxALND4Hk9X7iJAqgU77J6D4w4pDi3T5eT69mr FKdUPagutv79Ovm5Cfq6ywPlMw6x/+tc2oghCXyx8KotC5JS9BU41MjNztNhHvAj96 Zr/Shv5BEmJPCKjV4f3pJ4Qol4Y+Gy+qXinESi3E= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 19/48] RDMA/cm: Convert REQ remote response timeout Date: Thu, 12 Dec 2019 11:38:01 +0200 Message-Id: <20191212093830.316934-20-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Use new get/set macros to access REQ remote response timeout. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 13 ------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 1f80db6b24e7..34654aba638e 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1267,8 +1267,8 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->local_ca_guid = cm_id_priv->id.device->node_guid; IBA_SET(CM_REQ_LOCAL_QPN, req_msg, param->qp_num); IBA_SET(CM_REQ_INITIATOR_DEPTH, req_msg, param->initiator_depth); - cm_req_set_remote_resp_timeout(req_msg, - param->remote_cm_response_timeout); + IBA_SET(CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg, + param->remote_cm_response_timeout); cm_req_set_qp_type(req_msg, param->qp_type); cm_req_set_flow_ctrl(req_msg, param->flow_control); cm_req_set_starting_psn(req_msg, cpu_to_be32(param->starting_psn)); @@ -1673,7 +1673,7 @@ static void cm_format_req_event(struct cm_work *work, param->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); param->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); param->local_cm_response_timeout = - cm_req_get_remote_resp_timeout(req_msg); + IBA_GET(CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg); param->flow_control = cm_req_get_flow_ctrl(req_msg); param->remote_cm_response_timeout = cm_req_get_local_resp_timeout(req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 4adf107f07f0..c348521040a6 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,19 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_remote_resp_timeout(struct cm_req_msg *req_msg) -{ - return (u8) ((be32_to_cpu(req_msg->offset40) & 0xF8) >> 3); -} - -static inline void cm_req_set_remote_resp_timeout(struct cm_req_msg *req_msg, - u8 resp_timeout) -{ - req_msg->offset40 = cpu_to_be32((resp_timeout << 3) | - (be32_to_cpu(req_msg->offset40) & - 0xFFFFFF07)); -} - static inline enum ib_qp_type cm_req_get_qp_type(struct cm_req_msg *req_msg) { u8 transport_type = (u8) (be32_to_cpu(req_msg->offset40) & 0x06) >> 1; From patchwork Thu Dec 12 09:38:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287739 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E175414E3 for ; Thu, 12 Dec 2019 09:39:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BF40624658 for ; Thu, 12 Dec 2019 09:39:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143598; bh=/hI0qvoQZqSwGz4lSCnw2joMweNIw+eAqLivtUx6nWs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=pNvnQlE/ZVdneSE1q0WeodOld6A3B8ylnQMcvmaOSSbLB1aOkyv6KgfpfQpoSZFg+ NN7Bm+t3KvarOlR4QStGO/6VTnTRxxHDjeO5n+Bq0WPpLkMhegho5i4KCdd1/9Kmoi I0DqvN019NX/6sXAIDEQtGk58+P9ERkAY8YeHIig= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728404AbfLLJj6 (ORCPT ); Thu, 12 Dec 2019 04:39:58 -0500 Received: from mail.kernel.org ([198.145.29.99]:40306 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728349AbfLLJj6 (ORCPT ); Thu, 12 Dec 2019 04:39:58 -0500 Received: from localhost (unknown [193.47.165.251]) (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 A0ED722527; Thu, 12 Dec 2019 09:39:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143597; bh=/hI0qvoQZqSwGz4lSCnw2joMweNIw+eAqLivtUx6nWs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IHALQjVkOVeit4W/wOmYlIeBagltuDoAjHfWvzrOii406oHR8eTvxnxhhWugvZ1BO mC4DmDjos1lnLsJYX5ZPtAsImD0m9rGULc1T5tGC3lEuMjJOof6luFJsXJGEUFV+U0 qK2105yQYcpM0dJgaifzgE2B/Ao8kIz52I/vF3bQ= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 20/48] RDMA/cm: Simplify QP type to wire protocol translation Date: Thu, 12 Dec 2019 11:38:02 +0200 Message-Id: <20191212093830.316934-21-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Simplify QP type to/from wire protocol logic and move it to be near implementation and not in header file. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 25 +++++++++++++++++++++ drivers/infiniband/core/cm_msgs.h | 37 ------------------------------- 2 files changed, 25 insertions(+), 37 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 34654aba638e..f7ed4067743f 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1247,6 +1247,20 @@ static void cm_format_mad_hdr(struct ib_mad_hdr *hdr, hdr->tid = tid; } +static void cm_req_set_qp_type(struct cm_req_msg *req_msg, + enum ib_qp_type qp_type) +{ + static const u8 qp_types[IB_QPT_MAX] = { + [IB_QPT_UC] = 1, + [IB_QPT_XRC_INI] = 3, + }; + + if (qp_type == IB_QPT_XRC_INI) + IBA_SET(CM_REQ_EXTENDED_TRANSPORT_TYPE, req_msg, 0x1); + + IBA_SET(CM_REQ_TRANSPORT_SERVICE_TYPE, req_msg, qp_types[qp_type]); +} + static void cm_format_req(struct cm_req_msg *req_msg, struct cm_id_private *cm_id_priv, struct ib_cm_req_param *param) @@ -1645,6 +1659,17 @@ static void cm_opa_to_ib_sgid(struct cm_work *work, } } +static enum ib_qp_type cm_req_get_qp_type(struct cm_req_msg *req_msg) +{ + static const enum ib_qp_type qp_type[] = { IB_QPT_RC, IB_QPT_UC, 0, 0 }; + u8 transport_type = IBA_GET(CM_REQ_TRANSPORT_SERVICE_TYPE, req_msg); + + if (transport_type == 3 && + (IBA_GET(CM_REQ_EXTENDED_TRANSPORT_TYPE, req_msg) == 1)) + return IB_QPT_XRC_TGT; + return qp_type[transport_type]; +} + static void cm_format_req_event(struct cm_work *work, struct cm_id_private *cm_id_priv, struct ib_cm_id *listen_id) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index c348521040a6..5e6dd00c6018 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,43 +70,6 @@ struct cm_req_msg { } __packed; -static inline enum ib_qp_type cm_req_get_qp_type(struct cm_req_msg *req_msg) -{ - u8 transport_type = (u8) (be32_to_cpu(req_msg->offset40) & 0x06) >> 1; - switch(transport_type) { - case 0: return IB_QPT_RC; - case 1: return IB_QPT_UC; - case 3: - switch (req_msg->offset51 & 0x7) { - case 1: return IB_QPT_XRC_TGT; - default: return 0; - } - default: return 0; - } -} - -static inline void cm_req_set_qp_type(struct cm_req_msg *req_msg, - enum ib_qp_type qp_type) -{ - switch(qp_type) { - case IB_QPT_UC: - req_msg->offset40 = cpu_to_be32((be32_to_cpu( - req_msg->offset40) & - 0xFFFFFFF9) | 0x2); - break; - case IB_QPT_XRC_INI: - req_msg->offset40 = cpu_to_be32((be32_to_cpu( - req_msg->offset40) & - 0xFFFFFFF9) | 0x6); - req_msg->offset51 = (req_msg->offset51 & 0xF8) | 1; - break; - default: - req_msg->offset40 = cpu_to_be32(be32_to_cpu( - req_msg->offset40) & - 0xFFFFFFF9); - } -} - static inline u8 cm_req_get_flow_ctrl(struct cm_req_msg *req_msg) { return be32_to_cpu(req_msg->offset40) & 0x1; From patchwork Thu Dec 12 09:38:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287731 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8DC3014E3 for ; Thu, 12 Dec 2019 09:39:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6D2412465A for ; Thu, 12 Dec 2019 09:39:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143585; bh=B87y17E+ryryoV4t72zk3yTwxNcFA1u9cEHi5OK3/0s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=AHMAT437eMxTYrOUoa6IEDYo4dHC3ItQb8ycT5xsyt99t0LaIXip2eOFHJTLG+dKE kbZIHD1Jy7o/fIR0UpH2FjopPCa0X50bKNbiabSCesBI32q9TxF2ViEFFVT1SXrdTA 1YEKORGljZa/VpsEIHeQD4r449FgDEJuG50CoBeA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728316AbfLLJjo (ORCPT ); Thu, 12 Dec 2019 04:39:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:40110 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728349AbfLLJjo (ORCPT ); Thu, 12 Dec 2019 04:39:44 -0500 Received: from localhost (unknown [193.47.165.251]) (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 997CF24658; Thu, 12 Dec 2019 09:39:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143584; bh=B87y17E+ryryoV4t72zk3yTwxNcFA1u9cEHi5OK3/0s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=juT4yMimxHcJJ3ZJcKmTV7M3NYzKymQuZ0SOzJKiAeZ953RQiDRZQqNCDpEJRTJiQ n4+Ax1YZ/KZknqKUqedlOknRNZ+DxSAwX4jyEqGGw5Hqx7YtNw8evNKzayOi3AGD9C c8kDLlZRfTCngvHzVgVee9quIC4FTyvCqaI3C2iY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 21/48] RDMA/cm: Convert REQ flow control Date: Thu, 12 Dec 2019 11:38:03 +0200 Message-Id: <20191212093830.316934-22-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Use IBA_GET/IBA_SET for REQ flow control field. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 13 ------------- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index f7ed4067743f..c60ec7967744 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1284,7 +1284,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, IBA_SET(CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg, param->remote_cm_response_timeout); cm_req_set_qp_type(req_msg, param->qp_type); - cm_req_set_flow_ctrl(req_msg, param->flow_control); + IBA_SET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg, param->flow_control); cm_req_set_starting_psn(req_msg, cpu_to_be32(param->starting_psn)); cm_req_set_local_resp_timeout(req_msg, param->local_cm_response_timeout); @@ -1699,7 +1699,7 @@ static void cm_format_req_event(struct cm_work *work, param->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); param->local_cm_response_timeout = IBA_GET(CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg); - param->flow_control = cm_req_get_flow_ctrl(req_msg); + param->flow_control = IBA_GET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg); param->remote_cm_response_timeout = cm_req_get_local_resp_timeout(req_msg); param->retry_count = cm_req_get_retry_count(req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 5e6dd00c6018..fc05a42e125d 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,19 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_flow_ctrl(struct cm_req_msg *req_msg) -{ - return be32_to_cpu(req_msg->offset40) & 0x1; -} - -static inline void cm_req_set_flow_ctrl(struct cm_req_msg *req_msg, - u8 flow_ctrl) -{ - req_msg->offset40 = cpu_to_be32((flow_ctrl & 0x1) | - (be32_to_cpu(req_msg->offset40) & - 0xFFFFFFFE)); -} - static inline __be32 cm_req_get_starting_psn(struct cm_req_msg *req_msg) { return cpu_to_be32(be32_to_cpu(req_msg->offset44) >> 8); From patchwork Thu Dec 12 09:38:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287733 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 13F3E14E3 for ; Thu, 12 Dec 2019 09:39:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DD65B2465A for ; Thu, 12 Dec 2019 09:39:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143589; bh=hY2TOofrphCS8ZDM9L8nIENdjtuB0sUUwpoGkFFxwkw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=EEGE8A1OmOea1mGLku1IKRFPvtAFZTBFpBHAgxHSWt+FHU2dcq/UbeseiR/Uzh3q5 zFou94IECw4QW92e3BRCoNQJUNR/PFrWo7bWsJrUyPvvFJViTHG0gYq7aFbXb2eycI aztiyGapWrJmtTlyuCcDNLYV/sDCFQT04BGMwQD8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728382AbfLLJjs (ORCPT ); Thu, 12 Dec 2019 04:39:48 -0500 Received: from mail.kernel.org ([198.145.29.99]:40154 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728349AbfLLJjs (ORCPT ); Thu, 12 Dec 2019 04:39:48 -0500 Received: from localhost (unknown [193.47.165.251]) (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 C9A402173E; Thu, 12 Dec 2019 09:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143587; bh=hY2TOofrphCS8ZDM9L8nIENdjtuB0sUUwpoGkFFxwkw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RuwKoURwvrJ4sqO2C1V2xw7X1B0gzvO1qAqqKyeVGpkyHJNtiUZNfY7kkSCJ4q0nU 6pZFyipRzOFZKpkmIPrL9J0G7XdDIZV7wyYeIOO+AgDSFQJ7vkGag9M9OkitCM6jUR quTnmsM4iupDufn5E2OlR5KmHWOjC8CR2ePqas3s= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 22/48] RDMA/cm: Convert starting PSN to be u32 variable Date: Thu, 12 Dec 2019 11:38:04 +0200 Message-Id: <20191212093830.316934-23-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Remove extra conversion between be32<->u32 for starting PSN by using newly created IBA_GET/IBA_SET macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 24 ++++++++++++------------ drivers/infiniband/core/cm_msgs.h | 24 ------------------------ 2 files changed, 12 insertions(+), 36 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index c60ec7967744..e9123f3b8f43 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -253,8 +253,8 @@ struct cm_id_private { u32 local_qpn; u32 remote_qpn; enum ib_qp_type qp_type; - __be32 sq_psn; - __be32 rq_psn; + u32 sq_psn; + u32 rq_psn; int timeout_ms; enum ib_mtu path_mtu; __be16 pkey; @@ -1285,7 +1285,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, param->remote_cm_response_timeout); cm_req_set_qp_type(req_msg, param->qp_type); IBA_SET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg, param->flow_control); - cm_req_set_starting_psn(req_msg, cpu_to_be32(param->starting_psn)); + IBA_SET(CM_REQ_STARTING_PSN, req_msg, param->starting_psn); cm_req_set_local_resp_timeout(req_msg, param->local_cm_response_timeout); req_msg->pkey = param->primary_path->pkey; @@ -1459,7 +1459,7 @@ int ib_send_cm_req(struct ib_cm_id *cm_id, cm_id_priv->msg->context[1] = (void *) (unsigned long) IB_CM_REQ_SENT; cm_id_priv->local_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); - cm_id_priv->rq_psn = cm_req_get_starting_psn(req_msg); + cm_id_priv->rq_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); spin_lock_irqsave(&cm_id_priv->lock, flags); ret = ib_post_send_mad(cm_id_priv->msg, NULL); @@ -1694,7 +1694,7 @@ static void cm_format_req_event(struct cm_work *work, param->remote_qkey = be32_to_cpu(req_msg->local_qkey); param->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); param->qp_type = cm_req_get_qp_type(req_msg); - param->starting_psn = be32_to_cpu(cm_req_get_starting_psn(req_msg)); + param->starting_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); param->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); param->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); param->local_cm_response_timeout = @@ -2034,7 +2034,7 @@ static int cm_req_handler(struct cm_work *work) cm_id_priv->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); cm_id_priv->path_mtu = cm_req_get_path_mtu(req_msg); cm_id_priv->pkey = req_msg->pkey; - cm_id_priv->sq_psn = cm_req_get_starting_psn(req_msg); + cm_id_priv->sq_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); cm_id_priv->retry_count = cm_req_get_retry_count(req_msg); cm_id_priv->rnr_retry_count = cm_req_get_rnr_retry_count(req_msg); cm_id_priv->qp_type = cm_req_get_qp_type(req_msg); @@ -2061,7 +2061,7 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, cm_format_mad_hdr(&rep_msg->hdr, CM_REP_ATTR_ID, cm_id_priv->tid); rep_msg->local_comm_id = cm_id_priv->id.local_id; rep_msg->remote_comm_id = cm_id_priv->id.remote_id; - cm_rep_set_starting_psn(rep_msg, cpu_to_be32(param->starting_psn)); + IBA_SET(CM_REP_STARTING_PSN, rep_msg, param->starting_psn); rep_msg->resp_resources = param->responder_resources; cm_rep_set_target_ack_delay(rep_msg, cm_id_priv->av.port->cm_dev->ack_delay); @@ -2127,7 +2127,7 @@ int ib_send_cm_rep(struct ib_cm_id *cm_id, cm_id_priv->msg = msg; cm_id_priv->initiator_depth = param->initiator_depth; cm_id_priv->responder_resources = param->responder_resources; - cm_id_priv->rq_psn = cm_rep_get_starting_psn(rep_msg); + cm_id_priv->rq_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); WARN_ONCE(param->qp_num & 0xFF000000, "IBTA declares QPN to be 24 bits, but it is 0x%X\n", param->qp_num); @@ -2218,7 +2218,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) IBA_GET(CM_REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); else param->remote_qpn = IBA_GET(CM_REP_LOCAL_QPN, rep_msg); - param->starting_psn = be32_to_cpu(cm_rep_get_starting_psn(rep_msg)); + param->starting_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); param->responder_resources = rep_msg->initiator_depth; param->initiator_depth = rep_msg->resp_resources; param->target_ack_delay = cm_rep_get_target_ack_delay(rep_msg); @@ -2365,7 +2365,7 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv->remote_qpn = IBA_GET(CM_REP_LOCAL_QPN, rep_msg); cm_id_priv->initiator_depth = rep_msg->resp_resources; cm_id_priv->responder_resources = rep_msg->initiator_depth; - cm_id_priv->sq_psn = cm_rep_get_starting_psn(rep_msg); + cm_id_priv->sq_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); cm_id_priv->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); cm_id_priv->target_ack_delay = cm_rep_get_target_ack_delay(rep_msg); cm_id_priv->av.timeout = @@ -4154,7 +4154,7 @@ static int cm_init_qp_rtr_attr(struct cm_id_private *cm_id_priv, qp_attr->ah_attr = cm_id_priv->av.ah_attr; qp_attr->path_mtu = cm_id_priv->path_mtu; qp_attr->dest_qp_num = cm_id_priv->remote_qpn; - qp_attr->rq_psn = be32_to_cpu(cm_id_priv->rq_psn); + qp_attr->rq_psn = cm_id_priv->rq_psn; if (cm_id_priv->qp_type == IB_QPT_RC || cm_id_priv->qp_type == IB_QPT_XRC_TGT) { *qp_attr_mask |= IB_QP_MAX_DEST_RD_ATOMIC | @@ -4203,7 +4203,7 @@ static int cm_init_qp_rts_attr(struct cm_id_private *cm_id_priv, case IB_CM_ESTABLISHED: if (cm_id_priv->id.lap_state == IB_CM_LAP_UNINIT) { *qp_attr_mask = IB_QP_STATE | IB_QP_SQ_PSN; - qp_attr->sq_psn = be32_to_cpu(cm_id_priv->sq_psn); + qp_attr->sq_psn = cm_id_priv->sq_psn; switch (cm_id_priv->qp_type) { case IB_QPT_RC: case IB_QPT_XRC_INI: diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index fc05a42e125d..47f66c1793a7 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,18 +70,6 @@ struct cm_req_msg { } __packed; -static inline __be32 cm_req_get_starting_psn(struct cm_req_msg *req_msg) -{ - return cpu_to_be32(be32_to_cpu(req_msg->offset44) >> 8); -} - -static inline void cm_req_set_starting_psn(struct cm_req_msg *req_msg, - __be32 starting_psn) -{ - req_msg->offset44 = cpu_to_be32((be32_to_cpu(starting_psn) << 8) | - (be32_to_cpu(req_msg->offset44) & 0x000000FF)); -} - static inline u8 cm_req_get_local_resp_timeout(struct cm_req_msg *req_msg) { return (u8) ((be32_to_cpu(req_msg->offset44) & 0xF8) >> 3); @@ -379,18 +367,6 @@ struct cm_rep_msg { } __packed; -static inline __be32 cm_rep_get_starting_psn(struct cm_rep_msg *rep_msg) -{ - return cpu_to_be32(be32_to_cpu(rep_msg->offset20) >> 8); -} - -static inline void cm_rep_set_starting_psn(struct cm_rep_msg *rep_msg, - __be32 starting_psn) -{ - rep_msg->offset20 = cpu_to_be32((be32_to_cpu(starting_psn) << 8) | - (be32_to_cpu(rep_msg->offset20) & 0x000000FF)); -} - static inline u8 cm_rep_get_target_ack_delay(struct cm_rep_msg *rep_msg) { return (u8) (rep_msg->offset26 >> 3); From patchwork Thu Dec 12 09:38:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287735 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 59120138C for ; Thu, 12 Dec 2019 09:39:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 386692465A for ; Thu, 12 Dec 2019 09:39:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143592; bh=Vjg+afCtDC0qb8YXaa+rFJR6qqYWZQZ4WpgtOCDIKOk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=mnzTWHXgcfLnD4i8SD7HoO/bf+rpMR0XAhq4iqeCcy2pLd9w0DF2ASTsmGz+UtlA2 QqPyh0QExZ27rm/Vq/5Tp0GPmCeNhpdvxTIcFo4MqRNC5EryfOZM5WUwOmVC/9Rq+k wW/QszSgPMpd42jZXseO+95hvxrnm/WBbUmF8wBg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728386AbfLLJjv (ORCPT ); Thu, 12 Dec 2019 04:39:51 -0500 Received: from mail.kernel.org ([198.145.29.99]:40196 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728349AbfLLJjv (ORCPT ); Thu, 12 Dec 2019 04:39:51 -0500 Received: from localhost (unknown [193.47.165.251]) (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 E648022527; Thu, 12 Dec 2019 09:39:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143590; bh=Vjg+afCtDC0qb8YXaa+rFJR6qqYWZQZ4WpgtOCDIKOk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U6m4C09CrsWh2Efn+apbEohDLEMHVEB6qmKF2PHIgUGU6O8REuvRgdld1/qjkz+4u QwlTRP5TwEZiM8CgisKvEFUqTUkvl10/JlEQhWVit20EPL6D3L99F7/B6NY9BlY3kN gf3qRHbGvSOVyuQePqvjSM9LI35Oi9l13SlWkG1k= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 23/48] RDMA/cm: Update REQ local response timeout Date: Thu, 12 Dec 2019 11:38:05 +0200 Message-Id: <20191212093830.316934-24-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Use newly introduces IBA_GET/IBA_SET to add access REQ local response timeout. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 8 ++++---- drivers/infiniband/core/cm_msgs.h | 12 ------------ 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index e9123f3b8f43..062579d43c56 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1286,8 +1286,8 @@ static void cm_format_req(struct cm_req_msg *req_msg, cm_req_set_qp_type(req_msg, param->qp_type); IBA_SET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg, param->flow_control); IBA_SET(CM_REQ_STARTING_PSN, req_msg, param->starting_psn); - cm_req_set_local_resp_timeout(req_msg, - param->local_cm_response_timeout); + IBA_SET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg, + param->local_cm_response_timeout); req_msg->pkey = param->primary_path->pkey; cm_req_set_path_mtu(req_msg, param->primary_path->mtu); cm_req_set_max_cm_retries(req_msg, param->max_cm_retries); @@ -1701,7 +1701,7 @@ static void cm_format_req_event(struct cm_work *work, IBA_GET(CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg); param->flow_control = IBA_GET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg); param->remote_cm_response_timeout = - cm_req_get_local_resp_timeout(req_msg); + IBA_GET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg); param->retry_count = cm_req_get_retry_count(req_msg); param->rnr_retry_count = cm_req_get_rnr_retry_count(req_msg); param->srq = cm_req_get_srq(req_msg); @@ -2027,7 +2027,7 @@ static int cm_req_handler(struct cm_work *work) } cm_id_priv->tid = req_msg->hdr.tid; cm_id_priv->timeout_ms = cm_convert_to_ms( - cm_req_get_local_resp_timeout(req_msg)); + IBA_GET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg)); cm_id_priv->max_cm_retries = cm_req_get_max_cm_retries(req_msg); cm_id_priv->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 47f66c1793a7..56832e9a0692 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,18 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_local_resp_timeout(struct cm_req_msg *req_msg) -{ - return (u8) ((be32_to_cpu(req_msg->offset44) & 0xF8) >> 3); -} - -static inline void cm_req_set_local_resp_timeout(struct cm_req_msg *req_msg, - u8 resp_timeout) -{ - req_msg->offset44 = cpu_to_be32((resp_timeout << 3) | - (be32_to_cpu(req_msg->offset44) & 0xFFFFFF07)); -} - static inline u8 cm_req_get_retry_count(struct cm_req_msg *req_msg) { return (u8) (be32_to_cpu(req_msg->offset44) & 0x7); From patchwork Thu Dec 12 09:38:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287737 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5FEBD14E3 for ; Thu, 12 Dec 2019 09:39:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3ED2B2465A for ; Thu, 12 Dec 2019 09:39:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143595; bh=XNIcEkgdkUhvB6T6uLyH4IJFxWIqk5KheXhuulsxMjg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=jSwi70u8PdWm9F5Z/qp4xLRMFW5jfQuiziDGU15NWuJORlsInmAOVcAseGEXBF743 3CFkoKH6qV35r4XzoEM7X0NjBTLKNKaAfOd1WA8LoH0ydZF/dNpMqhNx0YUgvnTaqK 0NNP/+XPHPhis3Koaox4ZBYx2Qu6oXvM7gB5jqIs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728371AbfLLJjy (ORCPT ); Thu, 12 Dec 2019 04:39:54 -0500 Received: from mail.kernel.org ([198.145.29.99]:40244 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728349AbfLLJjy (ORCPT ); Thu, 12 Dec 2019 04:39:54 -0500 Received: from localhost (unknown [193.47.165.251]) (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 142762173E; Thu, 12 Dec 2019 09:39:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143593; bh=XNIcEkgdkUhvB6T6uLyH4IJFxWIqk5KheXhuulsxMjg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c2vtzqoLXgkrDFfqev8gMjqHI6z/401CqgfwMLM/CnrUQ5fTYBR49p6Yc/J++MjN0 /j11Z9A3WW1tzE5e6nxVNBeKHZz43LrDoOg5Fguz5dc9J66TRMOMnJbrT9A3imSf2r YXrwOsG4A/BVcvauTMDGFDxvfoq+mVRSH9/R/rB8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 24/48] RDMA/cm: Convert REQ retry count to use new scheme Date: Thu, 12 Dec 2019 11:38:06 +0200 Message-Id: <20191212093830.316934-25-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REQ retry count to new IBA_GET/IBA_SET macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 12 ------------ 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 062579d43c56..3e5b06c98808 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1295,7 +1295,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, if (param->qp_type != IB_QPT_XRC_INI) { IBA_SET(CM_REQ_RESPONDED_RESOURCES, req_msg, param->responder_resources); - cm_req_set_retry_count(req_msg, param->retry_count); + IBA_SET(CM_REQ_RETRY_COUNT, req_msg, param->retry_count); cm_req_set_rnr_retry_count(req_msg, param->rnr_retry_count); cm_req_set_srq(req_msg, param->srq); } @@ -1702,7 +1702,7 @@ static void cm_format_req_event(struct cm_work *work, param->flow_control = IBA_GET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg); param->remote_cm_response_timeout = IBA_GET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg); - param->retry_count = cm_req_get_retry_count(req_msg); + param->retry_count = IBA_GET(CM_REQ_RETRY_COUNT, req_msg); param->rnr_retry_count = cm_req_get_rnr_retry_count(req_msg); param->srq = cm_req_get_srq(req_msg); param->ppath_sgid_attr = cm_id_priv->av.ah_attr.grh.sgid_attr; @@ -2035,7 +2035,7 @@ static int cm_req_handler(struct cm_work *work) cm_id_priv->path_mtu = cm_req_get_path_mtu(req_msg); cm_id_priv->pkey = req_msg->pkey; cm_id_priv->sq_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); - cm_id_priv->retry_count = cm_req_get_retry_count(req_msg); + cm_id_priv->retry_count = IBA_GET(CM_REQ_RETRY_COUNT, req_msg); cm_id_priv->rnr_retry_count = cm_req_get_rnr_retry_count(req_msg); cm_id_priv->qp_type = cm_req_get_qp_type(req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 56832e9a0692..d3f1caf07db5 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,18 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_retry_count(struct cm_req_msg *req_msg) -{ - return (u8) (be32_to_cpu(req_msg->offset44) & 0x7); -} - -static inline void cm_req_set_retry_count(struct cm_req_msg *req_msg, - u8 retry_count) -{ - req_msg->offset44 = cpu_to_be32((retry_count & 0x7) | - (be32_to_cpu(req_msg->offset44) & 0xFFFFFFF8)); -} - static inline u8 cm_req_get_path_mtu(struct cm_req_msg *req_msg) { return req_msg->offset50 >> 4; From patchwork Thu Dec 12 09:38:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287747 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9F652138C for ; Thu, 12 Dec 2019 09:40:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7E2D924658 for ; Thu, 12 Dec 2019 09:40:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143611; bh=I+UjwzleSz+069wAm3s0vncKS044UhY+KCLGn27Ba50=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=aPTzILXlnnMHxSeTF8t6Laa20RoLkZSN8ygbpSzvGyeFGMv1BB4nO5z7386wasHb6 reRiHzdviPYJs86zqJToVGVuob7UD41gFvMVHgK41092pQe2TnV7IvnqCOQ3V8V94u KMIp6SZahGl3w9+x4i6F7OTN2mUUL/lporprDanY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728423AbfLLJkL (ORCPT ); Thu, 12 Dec 2019 04:40:11 -0500 Received: from mail.kernel.org ([198.145.29.99]:40522 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728383AbfLLJkK (ORCPT ); Thu, 12 Dec 2019 04:40:10 -0500 Received: from localhost (unknown [193.47.165.251]) (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 2997022527; Thu, 12 Dec 2019 09:40:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143609; bh=I+UjwzleSz+069wAm3s0vncKS044UhY+KCLGn27Ba50=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zuBD4lNNN3XAw+lvK//iAt0c8P5pBuDz+5E93r9KOVlzFsE7Tv8x6Fd+adrMFqQjV naYoD1p/Y1sWRz/KtGcE9IrWy/v1jjDAVTGwgdCp8aSPGtfSY/xTOZkDc2MnRn7RKi aKHBnDM4O5FoJ/bo/TDVkxEh+wbiWWZ1d6a4mnJk= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 25/48] RDMA/cm: Update REQ path MTU field Date: Thu, 12 Dec 2019 11:38:07 +0200 Message-Id: <20191212093830.316934-26-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REQ path MTU field to use IBA_GET/IBA_SET macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 8 ++++---- drivers/infiniband/core/cm_msgs.h | 10 ---------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 3e5b06c98808..d7f0b929147b 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1289,7 +1289,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, IBA_SET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg, param->local_cm_response_timeout); req_msg->pkey = param->primary_path->pkey; - cm_req_set_path_mtu(req_msg, param->primary_path->mtu); + IBA_SET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg, param->primary_path->mtu); cm_req_set_max_cm_retries(req_msg, param->max_cm_retries); if (param->qp_type != IB_QPT_XRC_INI) { @@ -1576,7 +1576,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, primary_path->pkey = req_msg->pkey; primary_path->sl = cm_req_get_primary_sl(req_msg); primary_path->mtu_selector = IB_SA_EQ; - primary_path->mtu = cm_req_get_path_mtu(req_msg); + primary_path->mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg); primary_path->rate_selector = IB_SA_EQ; primary_path->rate = cm_req_get_primary_packet_rate(req_msg); primary_path->packet_life_time_selector = IB_SA_EQ; @@ -1597,7 +1597,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, alt_path->pkey = req_msg->pkey; alt_path->sl = cm_req_get_alt_sl(req_msg); alt_path->mtu_selector = IB_SA_EQ; - alt_path->mtu = cm_req_get_path_mtu(req_msg); + alt_path->mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg); alt_path->rate_selector = IB_SA_EQ; alt_path->rate = cm_req_get_alt_packet_rate(req_msg); alt_path->packet_life_time_selector = IB_SA_EQ; @@ -2032,7 +2032,7 @@ static int cm_req_handler(struct cm_work *work) cm_id_priv->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); cm_id_priv->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); - cm_id_priv->path_mtu = cm_req_get_path_mtu(req_msg); + cm_id_priv->path_mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg); cm_id_priv->pkey = req_msg->pkey; cm_id_priv->sq_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); cm_id_priv->retry_count = IBA_GET(CM_REQ_RETRY_COUNT, req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index d3f1caf07db5..dbc5acdd7a71 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,16 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_path_mtu(struct cm_req_msg *req_msg) -{ - return req_msg->offset50 >> 4; -} - -static inline void cm_req_set_path_mtu(struct cm_req_msg *req_msg, u8 path_mtu) -{ - req_msg->offset50 = (u8) ((req_msg->offset50 & 0xF) | (path_mtu << 4)); -} - static inline u8 cm_req_get_rnr_retry_count(struct cm_req_msg *req_msg) { return req_msg->offset50 & 0x7; From patchwork Thu Dec 12 09:38:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287741 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AF15614E3 for ; Thu, 12 Dec 2019 09:40:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8CC7A22527 for ; Thu, 12 Dec 2019 09:40:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143601; bh=+LsPaH2jIxW7nbre660RK1jeEaE+IL/OO5bq7xQ7tO8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=KD05Nz07QyCiXKTheh/FtpExw0XQnuKpWheFRms+X/15+UoXcua7J8wtrLUSZnCqg j6krurAyI+JmQfpddPJ0CbMfxH1BnkETw9rfK+VmpsniM4SZvmaL5UhZCcuVo7ioJa SftLpfEG2tNF5UrzzaJB2BqJhayw7Bi8/NfHlqB8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728437AbfLLJkB (ORCPT ); Thu, 12 Dec 2019 04:40:01 -0500 Received: from mail.kernel.org ([198.145.29.99]:40364 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728435AbfLLJkA (ORCPT ); Thu, 12 Dec 2019 04:40:00 -0500 Received: from localhost (unknown [193.47.165.251]) (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 BADDE2173E; Thu, 12 Dec 2019 09:39:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143600; bh=+LsPaH2jIxW7nbre660RK1jeEaE+IL/OO5bq7xQ7tO8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=THKzLM/elt/AVUAfQgtXZ7jmba8rFDb5DXtmhWFs0RWYXs2w1gKW/P6d+9rxQ0iY6 ZwcHD7Lay2FmdjV99hOi+Nq2rQ62EdQYbIKcf1Rz6sm//mQbxSaxXIP35h3kTx+gs5 0baYv53kJODg6Xnflo8wDCmA0vsSHDFasJ0d0A1w= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 26/48] RDMA/cm: Convert REQ RNR retry timeout counter Date: Thu, 12 Dec 2019 11:38:08 +0200 Message-Id: <20191212093830.316934-27-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REQ RNR retry timeout counter to new scheme. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 12 ------------ 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index d7f0b929147b..549ea886f0de 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1296,7 +1296,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, IBA_SET(CM_REQ_RESPONDED_RESOURCES, req_msg, param->responder_resources); IBA_SET(CM_REQ_RETRY_COUNT, req_msg, param->retry_count); - cm_req_set_rnr_retry_count(req_msg, param->rnr_retry_count); + IBA_SET(CM_REQ_RNR_RETRY_COUNT, req_msg, param->rnr_retry_count); cm_req_set_srq(req_msg, param->srq); } @@ -1703,7 +1703,7 @@ static void cm_format_req_event(struct cm_work *work, param->remote_cm_response_timeout = IBA_GET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg); param->retry_count = IBA_GET(CM_REQ_RETRY_COUNT, req_msg); - param->rnr_retry_count = cm_req_get_rnr_retry_count(req_msg); + param->rnr_retry_count = IBA_GET(CM_REQ_RNR_RETRY_COUNT, req_msg); param->srq = cm_req_get_srq(req_msg); param->ppath_sgid_attr = cm_id_priv->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &req_msg->private_data; @@ -2036,7 +2036,7 @@ static int cm_req_handler(struct cm_work *work) cm_id_priv->pkey = req_msg->pkey; cm_id_priv->sq_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); cm_id_priv->retry_count = IBA_GET(CM_REQ_RETRY_COUNT, req_msg); - cm_id_priv->rnr_retry_count = cm_req_get_rnr_retry_count(req_msg); + cm_id_priv->rnr_retry_count = IBA_GET(CM_REQ_RNR_RETRY_COUNT, req_msg); cm_id_priv->qp_type = cm_req_get_qp_type(req_msg); cm_format_req_event(work, cm_id_priv, &listen_cm_id_priv->id); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index dbc5acdd7a71..a754c7fa4fc0 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,18 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_rnr_retry_count(struct cm_req_msg *req_msg) -{ - return req_msg->offset50 & 0x7; -} - -static inline void cm_req_set_rnr_retry_count(struct cm_req_msg *req_msg, - u8 rnr_retry_count) -{ - req_msg->offset50 = (u8) ((req_msg->offset50 & 0xF8) | - (rnr_retry_count & 0x7)); -} - static inline u8 cm_req_get_max_cm_retries(struct cm_req_msg *req_msg) { return req_msg->offset51 >> 4; From patchwork Thu Dec 12 09:38:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287743 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 17FC3138C for ; Thu, 12 Dec 2019 09:40:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EACC424658 for ; Thu, 12 Dec 2019 09:40:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143605; bh=2Ov+7H0Rwlv2jh8mlF75RBpfNhpvW3JxM3BgFz8C3j8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=AgPbhUPMr8mf89h5BjS1LGzZKtNYFAljLVK3Gn1vsMmNbUY+9KAngbcMXJwYUx3E/ yRODX9wMvH49bBgSVO33iMhlN/tt89H9iU/XXPHZeduO9E0WjFtdxngXZQ8B/H5SFz J/puzz+QVzQ8waAOh0eW9hdmUzWS7jPAsniexqTI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728349AbfLLJkE (ORCPT ); Thu, 12 Dec 2019 04:40:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:40414 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728429AbfLLJkE (ORCPT ); Thu, 12 Dec 2019 04:40:04 -0500 Received: from localhost (unknown [193.47.165.251]) (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 DF45622527; Thu, 12 Dec 2019 09:40:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143603; bh=2Ov+7H0Rwlv2jh8mlF75RBpfNhpvW3JxM3BgFz8C3j8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SfgaYB8ONFYHxUU2daYU7M6HhF2LWpkz+CNXZA8JeM5nVO+zVLOOun/c+rTClNnX9 CnNazTDty1pdNDch7Gb51uF02D0tjMNnIkh73/+RPrqyUrN7uEI3MG7GsQ8usISy+Q Nr2VmCpY1KV+zAu8PdQ916pCbGtkzEPim/auTmxU= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 27/48] RDMA/cm: Convert REQ MAX CM retries Date: Thu, 12 Dec 2019 11:38:09 +0200 Message-Id: <20191212093830.316934-28-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REQ MAX CM retries to new scheme. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 11 ----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 549ea886f0de..1b0cdaea035e 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1290,7 +1290,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, param->local_cm_response_timeout); req_msg->pkey = param->primary_path->pkey; IBA_SET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg, param->primary_path->mtu); - cm_req_set_max_cm_retries(req_msg, param->max_cm_retries); + IBA_SET(CM_REQ_MAX_CM_RETRIES, req_msg, param->max_cm_retries); if (param->qp_type != IB_QPT_XRC_INI) { IBA_SET(CM_REQ_RESPONDED_RESOURCES, req_msg, @@ -2028,7 +2028,7 @@ static int cm_req_handler(struct cm_work *work) cm_id_priv->tid = req_msg->hdr.tid; cm_id_priv->timeout_ms = cm_convert_to_ms( IBA_GET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg)); - cm_id_priv->max_cm_retries = cm_req_get_max_cm_retries(req_msg); + cm_id_priv->max_cm_retries = IBA_GET(CM_REQ_MAX_CM_RETRIES, req_msg); cm_id_priv->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); cm_id_priv->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index a754c7fa4fc0..54573280652a 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,17 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_max_cm_retries(struct cm_req_msg *req_msg) -{ - return req_msg->offset51 >> 4; -} - -static inline void cm_req_set_max_cm_retries(struct cm_req_msg *req_msg, - u8 retries) -{ - req_msg->offset51 = (u8) ((req_msg->offset51 & 0xF) | (retries << 4)); -} - static inline u8 cm_req_get_srq(struct cm_req_msg *req_msg) { return (req_msg->offset51 & 0x8) >> 3; From patchwork Thu Dec 12 09:38:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287745 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 28AE7138C for ; Thu, 12 Dec 2019 09:40:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0841724658 for ; Thu, 12 Dec 2019 09:40:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143608; bh=30SzVLqrvzScTMJIRpaN7UgMLpXBcNAOjRTRVlvaPS4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=0NCOEr37sBD+Ic9yKAWMntrcWJ5DuFvvQR4OEsBwF75Xih0P8tiHbPsbWa1PZSnD1 5CO40kpZiz9w3frlKCmBP02xsXaeyEgpH+WRyopLd1rvXzfR5tfxaaTVzqRcSgQ6x+ 7M9xOlNJ9Jg3cG8MhOjPu+nbpfJDQRZCsAuppzGI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728339AbfLLJkH (ORCPT ); Thu, 12 Dec 2019 04:40:07 -0500 Received: from mail.kernel.org ([198.145.29.99]:40464 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728383AbfLLJkH (ORCPT ); Thu, 12 Dec 2019 04:40:07 -0500 Received: from localhost (unknown [193.47.165.251]) (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 0D5FB2173E; Thu, 12 Dec 2019 09:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143606; bh=30SzVLqrvzScTMJIRpaN7UgMLpXBcNAOjRTRVlvaPS4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SH92CDqs9KeGUqAF71ncJZP1VPgDuPkTwmGopkA2DBKfX5Dfy9rqsbEBNoN8+f40H Esqa9OvTDR9P8gV41tR5YE/ZKgEEnizUKlvt+l8HySuBKq6xEU1AvzrSMcZHWV5Fja gsFdVvmRVVImD08qWMRNkAE3jzOZnNXpUbMKDnrA= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 28/48] RDMA/cm: Convert REQ SRQ field Date: Thu, 12 Dec 2019 11:38:10 +0200 Message-Id: <20191212093830.316934-29-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REQ SRQ field to new scheme. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 11 ----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 1b0cdaea035e..673ff1da05bd 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1297,7 +1297,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, param->responder_resources); IBA_SET(CM_REQ_RETRY_COUNT, req_msg, param->retry_count); IBA_SET(CM_REQ_RNR_RETRY_COUNT, req_msg, param->rnr_retry_count); - cm_req_set_srq(req_msg, param->srq); + IBA_SET(CM_REQ_SRQ, req_msg, param->srq); } req_msg->primary_local_gid = pri_path->sgid; @@ -1704,7 +1704,7 @@ static void cm_format_req_event(struct cm_work *work, IBA_GET(CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg); param->retry_count = IBA_GET(CM_REQ_RETRY_COUNT, req_msg); param->rnr_retry_count = IBA_GET(CM_REQ_RNR_RETRY_COUNT, req_msg); - param->srq = cm_req_get_srq(req_msg); + param->srq = IBA_GET(CM_REQ_SRQ, req_msg); param->ppath_sgid_attr = cm_id_priv->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &req_msg->private_data; work->cm_event.private_data_len = CM_REQ_PRIVATE_DATA_SIZE; diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 54573280652a..23a48211d15e 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,17 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_srq(struct cm_req_msg *req_msg) -{ - return (req_msg->offset51 & 0x8) >> 3; -} - -static inline void cm_req_set_srq(struct cm_req_msg *req_msg, u8 srq) -{ - req_msg->offset51 = (u8) ((req_msg->offset51 & 0xF7) | - ((srq & 0x1) << 3)); -} - static inline __be32 cm_req_get_primary_flow_label(struct cm_req_msg *req_msg) { return cpu_to_be32(be32_to_cpu(req_msg->primary_offset88) >> 12); From patchwork Thu Dec 12 09:38:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287757 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 51500138C for ; Thu, 12 Dec 2019 09:40:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2FA2E24654 for ; Thu, 12 Dec 2019 09:40:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143627; bh=mdZ/svik/ZnMyMqdHBHNFHOQLjbJv3j/pdNqOQQ3wKU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=H3aklcgzHFUkENEbbhzdm4lJnZge8m5KPQF19TQ5DOJ+Yuxj12fUcico+Yadjq9/x 6QCcznKL9yP0y0xiHtR4opNcUAXMNeJlcgNdwrRkkSmXc9a/af93ClRbY8tjKWovJR UkJv1JCNUkbjrPRn3j6BED43C91L4CRIN6FL6Nxw= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728355AbfLLJk0 (ORCPT ); Thu, 12 Dec 2019 04:40:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:40948 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728465AbfLLJk0 (ORCPT ); Thu, 12 Dec 2019 04:40:26 -0500 Received: from localhost (unknown [193.47.165.251]) (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 DE9432173E; Thu, 12 Dec 2019 09:40:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143625; bh=mdZ/svik/ZnMyMqdHBHNFHOQLjbJv3j/pdNqOQQ3wKU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Fy4za8CkXeX3J+x2bMO6CMYN9HY7nz4cvjgVV700s4cQ9lLGvke11D6YrQqBTfH5v ca+INKmj67CsrYtIyWt9uJmG3vE6e7Sh8plwN7qPOuxvu11Ul+kpNFmzBSY21SOzuw BDyBWNwuQs2VbES7oUQXMCzCF2PAiN6wTCe0scbI= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 29/48] RDMA/cm: Convert REQ flow label field Date: Thu, 12 Dec 2019 11:38:11 +0200 Message-Id: <20191212093830.316934-30-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Use new IBA_GET/IBA_SET macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 13 ++++++++----- drivers/infiniband/core/cm_msgs.h | 28 ---------------------------- 2 files changed, 8 insertions(+), 33 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 673ff1da05bd..eebb98b48ec4 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1318,7 +1318,8 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->primary_local_lid = IB_LID_PERMISSIVE; req_msg->primary_remote_lid = IB_LID_PERMISSIVE; } - cm_req_set_primary_flow_label(req_msg, pri_path->flow_label); + IBA_SET(CM_REQ_PRIMARY_FLOW_LABEL, req_msg, + be32_to_cpu(pri_path->flow_label)); cm_req_set_primary_packet_rate(req_msg, pri_path->rate); req_msg->primary_traffic_class = pri_path->traffic_class; req_msg->primary_hop_limit = pri_path->hop_limit; @@ -1352,8 +1353,8 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->alt_local_lid = IB_LID_PERMISSIVE; req_msg->alt_remote_lid = IB_LID_PERMISSIVE; } - cm_req_set_alt_flow_label(req_msg, - alt_path->flow_label); + IBA_SET(CM_REQ_ALTERNATE_FLOW_LABEL, req_msg, + be32_to_cpu(alt_path->flow_label)); cm_req_set_alt_packet_rate(req_msg, alt_path->rate); req_msg->alt_traffic_class = alt_path->traffic_class; req_msg->alt_hop_limit = alt_path->hop_limit; @@ -1569,7 +1570,8 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, { primary_path->dgid = req_msg->primary_local_gid; primary_path->sgid = req_msg->primary_remote_gid; - primary_path->flow_label = cm_req_get_primary_flow_label(req_msg); + primary_path->flow_label = + cpu_to_be32(IBA_GET(CM_REQ_PRIMARY_FLOW_LABEL, req_msg)); primary_path->hop_limit = req_msg->primary_hop_limit; primary_path->traffic_class = req_msg->primary_traffic_class; primary_path->reversible = 1; @@ -1590,7 +1592,8 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, if (cm_req_has_alt_path(req_msg)) { alt_path->dgid = req_msg->alt_local_gid; alt_path->sgid = req_msg->alt_remote_gid; - alt_path->flow_label = cm_req_get_alt_flow_label(req_msg); + alt_path->flow_label = cpu_to_be32( + IBA_GET(CM_REQ_ALTERNATE_FLOW_LABEL, req_msg)); alt_path->hop_limit = req_msg->alt_hop_limit; alt_path->traffic_class = req_msg->alt_traffic_class; alt_path->reversible = 1; diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 23a48211d15e..09c6a393b6a1 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,20 +70,6 @@ struct cm_req_msg { } __packed; -static inline __be32 cm_req_get_primary_flow_label(struct cm_req_msg *req_msg) -{ - return cpu_to_be32(be32_to_cpu(req_msg->primary_offset88) >> 12); -} - -static inline void cm_req_set_primary_flow_label(struct cm_req_msg *req_msg, - __be32 flow_label) -{ - req_msg->primary_offset88 = cpu_to_be32( - (be32_to_cpu(req_msg->primary_offset88) & - 0x00000FFF) | - (be32_to_cpu(flow_label) << 12)); -} - static inline u8 cm_req_get_primary_packet_rate(struct cm_req_msg *req_msg) { return (u8) (be32_to_cpu(req_msg->primary_offset88) & 0x3F); @@ -132,20 +118,6 @@ static inline void cm_req_set_primary_local_ack_timeout(struct cm_req_msg *req_m (local_ack_timeout << 3)); } -static inline __be32 cm_req_get_alt_flow_label(struct cm_req_msg *req_msg) -{ - return cpu_to_be32(be32_to_cpu(req_msg->alt_offset132) >> 12); -} - -static inline void cm_req_set_alt_flow_label(struct cm_req_msg *req_msg, - __be32 flow_label) -{ - req_msg->alt_offset132 = cpu_to_be32( - (be32_to_cpu(req_msg->alt_offset132) & - 0x00000FFF) | - (be32_to_cpu(flow_label) << 12)); -} - static inline u8 cm_req_get_alt_packet_rate(struct cm_req_msg *req_msg) { return (u8) (be32_to_cpu(req_msg->alt_offset132) & 0x3F); From patchwork Thu Dec 12 09:38:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287749 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 72E4A14E3 for ; Thu, 12 Dec 2019 09:40:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 516442465A for ; Thu, 12 Dec 2019 09:40:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143614; bh=8jEvlL+8YZjhC1OX4lrU8Xa0hjOqb2ft0jWTB5C2v+Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=lZppubwQWtCnxQS0QtrAOf7erHa8cKyyrtb2eSdz9Fm1OwUpg+jBp32LX7osL7dyI fxhgTe7mq9qW1wHQsISHj09U2jyAL3Ak4OEoeHi55PecpkuBX3NDz4zf3fIaQj7/pw tD/8EuaxdRrMAS6AVFe0zfdmLS0hX7W5V42EcNww= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728383AbfLLJkN (ORCPT ); Thu, 12 Dec 2019 04:40:13 -0500 Received: from mail.kernel.org ([198.145.29.99]:40604 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728429AbfLLJkN (ORCPT ); Thu, 12 Dec 2019 04:40:13 -0500 Received: from localhost (unknown [193.47.165.251]) (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 4750F24658; Thu, 12 Dec 2019 09:40:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143612; bh=8jEvlL+8YZjhC1OX4lrU8Xa0hjOqb2ft0jWTB5C2v+Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=yKwZ4UdxZJ1rRhDZqLUvOZszkC8iy9A/axUQz5wth9MwTvtQQtCAfkK3aJq5SdwH5 ByGqaOhVYW5PNv3qsr1nqiZ4J4C9K6ND7Zb43xXwF6q6yq5yTkt3iQLKnoWLkACM4f tPhshQ+OcY25Mn0Lot0Ken3mufxi2oV/PSx2vb0w= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 30/48] RDMA/cm: Convert REQ packet rate Date: Thu, 12 Dec 2019 11:38:12 +0200 Message-Id: <20191212093830.316934-31-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Change primary and alternate packet rate fields to use newly introduced macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 8 ++++---- drivers/infiniband/core/cm_msgs.h | 26 -------------------------- 2 files changed, 4 insertions(+), 30 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index eebb98b48ec4..a8b98dc0d50c 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1320,7 +1320,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, } IBA_SET(CM_REQ_PRIMARY_FLOW_LABEL, req_msg, be32_to_cpu(pri_path->flow_label)); - cm_req_set_primary_packet_rate(req_msg, pri_path->rate); + IBA_SET(CM_REQ_PRIMARY_PACKET_RATE, req_msg, pri_path->rate); req_msg->primary_traffic_class = pri_path->traffic_class; req_msg->primary_hop_limit = pri_path->hop_limit; cm_req_set_primary_sl(req_msg, pri_path->sl); @@ -1355,7 +1355,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, } IBA_SET(CM_REQ_ALTERNATE_FLOW_LABEL, req_msg, be32_to_cpu(alt_path->flow_label)); - cm_req_set_alt_packet_rate(req_msg, alt_path->rate); + IBA_SET(CM_REQ_ALTERNATE_PACKET_RATE, req_msg, alt_path->rate); req_msg->alt_traffic_class = alt_path->traffic_class; req_msg->alt_hop_limit = alt_path->hop_limit; cm_req_set_alt_sl(req_msg, alt_path->sl); @@ -1580,7 +1580,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, primary_path->mtu_selector = IB_SA_EQ; primary_path->mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg); primary_path->rate_selector = IB_SA_EQ; - primary_path->rate = cm_req_get_primary_packet_rate(req_msg); + primary_path->rate = IBA_GET(CM_REQ_PRIMARY_PACKET_RATE, req_msg); primary_path->packet_life_time_selector = IB_SA_EQ; primary_path->packet_life_time = cm_req_get_primary_local_ack_timeout(req_msg); @@ -1602,7 +1602,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, alt_path->mtu_selector = IB_SA_EQ; alt_path->mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg); alt_path->rate_selector = IB_SA_EQ; - alt_path->rate = cm_req_get_alt_packet_rate(req_msg); + alt_path->rate = IBA_GET(CM_REQ_ALTERNATE_PACKET_RATE, req_msg); alt_path->packet_life_time_selector = IB_SA_EQ; alt_path->packet_life_time = cm_req_get_alt_local_ack_timeout(req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 09c6a393b6a1..620d344651ae 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,19 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_primary_packet_rate(struct cm_req_msg *req_msg) -{ - return (u8) (be32_to_cpu(req_msg->primary_offset88) & 0x3F); -} - -static inline void cm_req_set_primary_packet_rate(struct cm_req_msg *req_msg, - u8 rate) -{ - req_msg->primary_offset88 = cpu_to_be32( - (be32_to_cpu(req_msg->primary_offset88) & - 0xFFFFFFC0) | (rate & 0x3F)); -} - static inline u8 cm_req_get_primary_sl(struct cm_req_msg *req_msg) { return (u8) (req_msg->primary_offset94 >> 4); @@ -118,19 +105,6 @@ static inline void cm_req_set_primary_local_ack_timeout(struct cm_req_msg *req_m (local_ack_timeout << 3)); } -static inline u8 cm_req_get_alt_packet_rate(struct cm_req_msg *req_msg) -{ - return (u8) (be32_to_cpu(req_msg->alt_offset132) & 0x3F); -} - -static inline void cm_req_set_alt_packet_rate(struct cm_req_msg *req_msg, - u8 rate) -{ - req_msg->alt_offset132 = cpu_to_be32( - (be32_to_cpu(req_msg->alt_offset132) & - 0xFFFFFFC0) | (rate & 0x3F)); -} - static inline u8 cm_req_get_alt_sl(struct cm_req_msg *req_msg) { return (u8) (req_msg->alt_offset138 >> 4); From patchwork Thu Dec 12 09:38:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287751 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0E26014E3 for ; Thu, 12 Dec 2019 09:40:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E12F32465A for ; Thu, 12 Dec 2019 09:40:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143618; bh=E0boKt3WbcJHzYW4Tdxf6WUiZlFPrExT5LDH8WLF4IE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=TDEVlv1gtYyglbgaEdeE+K7h4JJTy6AKyFMERdlqQcGAi4cOYb8FLozwUqtG9dezC JjK4U+NfxixOjYEHO6GCZclXJVUK000gqFVBhkk9bZBkKDqf5E/ECBfA+LGZmJ465c DoyE5tbcJKVMnR0rqug+og2Fjmq1zmBhgJxoyeCw= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728429AbfLLJkR (ORCPT ); Thu, 12 Dec 2019 04:40:17 -0500 Received: from mail.kernel.org ([198.145.29.99]:40674 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728422AbfLLJkR (ORCPT ); Thu, 12 Dec 2019 04:40:17 -0500 Received: from localhost (unknown [193.47.165.251]) (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 6C0A622527; Thu, 12 Dec 2019 09:40:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143616; bh=E0boKt3WbcJHzYW4Tdxf6WUiZlFPrExT5LDH8WLF4IE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=maO7g/cetAybYKO0NKe9KlR3OhcfxsnTZobBnjF1TuIiD2+pBMfqSwX1n2QcDFzFm QQFG2Hvmskhr6Py8JVZhkWf0jVLcnPyc/Fg5HCj0ug1fKeXNxDm6nWmgfsa0NYPAFj 4BfWL30sS9YMJ6ohI2YmbymMoo8n12xm4vhv11BU= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 31/48] RDMA/cm: Convert REQ SL fields Date: Thu, 12 Dec 2019 11:38:13 +0200 Message-Id: <20191212093830.316934-32-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REQ SL fields. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 12 ++++++------ drivers/infiniband/core/cm_msgs.h | 22 ---------------------- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index a8b98dc0d50c..b6da28d43b46 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1323,7 +1323,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, IBA_SET(CM_REQ_PRIMARY_PACKET_RATE, req_msg, pri_path->rate); req_msg->primary_traffic_class = pri_path->traffic_class; req_msg->primary_hop_limit = pri_path->hop_limit; - cm_req_set_primary_sl(req_msg, pri_path->sl); + IBA_SET(CM_REQ_PRIMARY_SL, req_msg, pri_path->sl); cm_req_set_primary_subnet_local(req_msg, (pri_path->hop_limit <= 1)); cm_req_set_primary_local_ack_timeout(req_msg, cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, @@ -1358,7 +1358,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, IBA_SET(CM_REQ_ALTERNATE_PACKET_RATE, req_msg, alt_path->rate); req_msg->alt_traffic_class = alt_path->traffic_class; req_msg->alt_hop_limit = alt_path->hop_limit; - cm_req_set_alt_sl(req_msg, alt_path->sl); + IBA_SET(CM_REQ_ALTERNATE_SL, req_msg, alt_path->sl); cm_req_set_alt_subnet_local(req_msg, (alt_path->hop_limit <= 1)); cm_req_set_alt_local_ack_timeout(req_msg, cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, @@ -1576,7 +1576,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, primary_path->traffic_class = req_msg->primary_traffic_class; primary_path->reversible = 1; primary_path->pkey = req_msg->pkey; - primary_path->sl = cm_req_get_primary_sl(req_msg); + primary_path->sl = IBA_GET(CM_REQ_PRIMARY_SL, req_msg); primary_path->mtu_selector = IB_SA_EQ; primary_path->mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg); primary_path->rate_selector = IB_SA_EQ; @@ -1598,7 +1598,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, alt_path->traffic_class = req_msg->alt_traffic_class; alt_path->reversible = 1; alt_path->pkey = req_msg->pkey; - alt_path->sl = cm_req_get_alt_sl(req_msg); + alt_path->sl = IBA_GET(CM_REQ_ALTERNATE_SL, req_msg); alt_path->mtu_selector = IB_SA_EQ; alt_path->mtu = IBA_GET(CM_REQ_PATH_PACKET_PAYLOAD_MTU, req_msg); alt_path->rate_selector = IB_SA_EQ; @@ -1910,7 +1910,7 @@ static void cm_process_routed_req(struct cm_req_msg *req_msg, struct ib_wc *wc) if (!cm_req_get_primary_subnet_local(req_msg)) { if (req_msg->primary_local_lid == IB_LID_PERMISSIVE) { req_msg->primary_local_lid = ib_lid_be16(wc->slid); - cm_req_set_primary_sl(req_msg, wc->sl); + IBA_SET(CM_REQ_PRIMARY_SL, req_msg, wc->sl); } if (req_msg->primary_remote_lid == IB_LID_PERMISSIVE) @@ -1920,7 +1920,7 @@ static void cm_process_routed_req(struct cm_req_msg *req_msg, struct ib_wc *wc) if (!cm_req_get_alt_subnet_local(req_msg)) { if (req_msg->alt_local_lid == IB_LID_PERMISSIVE) { req_msg->alt_local_lid = ib_lid_be16(wc->slid); - cm_req_set_alt_sl(req_msg, wc->sl); + IBA_SET(CM_REQ_ALTERNATE_SL, req_msg, wc->sl); } if (req_msg->alt_remote_lid == IB_LID_PERMISSIVE) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 620d344651ae..b82eb10e22f6 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,17 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_primary_sl(struct cm_req_msg *req_msg) -{ - return (u8) (req_msg->primary_offset94 >> 4); -} - -static inline void cm_req_set_primary_sl(struct cm_req_msg *req_msg, u8 sl) -{ - req_msg->primary_offset94 = (u8) ((req_msg->primary_offset94 & 0x0F) | - (sl << 4)); -} - static inline u8 cm_req_get_primary_subnet_local(struct cm_req_msg *req_msg) { return (u8) ((req_msg->primary_offset94 & 0x08) >> 3); @@ -105,17 +94,6 @@ static inline void cm_req_set_primary_local_ack_timeout(struct cm_req_msg *req_m (local_ack_timeout << 3)); } -static inline u8 cm_req_get_alt_sl(struct cm_req_msg *req_msg) -{ - return (u8) (req_msg->alt_offset138 >> 4); -} - -static inline void cm_req_set_alt_sl(struct cm_req_msg *req_msg, u8 sl) -{ - req_msg->alt_offset138 = (u8) ((req_msg->alt_offset138 & 0x0F) | - (sl << 4)); -} - static inline u8 cm_req_get_alt_subnet_local(struct cm_req_msg *req_msg) { return (u8) ((req_msg->alt_offset138 & 0x08) >> 3); From patchwork Thu Dec 12 09:38:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287753 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F1DD6138C for ; Thu, 12 Dec 2019 09:40:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D06FA2465B for ; Thu, 12 Dec 2019 09:40:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143620; bh=1MUaeCQCqDeb3pyieL5IHACYtN3paRyQK9IRSQC418I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=fLP0nvy9ZVnbdVqIvKw7zYCnAQmFrgCgQZx6NVv+BK6/pLnquF6X2oj7XMKUu0irP Nbq9ttTbvhkX4ArPFu7KIL2FmGmCAfJjtnsXrnkFez9boOLzLbZY8TjhC3XtRW0Ip/ dyFOQ10xNiCgjGwIaxCY5BibRqQZvlY+LqjFTt98= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728381AbfLLJkU (ORCPT ); Thu, 12 Dec 2019 04:40:20 -0500 Received: from mail.kernel.org ([198.145.29.99]:40768 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728422AbfLLJkU (ORCPT ); Thu, 12 Dec 2019 04:40:20 -0500 Received: from localhost (unknown [193.47.165.251]) (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 905AA2173E; Thu, 12 Dec 2019 09:40:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143619; bh=1MUaeCQCqDeb3pyieL5IHACYtN3paRyQK9IRSQC418I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zYDbJEse9Eyy8DlNZzQ5qjYH7axDeOIti66EJEz0s3dgHrHHxW8f99q/McTmwzWeo 1sEC+26JNre2P7Zqb/j9AoZ0v1cHOxUqXMzTdkxJ5pXE3r7MGC/EOTKXBq1ozy3s5v EOd6bv/uKyI+4N6bbuCF2cCyD4vCbU8WSDtr8xD8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 32/48] RDMA/cm: Convert REQ subnet local fields Date: Thu, 12 Dec 2019 11:38:14 +0200 Message-Id: <20191212093830.316934-33-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REQ subnet local fields. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 9 +++++---- drivers/infiniband/core/cm_msgs.h | 24 ------------------------ 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index b6da28d43b46..1a5d5d401c72 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1324,7 +1324,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->primary_traffic_class = pri_path->traffic_class; req_msg->primary_hop_limit = pri_path->hop_limit; IBA_SET(CM_REQ_PRIMARY_SL, req_msg, pri_path->sl); - cm_req_set_primary_subnet_local(req_msg, (pri_path->hop_limit <= 1)); + IBA_SET(CM_REQ_PRIMARY_SUBNET_LOCAL, req_msg, (pri_path->hop_limit <= 1)); cm_req_set_primary_local_ack_timeout(req_msg, cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, pri_path->packet_life_time)); @@ -1359,7 +1359,8 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->alt_traffic_class = alt_path->traffic_class; req_msg->alt_hop_limit = alt_path->hop_limit; IBA_SET(CM_REQ_ALTERNATE_SL, req_msg, alt_path->sl); - cm_req_set_alt_subnet_local(req_msg, (alt_path->hop_limit <= 1)); + IBA_SET(CM_REQ_ALTERNATE_SUBNET_LOCAL, req_msg, + (alt_path->hop_limit <= 1)); cm_req_set_alt_local_ack_timeout(req_msg, cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, alt_path->packet_life_time)); @@ -1907,7 +1908,7 @@ static struct cm_id_private * cm_match_req(struct cm_work *work, */ static void cm_process_routed_req(struct cm_req_msg *req_msg, struct ib_wc *wc) { - if (!cm_req_get_primary_subnet_local(req_msg)) { + if (!IBA_GET(CM_REQ_PRIMARY_SUBNET_LOCAL, req_msg)) { if (req_msg->primary_local_lid == IB_LID_PERMISSIVE) { req_msg->primary_local_lid = ib_lid_be16(wc->slid); IBA_SET(CM_REQ_PRIMARY_SL, req_msg, wc->sl); @@ -1917,7 +1918,7 @@ static void cm_process_routed_req(struct cm_req_msg *req_msg, struct ib_wc *wc) req_msg->primary_remote_lid = cpu_to_be16(wc->dlid_path_bits); } - if (!cm_req_get_alt_subnet_local(req_msg)) { + if (!IBA_GET(CM_REQ_ALTERNATE_SUBNET_LOCAL, req_msg)) { if (req_msg->alt_local_lid == IB_LID_PERMISSIVE) { req_msg->alt_local_lid = ib_lid_be16(wc->slid); IBA_SET(CM_REQ_ALTERNATE_SL, req_msg, wc->sl); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index b82eb10e22f6..3933c29b569b 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,18 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_primary_subnet_local(struct cm_req_msg *req_msg) -{ - return (u8) ((req_msg->primary_offset94 & 0x08) >> 3); -} - -static inline void cm_req_set_primary_subnet_local(struct cm_req_msg *req_msg, - u8 subnet_local) -{ - req_msg->primary_offset94 = (u8) ((req_msg->primary_offset94 & 0xF7) | - ((subnet_local & 0x1) << 3)); -} - static inline u8 cm_req_get_primary_local_ack_timeout(struct cm_req_msg *req_msg) { return (u8) (req_msg->primary_offset95 >> 3); @@ -94,18 +82,6 @@ static inline void cm_req_set_primary_local_ack_timeout(struct cm_req_msg *req_m (local_ack_timeout << 3)); } -static inline u8 cm_req_get_alt_subnet_local(struct cm_req_msg *req_msg) -{ - return (u8) ((req_msg->alt_offset138 & 0x08) >> 3); -} - -static inline void cm_req_set_alt_subnet_local(struct cm_req_msg *req_msg, - u8 subnet_local) -{ - req_msg->alt_offset138 = (u8) ((req_msg->alt_offset138 & 0xF7) | - ((subnet_local & 0x1) << 3)); -} - static inline u8 cm_req_get_alt_local_ack_timeout(struct cm_req_msg *req_msg) { return (u8) (req_msg->alt_offset139 >> 3); From patchwork Thu Dec 12 09:38:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287755 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 812C8138C for ; Thu, 12 Dec 2019 09:40:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5DDCD2173E for ; Thu, 12 Dec 2019 09:40:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143624; bh=ChyQy0qHh6OLei+VapxDBfb7hdq0L4HelfN63CaWDew=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=PiNJ+R8ZvC5Sz/DG+06VRybgJaRoibYx4qxjW4oHxYXIOS7SiGbgZzMw80Aey39W4 CibO53OlvV/iiJhi00Nv3mWd3YRC3BL4ToPXJnsogIfDCL9YfgVShiLqZtRbT6eZEE LGOut5RZ+biDqP50zLEjr6Rv5jDpQp2Jrwj8/GE0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728373AbfLLJkX (ORCPT ); Thu, 12 Dec 2019 04:40:23 -0500 Received: from mail.kernel.org ([198.145.29.99]:40878 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728422AbfLLJkX (ORCPT ); Thu, 12 Dec 2019 04:40:23 -0500 Received: from localhost (unknown [193.47.165.251]) (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 BFD3D2465B; Thu, 12 Dec 2019 09:40:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143622; bh=ChyQy0qHh6OLei+VapxDBfb7hdq0L4HelfN63CaWDew=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1xcz0sDDAobwlergLYZbyDn5N+pGMjoxszzv5GcZcm5nKAsyicWn2zeIm348toQ/d 8/rVzG1xxCHdw4YnLRWWf6BfmHC2Bvzt052Kfk3sefVZ+btA0ZEpTMHn9d6gHOMIGO Ae2PghmgRUCQwO4t9d2jjFoHf2i2I5LXBUbidb1g= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 33/48] RDMA/cm: Convert REQ local ack timeout Date: Thu, 12 Dec 2019 11:38:15 +0200 Message-Id: <20191212093830.316934-34-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REQ local ack timeout fields. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 18 +++++++++--------- drivers/infiniband/core/cm_msgs.h | 24 ------------------------ 2 files changed, 9 insertions(+), 33 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 1a5d5d401c72..e25629a910f0 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1325,9 +1325,9 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->primary_hop_limit = pri_path->hop_limit; IBA_SET(CM_REQ_PRIMARY_SL, req_msg, pri_path->sl); IBA_SET(CM_REQ_PRIMARY_SUBNET_LOCAL, req_msg, (pri_path->hop_limit <= 1)); - cm_req_set_primary_local_ack_timeout(req_msg, - cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, - pri_path->packet_life_time)); + IBA_SET(CM_REQ_PRIMARY_LOCAL_ACK_TIMEOUT, req_msg, + cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, + pri_path->packet_life_time)); if (alt_path) { bool alt_ext = false; @@ -1360,10 +1360,10 @@ static void cm_format_req(struct cm_req_msg *req_msg, req_msg->alt_hop_limit = alt_path->hop_limit; IBA_SET(CM_REQ_ALTERNATE_SL, req_msg, alt_path->sl); IBA_SET(CM_REQ_ALTERNATE_SUBNET_LOCAL, req_msg, - (alt_path->hop_limit <= 1)); - cm_req_set_alt_local_ack_timeout(req_msg, - cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, - alt_path->packet_life_time)); + (alt_path->hop_limit <= 1)); + IBA_SET(CM_REQ_ALTERNATE_LOCAL_ACK_TIMEOUT, req_msg, + cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, + alt_path->packet_life_time)); } if (param->private_data && param->private_data_len) @@ -1584,7 +1584,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, primary_path->rate = IBA_GET(CM_REQ_PRIMARY_PACKET_RATE, req_msg); primary_path->packet_life_time_selector = IB_SA_EQ; primary_path->packet_life_time = - cm_req_get_primary_local_ack_timeout(req_msg); + IBA_GET(CM_REQ_PRIMARY_LOCAL_ACK_TIMEOUT, req_msg); primary_path->packet_life_time -= (primary_path->packet_life_time > 0); primary_path->service_id = req_msg->service_id; if (sa_path_is_roce(primary_path)) @@ -1606,7 +1606,7 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, alt_path->rate = IBA_GET(CM_REQ_ALTERNATE_PACKET_RATE, req_msg); alt_path->packet_life_time_selector = IB_SA_EQ; alt_path->packet_life_time = - cm_req_get_alt_local_ack_timeout(req_msg); + IBA_GET(CM_REQ_ALTERNATE_LOCAL_ACK_TIMEOUT, req_msg); alt_path->packet_life_time -= (alt_path->packet_life_time > 0); alt_path->service_id = req_msg->service_id; diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 3933c29b569b..6f52a8f0bee3 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,30 +70,6 @@ struct cm_req_msg { } __packed; -static inline u8 cm_req_get_primary_local_ack_timeout(struct cm_req_msg *req_msg) -{ - return (u8) (req_msg->primary_offset95 >> 3); -} - -static inline void cm_req_set_primary_local_ack_timeout(struct cm_req_msg *req_msg, - u8 local_ack_timeout) -{ - req_msg->primary_offset95 = (u8) ((req_msg->primary_offset95 & 0x07) | - (local_ack_timeout << 3)); -} - -static inline u8 cm_req_get_alt_local_ack_timeout(struct cm_req_msg *req_msg) -{ - return (u8) (req_msg->alt_offset139 >> 3); -} - -static inline void cm_req_set_alt_local_ack_timeout(struct cm_req_msg *req_msg, - u8 local_ack_timeout) -{ - req_msg->alt_offset139 = (u8) ((req_msg->alt_offset139 & 0x07) | - (local_ack_timeout << 3)); -} - /* Message REJected or MRAed */ enum cm_msg_response { CM_MSG_RESPONSE_REQ = 0x0, From patchwork Thu Dec 12 09:38:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287765 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1258614E3 for ; Thu, 12 Dec 2019 09:40:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E59FD2465A for ; Thu, 12 Dec 2019 09:40:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143640; bh=ifNojsfKCtNpTk2w/LKvUybkISqNnunGuoNgrB38J7c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=glo7D/CTGoV1ekab3r/3WCgEllN8x2isFBOVMVsu+tus+2qchKMMBKLqO5M1dq3R3 BxpfNqn8uGCJh9WO1zRLMm7Eeq1MD0x34BAZo7sYuKnh0UsAvpIvkkqK9hysdqRNDk 0Vul0rF9UbImcdLrFJJ/5xdV7005sLnp8iNn4qKk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728435AbfLLJkj (ORCPT ); Thu, 12 Dec 2019 04:40:39 -0500 Received: from mail.kernel.org ([198.145.29.99]:41364 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728282AbfLLJkj (ORCPT ); Thu, 12 Dec 2019 04:40:39 -0500 Received: from localhost (unknown [193.47.165.251]) (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 CDBB42173E; Thu, 12 Dec 2019 09:40:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143638; bh=ifNojsfKCtNpTk2w/LKvUybkISqNnunGuoNgrB38J7c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nMQQXNfJMQo+NH5xR2mUyojExaX6zys9Suz1ZTO/U75C/R6ub1vJhc/BYqpQmRsP6 J6AgExBqNIPsqF1UdtNzW6HrHcNO7I+S0XGlJ/jvRsG7S1aqnbcZ05gu8HQYUuS4qD N/xNKl6IUZVSE+8X61zlwsKABhwcO811s8cdPdOg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 34/48] RDMA/cm: Convert MRA MRAed field Date: Thu, 12 Dec 2019 11:38:16 +0200 Message-Id: <20191212093830.316934-35-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert MRA MRAed field. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 11 ++++++----- drivers/infiniband/core/cm_msgs.h | 10 ---------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index e25629a910f0..080c4411ae16 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1745,7 +1745,7 @@ static void cm_format_mra(struct cm_mra_msg *mra_msg, const void *private_data, u8 private_data_len) { cm_format_mad_hdr(&mra_msg->hdr, CM_MRA_ATTR_ID, cm_id_priv->tid); - cm_mra_set_msg_mraed(mra_msg, msg_mraed); + IBA_SET(CM_MRA_MESSAGE_MRAED, mra_msg, msg_mraed); mra_msg->local_comm_id = cm_id_priv->id.local_id; mra_msg->remote_comm_id = cm_id_priv->id.remote_id; cm_mra_set_service_timeout(mra_msg, service_timeout); @@ -3010,7 +3010,7 @@ EXPORT_SYMBOL(ib_send_cm_mra); static struct cm_id_private * cm_acquire_mraed_id(struct cm_mra_msg *mra_msg) { - switch (cm_mra_get_msg_mraed(mra_msg)) { + switch (IBA_GET(CM_MRA_MESSAGE_MRAED, mra_msg)) { case CM_MSG_RESPONSE_REQ: return cm_acquire_id(mra_msg->remote_comm_id, 0); case CM_MSG_RESPONSE_REP: @@ -3043,21 +3043,22 @@ static int cm_mra_handler(struct cm_work *work) spin_lock_irq(&cm_id_priv->lock); switch (cm_id_priv->id.state) { case IB_CM_REQ_SENT: - if (cm_mra_get_msg_mraed(mra_msg) != CM_MSG_RESPONSE_REQ || + if (IBA_GET(CM_MRA_MESSAGE_MRAED, mra_msg) != CM_MSG_RESPONSE_REQ || ib_modify_mad(cm_id_priv->av.port->mad_agent, cm_id_priv->msg, timeout)) goto out; cm_id_priv->id.state = IB_CM_MRA_REQ_RCVD; break; case IB_CM_REP_SENT: - if (cm_mra_get_msg_mraed(mra_msg) != CM_MSG_RESPONSE_REP || + if (IBA_GET(CM_MRA_MESSAGE_MRAED, mra_msg) != CM_MSG_RESPONSE_REP || ib_modify_mad(cm_id_priv->av.port->mad_agent, cm_id_priv->msg, timeout)) goto out; cm_id_priv->id.state = IB_CM_MRA_REP_RCVD; break; case IB_CM_ESTABLISHED: - if (cm_mra_get_msg_mraed(mra_msg) != CM_MSG_RESPONSE_OTHER || + if (IBA_GET(CM_MRA_MESSAGE_MRAED, mra_msg) != + CM_MSG_RESPONSE_OTHER || cm_id_priv->id.lap_state != IB_CM_LAP_SENT || ib_modify_mad(cm_id_priv->av.port->mad_agent, cm_id_priv->msg, timeout)) { diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 6f52a8f0bee3..e096b1f572bc 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -91,16 +91,6 @@ enum cm_msg_response { } __packed; -static inline u8 cm_mra_get_msg_mraed(struct cm_mra_msg *mra_msg) -{ - return (u8) (mra_msg->offset8 >> 6); -} - -static inline void cm_mra_set_msg_mraed(struct cm_mra_msg *mra_msg, u8 msg) -{ - mra_msg->offset8 = (u8) ((mra_msg->offset8 & 0x3F) | (msg << 6)); -} - static inline u8 cm_mra_get_service_timeout(struct cm_mra_msg *mra_msg) { return (u8) (mra_msg->offset9 >> 3); From patchwork Thu Dec 12 09:38:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287759 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 091B914E3 for ; Thu, 12 Dec 2019 09:40:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DC8F62465A for ; Thu, 12 Dec 2019 09:40:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143629; bh=QwJroHYyDSD2YVXDm/sHAlDiTjnTE9tubeIRfc6ghjQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Xfnf+SEUvhgVtKuKcMuBi6dy8SeAJ4PsJkVK11FnwhXflQqKPWimRk7yTMlwoiqTP W8s5sVf+yiAGb5jdTl/CRyHbQbp9gfBDyhwGYwN22Kzs6GXKfpc8cKqE+Dyl4tVb2l fnz5NvhGS4Afqx+xbRqRZFKWyoKpqDG6Xbl2lS1k= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728419AbfLLJk3 (ORCPT ); Thu, 12 Dec 2019 04:40:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:41052 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728422AbfLLJk3 (ORCPT ); Thu, 12 Dec 2019 04:40:29 -0500 Received: from localhost (unknown [193.47.165.251]) (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 1078222527; Thu, 12 Dec 2019 09:40:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143628; bh=QwJroHYyDSD2YVXDm/sHAlDiTjnTE9tubeIRfc6ghjQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cZoy8Guz/meQ2EQgp7ykP1m44j6kI1psa6aiwD7Gis8fvqZXGezeQEt3EoIfExpYE 8pBERYeEFLe+Gy0kQPgFKYJnqx5NfAcm4YFVIPuNWCjbkB+ZvQUUYoHxsvMV1sOAZj g0I+M7JdPwk3Jtz4DMTl+l0kXQ/i/fSgXsj9+wjY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 35/48] RDMA/cm: Convert MRA service timeout Date: Thu, 12 Dec 2019 11:38:17 +0200 Message-Id: <20191212093830.316934-36-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert MRA service timeout field. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 12 ------------ 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 080c4411ae16..a5fc328d6d23 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1748,7 +1748,7 @@ static void cm_format_mra(struct cm_mra_msg *mra_msg, IBA_SET(CM_MRA_MESSAGE_MRAED, mra_msg, msg_mraed); mra_msg->local_comm_id = cm_id_priv->id.local_id; mra_msg->remote_comm_id = cm_id_priv->id.remote_id; - cm_mra_set_service_timeout(mra_msg, service_timeout); + IBA_SET(CM_MRA_SERVICE_TIMEOUT, mra_msg, service_timeout); if (private_data && private_data_len) memcpy(mra_msg->private_data, private_data, private_data_len); @@ -3036,8 +3036,8 @@ static int cm_mra_handler(struct cm_work *work) work->cm_event.private_data = &mra_msg->private_data; work->cm_event.private_data_len = CM_MRA_PRIVATE_DATA_SIZE; work->cm_event.param.mra_rcvd.service_timeout = - cm_mra_get_service_timeout(mra_msg); - timeout = cm_convert_to_ms(cm_mra_get_service_timeout(mra_msg)) + + IBA_GET(CM_MRA_SERVICE_TIMEOUT, mra_msg); + timeout = cm_convert_to_ms(IBA_GET(CM_MRA_SERVICE_TIMEOUT, mra_msg)) + cm_convert_to_ms(cm_id_priv->av.timeout); spin_lock_irq(&cm_id_priv->lock); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index e096b1f572bc..601b0fd2c86c 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -91,18 +91,6 @@ enum cm_msg_response { } __packed; -static inline u8 cm_mra_get_service_timeout(struct cm_mra_msg *mra_msg) -{ - return (u8) (mra_msg->offset9 >> 3); -} - -static inline void cm_mra_set_service_timeout(struct cm_mra_msg *mra_msg, - u8 service_timeout) -{ - mra_msg->offset9 = (u8) ((mra_msg->offset9 & 0x07) | - (service_timeout << 3)); -} - struct cm_rej_msg { struct ib_mad_hdr hdr; From patchwork Thu Dec 12 09:38:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287761 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 916A614E3 for ; Thu, 12 Dec 2019 09:40:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 708EE2465B for ; Thu, 12 Dec 2019 09:40:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143633; bh=FYbyjNmRJcPdpW6QCBFPkr05UzOgxiF9ti6C8xJ35zI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=zqtEP9GLicKWeOmjtmhFycE23If1yGyPf5PP6nJGDb5w1Wmrz5Lw8D+JJtuk43amQ faXata7XH7xoZ3TH9ZyO6/kV0L1/TTMy1/D19m6kzpv+9yc0hoZPYZDfGHo/JVwayz mpt9wTnlJLzSk6WNza/w/3yqdvsqgch+Nym38eU8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728422AbfLLJkd (ORCPT ); Thu, 12 Dec 2019 04:40:33 -0500 Received: from mail.kernel.org ([198.145.29.99]:41150 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728436AbfLLJkc (ORCPT ); Thu, 12 Dec 2019 04:40:32 -0500 Received: from localhost (unknown [193.47.165.251]) (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 36DA12173E; Thu, 12 Dec 2019 09:40:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143631; bh=FYbyjNmRJcPdpW6QCBFPkr05UzOgxiF9ti6C8xJ35zI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1at52LV4fRKzZyiAV0LTOy6uc3j5phnFqj8TEpWjc7r0JyLJRrSt1yPLK2WC3O5ZH F9aVAoccD2cgLnxD9VFugYJk+VaDWmpjhO7jlQ60o5ONeHzo37J0W2QwQb5oQZRpG9 HUVa0WjsWveiq3RYHIAKSO6JyxJjPutwkzJzEeoo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 36/48] RDMA/cm: Update REJ struct to use new scheme Date: Thu, 12 Dec 2019 11:38:18 +0200 Message-Id: <20191212093830.316934-37-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert both message rejected and rejected info length fields. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 18 +++++++++--------- drivers/infiniband/core/cm_msgs.h | 21 --------------------- 2 files changed, 9 insertions(+), 30 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index a5fc328d6d23..b69611c088b8 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1501,11 +1501,11 @@ static int cm_issue_rej(struct cm_port *port, cm_format_mad_hdr(&rej_msg->hdr, CM_REJ_ATTR_ID, rcv_msg->hdr.tid); rej_msg->remote_comm_id = rcv_msg->local_comm_id; rej_msg->local_comm_id = rcv_msg->remote_comm_id; - cm_rej_set_msg_rejected(rej_msg, msg_rejected); + IBA_SET(CM_REJ_MESSAGE_REJECTED, rej_msg, msg_rejected); rej_msg->reason = cpu_to_be16(reason); if (ari && ari_length) { - cm_rej_set_reject_info_len(rej_msg, ari_length); + IBA_SET(CM_REJ_REJECTED_INFO_LENGTH, rej_msg, ari_length); memcpy(rej_msg->ari, ari, ari_length); } @@ -1768,26 +1768,26 @@ static void cm_format_rej(struct cm_rej_msg *rej_msg, switch(cm_id_priv->id.state) { case IB_CM_REQ_RCVD: rej_msg->local_comm_id = 0; - cm_rej_set_msg_rejected(rej_msg, CM_MSG_RESPONSE_REQ); + IBA_SET(CM_REJ_MESSAGE_REJECTED, rej_msg, CM_MSG_RESPONSE_REQ); break; case IB_CM_MRA_REQ_SENT: rej_msg->local_comm_id = cm_id_priv->id.local_id; - cm_rej_set_msg_rejected(rej_msg, CM_MSG_RESPONSE_REQ); + IBA_SET(CM_REJ_MESSAGE_REJECTED, rej_msg, CM_MSG_RESPONSE_REQ); break; case IB_CM_REP_RCVD: case IB_CM_MRA_REP_SENT: rej_msg->local_comm_id = cm_id_priv->id.local_id; - cm_rej_set_msg_rejected(rej_msg, CM_MSG_RESPONSE_REP); + IBA_SET(CM_REJ_MESSAGE_REJECTED, rej_msg, CM_MSG_RESPONSE_REP); break; default: rej_msg->local_comm_id = cm_id_priv->id.local_id; - cm_rej_set_msg_rejected(rej_msg, CM_MSG_RESPONSE_OTHER); + IBA_SET(CM_REJ_MESSAGE_REJECTED, rej_msg, CM_MSG_RESPONSE_OTHER); break; } rej_msg->reason = cpu_to_be16(reason); if (ari && ari_length) { - cm_rej_set_reject_info_len(rej_msg, ari_length); + IBA_SET(CM_REJ_REJECTED_INFO_LENGTH, rej_msg, ari_length); memcpy(rej_msg->ari, ari, ari_length); } @@ -2818,7 +2818,7 @@ static void cm_format_rej_event(struct cm_work *work) rej_msg = (struct cm_rej_msg *)work->mad_recv_wc->recv_buf.mad; param = &work->cm_event.param.rej_rcvd; param->ari = rej_msg->ari; - param->ari_length = cm_rej_get_reject_info_len(rej_msg); + param->ari_length = IBA_GET(CM_REJ_REJECTED_INFO_LENGTH, rej_msg); param->reason = __be16_to_cpu(rej_msg->reason); work->cm_event.private_data = &rej_msg->private_data; work->cm_event.private_data_len = CM_REJ_PRIVATE_DATA_SIZE; @@ -2849,7 +2849,7 @@ static struct cm_id_private * cm_acquire_rejected_id(struct cm_rej_msg *rej_msg) cm_id_priv = NULL; } spin_unlock_irq(&cm.lock); - } else if (cm_rej_get_msg_rejected(rej_msg) == CM_MSG_RESPONSE_REQ) + } else if (IBA_GET(CM_REJ_MESSAGE_REJECTED, rej_msg) == CM_MSG_RESPONSE_REQ) cm_id_priv = cm_acquire_id(rej_msg->remote_comm_id, 0); else cm_id_priv = cm_acquire_id(rej_msg->remote_comm_id, remote_id); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 601b0fd2c86c..5a76b63dde12 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -107,27 +107,6 @@ struct cm_rej_msg { } __packed; -static inline u8 cm_rej_get_msg_rejected(struct cm_rej_msg *rej_msg) -{ - return (u8) (rej_msg->offset8 >> 6); -} - -static inline void cm_rej_set_msg_rejected(struct cm_rej_msg *rej_msg, u8 msg) -{ - rej_msg->offset8 = (u8) ((rej_msg->offset8 & 0x3F) | (msg << 6)); -} - -static inline u8 cm_rej_get_reject_info_len(struct cm_rej_msg *rej_msg) -{ - return (u8) (rej_msg->offset9 >> 1); -} - -static inline void cm_rej_set_reject_info_len(struct cm_rej_msg *rej_msg, - u8 len) -{ - rej_msg->offset9 = (u8) ((rej_msg->offset9 & 0x1) | (len << 1)); -} - struct cm_rep_msg { struct ib_mad_hdr hdr; From patchwork Thu Dec 12 09:38:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287763 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 972D5138C for ; Thu, 12 Dec 2019 09:40:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 764912465A for ; Thu, 12 Dec 2019 09:40:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143636; bh=q0/YF26BON0iMMz4vVwdz2zwBXq9pn+iJkbp2AqNCaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=kw4mOY08YK/l0Q22h801KwpRs4pZ5A02Nro3V0s4XVg/wg3SVhAB8kS1ruvRjH7hn BKTVIwMvxS39jWwowBEvJwQGUq7XR9vmE657cL9lbf92awNkauR+yegzHuQ9lFFcMz GbXkyb87NbDTetj1QdCFNkM3cI2TgczRqpipwQ+I= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728461AbfLLJkg (ORCPT ); Thu, 12 Dec 2019 04:40:36 -0500 Received: from mail.kernel.org ([198.145.29.99]:41250 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728436AbfLLJkf (ORCPT ); Thu, 12 Dec 2019 04:40:35 -0500 Received: from localhost (unknown [193.47.165.251]) (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 57C9E22527; Thu, 12 Dec 2019 09:40:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143634; bh=q0/YF26BON0iMMz4vVwdz2zwBXq9pn+iJkbp2AqNCaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s9PEZgQEKAfeMICRjBaalbqq5wDhDpzV9S62qFbbxaS/Sm4bhaof2+TfpMPbGlbdl z5JUn5kQzCDlhOzQG1e8iX4kYRIAbOAyamyt5xFEaLrzxxEVjw+0JfZB0AelCiGTA/ xnqRGmQ7AhnYKOu4AjIV99DOmyVHHbu39LjuLPSs= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 37/48] RDMA/cm: Convert REP target ack delay field Date: Thu, 12 Dec 2019 11:38:19 +0200 Message-Id: <20191212093830.316934-38-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REP target ack delay field. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 8 ++++---- drivers/infiniband/core/cm_msgs.h | 12 ------------ 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index b69611c088b8..ca2d50a3c7da 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2067,8 +2067,8 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, rep_msg->remote_comm_id = cm_id_priv->id.remote_id; IBA_SET(CM_REP_STARTING_PSN, rep_msg, param->starting_psn); rep_msg->resp_resources = param->responder_resources; - cm_rep_set_target_ack_delay(rep_msg, - cm_id_priv->av.port->cm_dev->ack_delay); + IBA_SET(CM_REP_TARGET_ACK_DELAY, rep_msg, + cm_id_priv->av.port->cm_dev->ack_delay); cm_rep_set_failover(rep_msg, param->failover_accepted); cm_rep_set_rnr_retry_count(rep_msg, param->rnr_retry_count); rep_msg->local_ca_guid = cm_id_priv->id.device->node_guid; @@ -2225,7 +2225,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->starting_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); param->responder_resources = rep_msg->initiator_depth; param->initiator_depth = rep_msg->resp_resources; - param->target_ack_delay = cm_rep_get_target_ack_delay(rep_msg); + param->target_ack_delay = IBA_GET(CM_REP_TARGET_ACK_DELAY, rep_msg); param->failover_accepted = cm_rep_get_failover(rep_msg); param->flow_control = cm_rep_get_flow_ctrl(rep_msg); param->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); @@ -2371,7 +2371,7 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv->responder_resources = rep_msg->initiator_depth; cm_id_priv->sq_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); cm_id_priv->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); - cm_id_priv->target_ack_delay = cm_rep_get_target_ack_delay(rep_msg); + cm_id_priv->target_ack_delay = IBA_GET(CM_REP_TARGET_ACK_DELAY, rep_msg); cm_id_priv->av.timeout = cm_ack_timeout(cm_id_priv->target_ack_delay, cm_id_priv->av.timeout - 1); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 5a76b63dde12..0536f827fd8e 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -132,18 +132,6 @@ struct cm_rep_msg { } __packed; -static inline u8 cm_rep_get_target_ack_delay(struct cm_rep_msg *rep_msg) -{ - return (u8) (rep_msg->offset26 >> 3); -} - -static inline void cm_rep_set_target_ack_delay(struct cm_rep_msg *rep_msg, - u8 target_ack_delay) -{ - rep_msg->offset26 = (u8) ((rep_msg->offset26 & 0x07) | - (target_ack_delay << 3)); -} - static inline u8 cm_rep_get_failover(struct cm_rep_msg *rep_msg) { return (u8) ((rep_msg->offset26 & 0x06) >> 1); From patchwork Thu Dec 12 09:38:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287777 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9EC2F6C1 for ; Thu, 12 Dec 2019 09:41:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7BDFA24671 for ; Thu, 12 Dec 2019 09:41:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143661; bh=PtbjPcOwG9K2QireNN2IoOKfh/9B32K6y+mvcdupIwg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=dfS+6HjD+sfKmWJ5EPuOqGkfRwq34PiPI++eseHlIQzIVugD+IVAnfYL33j0v/klN i58mG/ddkD2Myls/J5VYZ6W3P8oXK8uNkxhXYK+x/HfLVLQ27IFjokn9TtahpVAAhX 0zha6JHkPl3fDw9Kk2dlYUvttXjlcSS28ogQeel8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728446AbfLLJlA (ORCPT ); Thu, 12 Dec 2019 04:41:00 -0500 Received: from mail.kernel.org ([198.145.29.99]:41884 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728436AbfLLJky (ORCPT ); Thu, 12 Dec 2019 04:40:54 -0500 Received: from localhost (unknown [193.47.165.251]) (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 CA24F2173E; Thu, 12 Dec 2019 09:40:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143654; bh=PtbjPcOwG9K2QireNN2IoOKfh/9B32K6y+mvcdupIwg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q4VGvTdNnYQRW6QERorsAQc1s58eGeMauuQ2wbMrIYbOYaOgFR4L/dTYFHRzd6uNM gUE3eyKMa2zaRiTjq/UxTYfQ6kx+/jdPiN1wXAEdoHlk/m/K5O6iVWnVsqAK4r/x2v qF88Gea5WPyb0f/CQswsaRzFqE5h2uHCK+fr5K2k= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 38/48] RDMA/cm: Convert REP failover accepted field Date: Thu, 12 Dec 2019 11:38:20 +0200 Message-Id: <20191212093830.316934-39-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Update REP failover accepted field to the new scheme. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 ++-- drivers/infiniband/core/cm_msgs.h | 11 ----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index ca2d50a3c7da..23e2c54d51dd 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2069,7 +2069,7 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, rep_msg->resp_resources = param->responder_resources; IBA_SET(CM_REP_TARGET_ACK_DELAY, rep_msg, cm_id_priv->av.port->cm_dev->ack_delay); - cm_rep_set_failover(rep_msg, param->failover_accepted); + IBA_SET(CM_REP_FAILOVER_ACCEPTED, rep_msg, param->failover_accepted); cm_rep_set_rnr_retry_count(rep_msg, param->rnr_retry_count); rep_msg->local_ca_guid = cm_id_priv->id.device->node_guid; @@ -2226,7 +2226,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->responder_resources = rep_msg->initiator_depth; param->initiator_depth = rep_msg->resp_resources; param->target_ack_delay = IBA_GET(CM_REP_TARGET_ACK_DELAY, rep_msg); - param->failover_accepted = cm_rep_get_failover(rep_msg); + param->failover_accepted = IBA_GET(CM_REP_FAILOVER_ACCEPTED, rep_msg); param->flow_control = cm_rep_get_flow_ctrl(rep_msg); param->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); param->srq = cm_rep_get_srq(rep_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 0536f827fd8e..566bc868e120 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -132,17 +132,6 @@ struct cm_rep_msg { } __packed; -static inline u8 cm_rep_get_failover(struct cm_rep_msg *rep_msg) -{ - return (u8) ((rep_msg->offset26 & 0x06) >> 1); -} - -static inline void cm_rep_set_failover(struct cm_rep_msg *rep_msg, u8 failover) -{ - rep_msg->offset26 = (u8) ((rep_msg->offset26 & 0xF9) | - ((failover & 0x3) << 1)); -} - static inline u8 cm_rep_get_flow_ctrl(struct cm_rep_msg *rep_msg) { return (u8) (rep_msg->offset26 & 0x01); From patchwork Thu Dec 12 09:38:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287767 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C3A2314E3 for ; Thu, 12 Dec 2019 09:40:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A24B22465B for ; Thu, 12 Dec 2019 09:40:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143642; bh=DJ8/kJXIvWG+Zf8Z/2F02cp8ZNsgRgljaw3PwouWbGI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=dsVlXS3Uq05bj8IRapNO8bGD1kP5QFV5VpSDyXjsRE6TM8vcDQ7wrXWLJ+Wgc5X8K FHoqcNap7o0rf0X17hjPPcd6NV4PVyd+Yjq56TAbaOabcufkc1+30hb71aar2ExIj0 vCX2iOB+bAsvpAT0x0t/WpfB8QX7pbjMIgJJETkE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728282AbfLLJkm (ORCPT ); Thu, 12 Dec 2019 04:40:42 -0500 Received: from mail.kernel.org ([198.145.29.99]:41494 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728352AbfLLJkm (ORCPT ); Thu, 12 Dec 2019 04:40:42 -0500 Received: from localhost (unknown [193.47.165.251]) (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 F331E2465A; Thu, 12 Dec 2019 09:40:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143641; bh=DJ8/kJXIvWG+Zf8Z/2F02cp8ZNsgRgljaw3PwouWbGI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i9j1Txs2Ji0bOIxO4cUeNxdtTL1dyaC4vbzTTmaKjNTvUGbx3XNta96jm/uFRYfYR s0A7k3AvMU0S7vGvYUEq0irU/TR7vCgEZLS4EbnH7pIzDWldCaoE0Z4SeCxZVn5uK0 2/5we/reRKwuSvfhDGf2KB+0U0xebUMjEddDL6bE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 39/48] RDMA/cm: Convert REP flow control field Date: Thu, 12 Dec 2019 11:38:21 +0200 Message-Id: <20191212093830.316934-40-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REP flow control field. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 5 +++-- drivers/infiniband/core/cm_msgs.h | 12 ------------ 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 23e2c54d51dd..4c27465df6a1 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2075,7 +2075,8 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, if (cm_id_priv->qp_type != IB_QPT_XRC_TGT) { rep_msg->initiator_depth = param->initiator_depth; - cm_rep_set_flow_ctrl(rep_msg, param->flow_control); + IBA_SET(CM_REP_END_TO_END_FLOW_CONTROL, rep_msg, + param->flow_control); cm_rep_set_srq(rep_msg, param->srq); IBA_SET(CM_REP_LOCAL_QPN, rep_msg, param->qp_num); } else { @@ -2227,7 +2228,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->initiator_depth = rep_msg->resp_resources; param->target_ack_delay = IBA_GET(CM_REP_TARGET_ACK_DELAY, rep_msg); param->failover_accepted = IBA_GET(CM_REP_FAILOVER_ACCEPTED, rep_msg); - param->flow_control = cm_rep_get_flow_ctrl(rep_msg); + param->flow_control = IBA_GET(CM_REP_END_TO_END_FLOW_CONTROL, rep_msg); param->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); param->srq = cm_rep_get_srq(rep_msg); work->cm_event.private_data = &rep_msg->private_data; diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 566bc868e120..953f6a9f868b 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -132,18 +132,6 @@ struct cm_rep_msg { } __packed; -static inline u8 cm_rep_get_flow_ctrl(struct cm_rep_msg *rep_msg) -{ - return (u8) (rep_msg->offset26 & 0x01); -} - -static inline void cm_rep_set_flow_ctrl(struct cm_rep_msg *rep_msg, - u8 flow_ctrl) -{ - rep_msg->offset26 = (u8) ((rep_msg->offset26 & 0xFE) | - (flow_ctrl & 0x1)); -} - static inline u8 cm_rep_get_rnr_retry_count(struct cm_rep_msg *rep_msg) { return (u8) (rep_msg->offset27 >> 5); From patchwork Thu Dec 12 09:38:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287769 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 44904138C for ; Thu, 12 Dec 2019 09:40:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 237C92173E for ; Thu, 12 Dec 2019 09:40:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143646; bh=JXQIJ2oCpQsbwB0JVKwGvo3FKo2KbuW+hghl+Yumujw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=1oXy55OKnAi4kK08bZLSdJNf9h2zUIf11PBdObBhWYTibrn2eqS3xzIAoDoUnb5WW UxbRNqVmM7GOAoatNFFsGUg+4qULV9Zl58jaD2UonvEnmvBrAxp7zNJ8KChN4DWVlt NookrtfCApuRKmgoy5lKStIzs8mWGnkPBb5smmvE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728433AbfLLJkp (ORCPT ); Thu, 12 Dec 2019 04:40:45 -0500 Received: from mail.kernel.org ([198.145.29.99]:41580 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728352AbfLLJkp (ORCPT ); Thu, 12 Dec 2019 04:40:45 -0500 Received: from localhost (unknown [193.47.165.251]) (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 22FC522527; Thu, 12 Dec 2019 09:40:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143644; bh=JXQIJ2oCpQsbwB0JVKwGvo3FKo2KbuW+hghl+Yumujw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g0WdYZkdbD5rRElfTFQtPp4wb48CAM0aR9fY48jRU9+11BYtzDS2ZDNnDyIcRFBdx 4Fl+B3IJsWL/Z84f9HgAqOU7yp5wRNDQMNEpLhJaRZz12ETYa1EQNgc5XOTd7MrY+Q a9fDdpZIRlQILAXRtqq4SSSbHUIDp7rh/8aXPm7w= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 40/48] RDMA/cm: Convert REP RNR retry count field Date: Thu, 12 Dec 2019 11:38:22 +0200 Message-Id: <20191212093830.316934-41-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REP RNR retry count field. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 12 ------------ 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 4c27465df6a1..77199078d276 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2070,7 +2070,7 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, IBA_SET(CM_REP_TARGET_ACK_DELAY, rep_msg, cm_id_priv->av.port->cm_dev->ack_delay); IBA_SET(CM_REP_FAILOVER_ACCEPTED, rep_msg, param->failover_accepted); - cm_rep_set_rnr_retry_count(rep_msg, param->rnr_retry_count); + IBA_SET(CM_REP_RNR_RETRY_COUNT, rep_msg, param->rnr_retry_count); rep_msg->local_ca_guid = cm_id_priv->id.device->node_guid; if (cm_id_priv->qp_type != IB_QPT_XRC_TGT) { @@ -2229,7 +2229,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->target_ack_delay = IBA_GET(CM_REP_TARGET_ACK_DELAY, rep_msg); param->failover_accepted = IBA_GET(CM_REP_FAILOVER_ACCEPTED, rep_msg); param->flow_control = IBA_GET(CM_REP_END_TO_END_FLOW_CONTROL, rep_msg); - param->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); + param->rnr_retry_count = IBA_GET(CM_REP_RNR_RETRY_COUNT, rep_msg); param->srq = cm_rep_get_srq(rep_msg); work->cm_event.private_data = &rep_msg->private_data; work->cm_event.private_data_len = CM_REP_PRIVATE_DATA_SIZE; @@ -2371,7 +2371,7 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv->initiator_depth = rep_msg->resp_resources; cm_id_priv->responder_resources = rep_msg->initiator_depth; cm_id_priv->sq_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); - cm_id_priv->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); + cm_id_priv->rnr_retry_count = IBA_GET(CM_REP_RNR_RETRY_COUNT, rep_msg); cm_id_priv->target_ack_delay = IBA_GET(CM_REP_TARGET_ACK_DELAY, rep_msg); cm_id_priv->av.timeout = cm_ack_timeout(cm_id_priv->target_ack_delay, diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 953f6a9f868b..209e19197693 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -132,18 +132,6 @@ struct cm_rep_msg { } __packed; -static inline u8 cm_rep_get_rnr_retry_count(struct cm_rep_msg *rep_msg) -{ - return (u8) (rep_msg->offset27 >> 5); -} - -static inline void cm_rep_set_rnr_retry_count(struct cm_rep_msg *rep_msg, - u8 rnr_retry_count) -{ - rep_msg->offset27 = (u8) ((rep_msg->offset27 & 0x1F) | - (rnr_retry_count << 5)); -} - static inline u8 cm_rep_get_srq(struct cm_rep_msg *rep_msg) { return (u8) ((rep_msg->offset27 >> 4) & 0x1); From patchwork Thu Dec 12 09:38:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287771 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 842EF6C1 for ; Thu, 12 Dec 2019 09:40:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 634FA22527 for ; Thu, 12 Dec 2019 09:40:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143649; bh=dOmbbPy5eqEY8uq+xCGP7R8L5pYgsNAXl3fTRVuICks=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=0YYhsQhWx1j0pCs24XXpgfy30GJSqg+ecuGTqQm2X1yiDblP/PM5fq9sv5q0/mfv9 073fBRrGOs1z9vyR4RfjS2yATBjGYrecTH1MYdAQUBaUPbRMB86Cjq8Ra0XjqAuvbO XE7tymAud/583zKfDjlMmFWeTcBd9xxP31aNHcCM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728468AbfLLJks (ORCPT ); Thu, 12 Dec 2019 04:40:48 -0500 Received: from mail.kernel.org ([198.145.29.99]:41686 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728465AbfLLJks (ORCPT ); Thu, 12 Dec 2019 04:40:48 -0500 Received: from localhost (unknown [193.47.165.251]) (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 515FA24654; Thu, 12 Dec 2019 09:40:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143647; bh=dOmbbPy5eqEY8uq+xCGP7R8L5pYgsNAXl3fTRVuICks=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vnpNdOmS1Ax0/McLZi3Z4uzDs6WTC7S7Ou9fL8NFGWl9XRqo8Zd/08+4rOeERkv+T M0JYD+SMZjXXysXqp8KbhncG6XZBrVBclSIodO6q966C81KV7O7XZ2Htqk3K8EUm2O 5FmsKrBDzQjjTT6LcuN+gHSbP/V+dCHqbhjd51bE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 41/48] RDMA/cm: Convert REP SRQ field Date: Thu, 12 Dec 2019 11:38:23 +0200 Message-Id: <20191212093830.316934-42-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert REP SRQ field. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 6 +++--- drivers/infiniband/core/cm_msgs.h | 11 ----------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 77199078d276..454650f3ec7d 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2077,10 +2077,10 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, rep_msg->initiator_depth = param->initiator_depth; IBA_SET(CM_REP_END_TO_END_FLOW_CONTROL, rep_msg, param->flow_control); - cm_rep_set_srq(rep_msg, param->srq); + IBA_SET(CM_REP_SRQ, rep_msg, param->srq); IBA_SET(CM_REP_LOCAL_QPN, rep_msg, param->qp_num); } else { - cm_rep_set_srq(rep_msg, 1); + IBA_SET(CM_REP_SRQ, rep_msg, 1); IBA_SET(CM_REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg, param->qp_num); } @@ -2230,7 +2230,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->failover_accepted = IBA_GET(CM_REP_FAILOVER_ACCEPTED, rep_msg); param->flow_control = IBA_GET(CM_REP_END_TO_END_FLOW_CONTROL, rep_msg); param->rnr_retry_count = IBA_GET(CM_REP_RNR_RETRY_COUNT, rep_msg); - param->srq = cm_rep_get_srq(rep_msg); + param->srq = IBA_GET(CM_REP_SRQ, rep_msg); work->cm_event.private_data = &rep_msg->private_data; work->cm_event.private_data_len = CM_REP_PRIVATE_DATA_SIZE; } diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 209e19197693..cdd7e96e6355 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -132,17 +132,6 @@ struct cm_rep_msg { } __packed; -static inline u8 cm_rep_get_srq(struct cm_rep_msg *rep_msg) -{ - return (u8) ((rep_msg->offset27 >> 4) & 0x1); -} - -static inline void cm_rep_set_srq(struct cm_rep_msg *rep_msg, u8 srq) -{ - rep_msg->offset27 = (u8) ((rep_msg->offset27 & 0xEF) | - ((srq & 0x1) << 4)); -} - struct cm_rtu_msg { struct ib_mad_hdr hdr; From patchwork Thu Dec 12 09:38:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287773 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B021B6C1 for ; Thu, 12 Dec 2019 09:40:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8EBEB22527 for ; Thu, 12 Dec 2019 09:40:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143652; bh=kpUtYlyXbae/tYC/vtSVpwcwQxae6s+JVvmaEGxLkZ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=jR/H/qSJfNkSnqScudeyyLn7xLUdvxkamMuj7YOmJrGG81z/vY/CZd3rG9GVfVSp3 YDvz4jJihsgVbJRCRlg7mvf2flA0hnmyMuuDnYMtQmXaOGBRYZ5xelq6A98p6fHQkP iutyMOl0/iIBRhhFA3zK1LgIGNq0/7uSmDsvjD0w= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728452AbfLLJkw (ORCPT ); Thu, 12 Dec 2019 04:40:52 -0500 Received: from mail.kernel.org ([198.145.29.99]:41762 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728436AbfLLJkw (ORCPT ); Thu, 12 Dec 2019 04:40:52 -0500 Received: from localhost (unknown [193.47.165.251]) (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 95BAC2173E; Thu, 12 Dec 2019 09:40:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143651; bh=kpUtYlyXbae/tYC/vtSVpwcwQxae6s+JVvmaEGxLkZ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xY5MAaq4rw1Ir033G/Ii1G9hLkDXFVDWvG9i7cgIPycHkCGGXr8TON8/kTYJZmOVE EhV9jjlcFSu9eHnR4jbqua0h5yVAD/5wAHkp50QBpXdKKQcYtbcQ5b6WLiDrSpN0mO t1kirA/MY0EB/Uk78KAvoMEd3fDPBke74NlyFGoY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 42/48] RDMA/cm: Delete unused CM LAP functions Date: Thu, 12 Dec 2019 11:38:24 +0200 Message-Id: <20191212093830.316934-43-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Clean the code by deleting LAP functions, which are not called anyway. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 98 ------------------------------- drivers/infiniband/core/cm_msgs.h | 58 ------------------ 2 files changed, 156 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 454650f3ec7d..ec2206b9dd14 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3101,104 +3101,6 @@ static int cm_mra_handler(struct cm_work *work) return -EINVAL; } -static void cm_format_lap(struct cm_lap_msg *lap_msg, - struct cm_id_private *cm_id_priv, - struct sa_path_rec *alternate_path, - const void *private_data, - u8 private_data_len) -{ - bool alt_ext = false; - - if (alternate_path->rec_type == SA_PATH_REC_TYPE_OPA) - alt_ext = opa_is_extended_lid(alternate_path->opa.dlid, - alternate_path->opa.slid); - cm_format_mad_hdr(&lap_msg->hdr, CM_LAP_ATTR_ID, - cm_form_tid(cm_id_priv)); - lap_msg->local_comm_id = cm_id_priv->id.local_id; - lap_msg->remote_comm_id = cm_id_priv->id.remote_id; - IBA_SET(CM_LAP_REMOTE_QPN_EECN, lap_msg, cm_id_priv->remote_qpn); - /* todo: need remote CM response timeout */ - cm_lap_set_remote_resp_timeout(lap_msg, 0x1F); - lap_msg->alt_local_lid = - htons(ntohl(sa_path_get_slid(alternate_path))); - lap_msg->alt_remote_lid = - htons(ntohl(sa_path_get_dlid(alternate_path))); - lap_msg->alt_local_gid = alternate_path->sgid; - lap_msg->alt_remote_gid = alternate_path->dgid; - if (alt_ext) { - lap_msg->alt_local_gid.global.interface_id - = OPA_MAKE_ID(be32_to_cpu(alternate_path->opa.slid)); - lap_msg->alt_remote_gid.global.interface_id - = OPA_MAKE_ID(be32_to_cpu(alternate_path->opa.dlid)); - } - cm_lap_set_flow_label(lap_msg, alternate_path->flow_label); - cm_lap_set_traffic_class(lap_msg, alternate_path->traffic_class); - lap_msg->alt_hop_limit = alternate_path->hop_limit; - cm_lap_set_packet_rate(lap_msg, alternate_path->rate); - cm_lap_set_sl(lap_msg, alternate_path->sl); - cm_lap_set_subnet_local(lap_msg, 1); /* local only... */ - cm_lap_set_local_ack_timeout(lap_msg, - cm_ack_timeout(cm_id_priv->av.port->cm_dev->ack_delay, - alternate_path->packet_life_time)); - - if (private_data && private_data_len) - memcpy(lap_msg->private_data, private_data, private_data_len); -} - -int ib_send_cm_lap(struct ib_cm_id *cm_id, - struct sa_path_rec *alternate_path, - const void *private_data, - u8 private_data_len) -{ - struct cm_id_private *cm_id_priv; - struct ib_mad_send_buf *msg; - unsigned long flags; - int ret; - - if (private_data && private_data_len > CM_LAP_PRIVATE_DATA_SIZE) - return -EINVAL; - - cm_id_priv = container_of(cm_id, struct cm_id_private, id); - spin_lock_irqsave(&cm_id_priv->lock, flags); - if (cm_id->state != IB_CM_ESTABLISHED || - (cm_id->lap_state != IB_CM_LAP_UNINIT && - cm_id->lap_state != IB_CM_LAP_IDLE)) { - ret = -EINVAL; - goto out; - } - - ret = cm_init_av_by_path(alternate_path, NULL, &cm_id_priv->alt_av, - cm_id_priv); - if (ret) - goto out; - cm_id_priv->alt_av.timeout = - cm_ack_timeout(cm_id_priv->target_ack_delay, - cm_id_priv->alt_av.timeout - 1); - - ret = cm_alloc_msg(cm_id_priv, &msg); - if (ret) - goto out; - - cm_format_lap((struct cm_lap_msg *) msg->mad, cm_id_priv, - alternate_path, private_data, private_data_len); - msg->timeout_ms = cm_id_priv->timeout_ms; - msg->context[1] = (void *) (unsigned long) IB_CM_ESTABLISHED; - - ret = ib_post_send_mad(msg, NULL); - if (ret) { - spin_unlock_irqrestore(&cm_id_priv->lock, flags); - cm_free_msg(msg); - return ret; - } - - cm_id->lap_state = IB_CM_LAP_SENT; - cm_id_priv->msg = msg; - -out: spin_unlock_irqrestore(&cm_id_priv->lock, flags); - return ret; -} -EXPORT_SYMBOL(ib_send_cm_lap); - static void cm_format_path_lid_from_lap(struct cm_lap_msg *lap_msg, struct sa_path_rec *path) { diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index cdd7e96e6355..2172a5c53fbd 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -192,89 +192,31 @@ struct cm_lap_msg { u8 private_data[CM_LAP_PRIVATE_DATA_SIZE]; } __packed; -static inline u8 cm_lap_get_remote_resp_timeout(struct cm_lap_msg *lap_msg) -{ - return (u8) ((be32_to_cpu(lap_msg->offset12) & 0xF8) >> 3); -} - -static inline void cm_lap_set_remote_resp_timeout(struct cm_lap_msg *lap_msg, - u8 resp_timeout) -{ - lap_msg->offset12 = cpu_to_be32((resp_timeout << 3) | - (be32_to_cpu(lap_msg->offset12) & - 0xFFFFFF07)); -} - static inline __be32 cm_lap_get_flow_label(struct cm_lap_msg *lap_msg) { return cpu_to_be32(be32_to_cpu(lap_msg->offset56) >> 12); } -static inline void cm_lap_set_flow_label(struct cm_lap_msg *lap_msg, - __be32 flow_label) -{ - lap_msg->offset56 = cpu_to_be32( - (be32_to_cpu(lap_msg->offset56) & 0x00000FFF) | - (be32_to_cpu(flow_label) << 12)); -} - static inline u8 cm_lap_get_traffic_class(struct cm_lap_msg *lap_msg) { return (u8) be32_to_cpu(lap_msg->offset56); } -static inline void cm_lap_set_traffic_class(struct cm_lap_msg *lap_msg, - u8 traffic_class) -{ - lap_msg->offset56 = cpu_to_be32(traffic_class | - (be32_to_cpu(lap_msg->offset56) & - 0xFFFFFF00)); -} - static inline u8 cm_lap_get_packet_rate(struct cm_lap_msg *lap_msg) { return lap_msg->offset61 & 0x3F; } -static inline void cm_lap_set_packet_rate(struct cm_lap_msg *lap_msg, - u8 packet_rate) -{ - lap_msg->offset61 = (packet_rate & 0x3F) | (lap_msg->offset61 & 0xC0); -} - static inline u8 cm_lap_get_sl(struct cm_lap_msg *lap_msg) { return lap_msg->offset62 >> 4; } -static inline void cm_lap_set_sl(struct cm_lap_msg *lap_msg, u8 sl) -{ - lap_msg->offset62 = (sl << 4) | (lap_msg->offset62 & 0x0F); -} - -static inline u8 cm_lap_get_subnet_local(struct cm_lap_msg *lap_msg) -{ - return (lap_msg->offset62 >> 3) & 0x1; -} - -static inline void cm_lap_set_subnet_local(struct cm_lap_msg *lap_msg, - u8 subnet_local) -{ - lap_msg->offset62 = ((subnet_local & 0x1) << 3) | - (lap_msg->offset61 & 0xF7); -} static inline u8 cm_lap_get_local_ack_timeout(struct cm_lap_msg *lap_msg) { return lap_msg->offset63 >> 3; } -static inline void cm_lap_set_local_ack_timeout(struct cm_lap_msg *lap_msg, - u8 local_ack_timeout) -{ - lap_msg->offset63 = (local_ack_timeout << 3) | - (lap_msg->offset63 & 0x07); -} - struct cm_apr_msg { struct ib_mad_hdr hdr; From patchwork Thu Dec 12 09:38:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287787 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EE94E6C1 for ; Thu, 12 Dec 2019 09:41:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C3FB32465A for ; Thu, 12 Dec 2019 09:41:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143671; bh=9u07fJhZugFMZeiz08pe2ceIS6U6CBwfyhWEJ9dGdUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=KO6CxHrqpMSkddahkQYJ+jfsBkmHbf4JVuVvQ/EzcvzRecPtqtaamEcVONduemv6R qVVYLMAyIKNF5R5OPnbY+O3kMoJ9VBYQPOOdDzOCaxM+Usp7fgz5H5X5cu+YRZIElW X8zlrzmBrI0PouCupDAuf4+Ar1in7NB955iwBp4A= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728536AbfLLJlL (ORCPT ); Thu, 12 Dec 2019 04:41:11 -0500 Received: from mail.kernel.org ([198.145.29.99]:42568 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728502AbfLLJlK (ORCPT ); Thu, 12 Dec 2019 04:41:10 -0500 Received: from localhost (unknown [193.47.165.251]) (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 A343C2173E; Thu, 12 Dec 2019 09:41:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143670; bh=9u07fJhZugFMZeiz08pe2ceIS6U6CBwfyhWEJ9dGdUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MnYOWEjV98fxDFpNSrYzsPOgeRojrBR28HX+iFo9b63zruEaQqc6Fhfjt+cjL78aE PEK0m70pugMYWGOXg1cverva/F6ft4AP+6PNoW8B6JoQRhhmOt2F0goHReY++SCfov YbYTVet6sNHp3GPIx9/q8onrHk8W51Y1GhgKG7lE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 43/48] RDMA/cm: Convert LAP flow label field Date: Thu, 12 Dec 2019 11:38:25 +0200 Message-Id: <20191212093830.316934-44-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert LAP flow label field. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 3 ++- drivers/infiniband/core/cm_msgs.h | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index ec2206b9dd14..b41ee97cda86 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3124,7 +3124,8 @@ static void cm_format_path_from_lap(struct cm_id_private *cm_id_priv, { path->dgid = lap_msg->alt_local_gid; path->sgid = lap_msg->alt_remote_gid; - path->flow_label = cm_lap_get_flow_label(lap_msg); + path->flow_label = + cpu_to_be32(IBA_GET(CM_LAP_ALTERNATE_FLOW_LABEL, lap_msg)); path->hop_limit = lap_msg->alt_hop_limit; path->traffic_class = cm_lap_get_traffic_class(lap_msg); path->reversible = 1; diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 2172a5c53fbd..978eff812ce1 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -192,11 +192,6 @@ struct cm_lap_msg { u8 private_data[CM_LAP_PRIVATE_DATA_SIZE]; } __packed; -static inline __be32 cm_lap_get_flow_label(struct cm_lap_msg *lap_msg) -{ - return cpu_to_be32(be32_to_cpu(lap_msg->offset56) >> 12); -} - static inline u8 cm_lap_get_traffic_class(struct cm_lap_msg *lap_msg) { return (u8) be32_to_cpu(lap_msg->offset56); From patchwork Thu Dec 12 09:38:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287775 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DE8D6138C for ; Thu, 12 Dec 2019 09:40:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BD7412173E for ; Thu, 12 Dec 2019 09:40:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143659; bh=HVZGhKZCZ6RNhf/urErb6wmJwAtCOX3ao6Mgr17xwVc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=m3rynO3Ll9cLTlNe16QsLFAQNeuScIRroq21rcW0aesoqWjJrJ2vhVnXHnyBbTp13 Elv3E1qmDTMf6q1s8OAx5bRR6B5Y2Id+U09F7DNIsYYantSsKriPkZ7lfqAsFqlJxh +ToVAObsbyhlv8Pi5xhLS49gLWq6YlIhZ1L/tCBo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728492AbfLLJk6 (ORCPT ); Thu, 12 Dec 2019 04:40:58 -0500 Received: from mail.kernel.org ([198.145.29.99]:42078 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728352AbfLLJk6 (ORCPT ); Thu, 12 Dec 2019 04:40:58 -0500 Received: from localhost (unknown [193.47.165.251]) (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 EBF062465B; Thu, 12 Dec 2019 09:40:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143657; bh=HVZGhKZCZ6RNhf/urErb6wmJwAtCOX3ao6Mgr17xwVc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jcc4ATgMIxA52smpOuNtiRrGgszj4H0vqj7d37iZgBRDD+c3J4t4Sub6+bWQMkB0Q oYSkIZedHy0X8/nCYXOXfyDH0fLcOfiLBiygIIcHmwkd+SXZKw0F5UAtCQf2jk+AM4 Jd3TWtnnZ+LzsaQ8efM7x/vj/2pNpHBvVMMb6B1c= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 44/48] RDMA/cm: Convert LAP fields Date: Thu, 12 Dec 2019 11:38:26 +0200 Message-Id: <20191212093830.316934-45-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Convert LAP fields to the new scheme. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 9 +++++---- drivers/infiniband/core/cm_msgs.h | 20 -------------------- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index b41ee97cda86..0db15799969f 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3127,16 +3127,17 @@ static void cm_format_path_from_lap(struct cm_id_private *cm_id_priv, path->flow_label = cpu_to_be32(IBA_GET(CM_LAP_ALTERNATE_FLOW_LABEL, lap_msg)); path->hop_limit = lap_msg->alt_hop_limit; - path->traffic_class = cm_lap_get_traffic_class(lap_msg); + path->traffic_class = IBA_GET(CM_LAP_ALTERNATE_TRAFFIC_CLASS, lap_msg); path->reversible = 1; path->pkey = cm_id_priv->pkey; - path->sl = cm_lap_get_sl(lap_msg); + path->sl = IBA_GET(CM_LAP_ALTERNATE_SL, lap_msg); path->mtu_selector = IB_SA_EQ; path->mtu = cm_id_priv->path_mtu; path->rate_selector = IB_SA_EQ; - path->rate = cm_lap_get_packet_rate(lap_msg); + path->rate = IBA_GET(CM_LAP_ALTERNATE_PACKET_RATE, lap_msg); path->packet_life_time_selector = IB_SA_EQ; - path->packet_life_time = cm_lap_get_local_ack_timeout(lap_msg); + path->packet_life_time = + IBA_GET(CM_LAP_ALTERNATE_LOCAL_ACK_TIMEOUT, lap_msg); path->packet_life_time -= (path->packet_life_time > 0); cm_format_path_lid_from_lap(lap_msg, path); } diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 978eff812ce1..0f3f9f3cd1cb 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -192,26 +192,6 @@ struct cm_lap_msg { u8 private_data[CM_LAP_PRIVATE_DATA_SIZE]; } __packed; -static inline u8 cm_lap_get_traffic_class(struct cm_lap_msg *lap_msg) -{ - return (u8) be32_to_cpu(lap_msg->offset56); -} - -static inline u8 cm_lap_get_packet_rate(struct cm_lap_msg *lap_msg) -{ - return lap_msg->offset61 & 0x3F; -} - -static inline u8 cm_lap_get_sl(struct cm_lap_msg *lap_msg) -{ - return lap_msg->offset62 >> 4; -} - -static inline u8 cm_lap_get_local_ack_timeout(struct cm_lap_msg *lap_msg) -{ - return lap_msg->offset63 >> 3; -} - struct cm_apr_msg { struct ib_mad_hdr hdr; From patchwork Thu Dec 12 09:38:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287781 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C9ED36C1 for ; Thu, 12 Dec 2019 09:41:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A82412465B for ; Thu, 12 Dec 2019 09:41:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143662; bh=yc1DwBpFalJ1L0F08H1FGhIh6TYw+bXEDBqhVhhRwdQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=f3GtEuSXpP/mOL5PV15i2XGH+c8c6IcAWDa2bM3+8uNOCdQaPPF3ZojYcx8htmXzH Qica4OR0oikZjYP2IQcgealCfMCk9WdJ52+4OUnuYg99x0475b22Xii+9YD6SNK91Q 1fldp+C3Ev1JjQ2lzPltwzi8ecdXmabPbtdxQIQg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728420AbfLLJlB (ORCPT ); Thu, 12 Dec 2019 04:41:01 -0500 Received: from mail.kernel.org ([198.145.29.99]:42222 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728436AbfLLJlB (ORCPT ); Thu, 12 Dec 2019 04:41:01 -0500 Received: from localhost (unknown [193.47.165.251]) (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 167E42173E; Thu, 12 Dec 2019 09:40:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143660; bh=yc1DwBpFalJ1L0F08H1FGhIh6TYw+bXEDBqhVhhRwdQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nHAfsfi1ELJxojF7rzBKUwkOc8XjRWWEXsGQOrIw/cEHu2tJeruDthR4D85PqmMl0 8V482OnVkr5ot1Ydsg8xX/Lliwd3pLszCYEH4BQW4Qm9Dh3qqlUTmKwXIBi/dgRq8V IRQbAA+EuSdZsCvL+lATslalSddHx91akJ4la8l8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 45/48] RDMA/cm: Delete unused CM ARP functions Date: Thu, 12 Dec 2019 11:38:27 +0200 Message-Id: <20191212093830.316934-46-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Clean the code by deleting ARP functions, which are not called anyway. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 66 ------------------------------------ include/rdma/ib_cm.h | 34 ------------------- 2 files changed, 100 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 0db15799969f..41422bf13279 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3238,72 +3238,6 @@ deref: cm_deref_id(cm_id_priv); return -EINVAL; } -static void cm_format_apr(struct cm_apr_msg *apr_msg, - struct cm_id_private *cm_id_priv, - enum ib_cm_apr_status status, - void *info, - u8 info_length, - const void *private_data, - u8 private_data_len) -{ - cm_format_mad_hdr(&apr_msg->hdr, CM_APR_ATTR_ID, cm_id_priv->tid); - apr_msg->local_comm_id = cm_id_priv->id.local_id; - apr_msg->remote_comm_id = cm_id_priv->id.remote_id; - apr_msg->ap_status = (u8) status; - - if (info && info_length) { - apr_msg->info_length = info_length; - memcpy(apr_msg->info, info, info_length); - } - - if (private_data && private_data_len) - memcpy(apr_msg->private_data, private_data, private_data_len); -} - -int ib_send_cm_apr(struct ib_cm_id *cm_id, - enum ib_cm_apr_status status, - void *info, - u8 info_length, - const void *private_data, - u8 private_data_len) -{ - struct cm_id_private *cm_id_priv; - struct ib_mad_send_buf *msg; - unsigned long flags; - int ret; - - if ((private_data && private_data_len > CM_APR_PRIVATE_DATA_SIZE) || - (info && info_length > CM_APR_ADDITIONAL_INFORMATION_SIZE)) - return -EINVAL; - - cm_id_priv = container_of(cm_id, struct cm_id_private, id); - spin_lock_irqsave(&cm_id_priv->lock, flags); - if (cm_id->state != IB_CM_ESTABLISHED || - (cm_id->lap_state != IB_CM_LAP_RCVD && - cm_id->lap_state != IB_CM_MRA_LAP_SENT)) { - ret = -EINVAL; - goto out; - } - - ret = cm_alloc_msg(cm_id_priv, &msg); - if (ret) - goto out; - - cm_format_apr((struct cm_apr_msg *) msg->mad, cm_id_priv, status, - info, info_length, private_data, private_data_len); - ret = ib_post_send_mad(msg, NULL); - if (ret) { - spin_unlock_irqrestore(&cm_id_priv->lock, flags); - cm_free_msg(msg); - return ret; - } - - cm_id->lap_state = IB_CM_LAP_IDLE; -out: spin_unlock_irqrestore(&cm_id_priv->lock, flags); - return ret; -} -EXPORT_SYMBOL(ib_send_cm_apr); - static int cm_apr_handler(struct cm_work *work) { struct cm_id_private *cm_id_priv; diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 6237c369dbd6..adccdc12b8e3 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -483,21 +483,6 @@ int ib_send_cm_mra(struct ib_cm_id *cm_id, const void *private_data, u8 private_data_len); -/** - * ib_send_cm_lap - Sends a load alternate path request. - * @cm_id: Connection identifier associated with the load alternate path - * message. - * @alternate_path: A path record that identifies the alternate path to - * load. - * @private_data: Optional user-defined private data sent with the - * load alternate path message. - * @private_data_len: Size of the private data buffer, in bytes. - */ -int ib_send_cm_lap(struct ib_cm_id *cm_id, - struct sa_path_rec *alternate_path, - const void *private_data, - u8 private_data_len); - /** * ib_cm_init_qp_attr - Initializes the QP attributes for use in transitioning * to a specified QP state. @@ -518,25 +503,6 @@ int ib_cm_init_qp_attr(struct ib_cm_id *cm_id, struct ib_qp_attr *qp_attr, int *qp_attr_mask); -/** - * ib_send_cm_apr - Sends an alternate path response message in response to - * a load alternate path request. - * @cm_id: Connection identifier associated with the alternate path response. - * @status: Reply status sent with the alternate path response. - * @info: Optional additional information sent with the alternate path - * response. - * @info_length: Size of the additional information, in bytes. - * @private_data: Optional user-defined private data sent with the - * alternate path response message. - * @private_data_len: Size of the private data buffer, in bytes. - */ -int ib_send_cm_apr(struct ib_cm_id *cm_id, - enum ib_cm_apr_status status, - void *info, - u8 info_length, - const void *private_data, - u8 private_data_len); - struct ib_cm_sidr_req_param { struct sa_path_rec *path; const struct ib_gid_attr *sgid_attr; From patchwork Thu Dec 12 09:38:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287783 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 240E46C1 for ; Thu, 12 Dec 2019 09:41:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 034BF2465E for ; Thu, 12 Dec 2019 09:41:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143666; bh=rid3HTm6rY2jcUrHuYnN3h0yk8IqJIRA4Mkvmfum/W0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=a5nb7Unri97jtFRlN2djNUsi0+3bcG6QQkJZ00oMpbztzOmUoHN94GQjh900W9y1K 7U+sNE3Z1WBZNrZz8he4Io36Bg3926QhNaxnuFya7D0YblpAYMet0yAVffGZO3zRJL bN27cOuQ9Pj577e0z00e2OJsO/sfwvYGjhsBY6GA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728524AbfLLJlF (ORCPT ); Thu, 12 Dec 2019 04:41:05 -0500 Received: from mail.kernel.org ([198.145.29.99]:42354 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728510AbfLLJlF (ORCPT ); Thu, 12 Dec 2019 04:41:05 -0500 Received: from localhost (unknown [193.47.165.251]) (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 3CD3A22527; Thu, 12 Dec 2019 09:41:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143663; bh=rid3HTm6rY2jcUrHuYnN3h0yk8IqJIRA4Mkvmfum/W0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jY6Pya989hsF3ZJlBonpyB0617DWNiLSjHESSDlAydJ837ufehSdPV9Z1jHb13DUi Usy4o4NrRIE4V4cL3PRqNWj1ej86ZCrQ5iVuab0vqq/j68hkm/b5lD8ZK2ssJogYIO rgMXoNg+WauwVViEyyhfjzz3M3EHAlh/P4c+jkM4= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 46/48] RDMA/cm: Convert SIDR_REP to new scheme Date: Thu, 12 Dec 2019 11:38:28 +0200 Message-Id: <20191212093830.316934-47-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Use new scheme to access SIDR_REP fields. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 15 ++++++++------- drivers/infiniband/core/cm_msgs.h | 14 -------------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 41422bf13279..f197f9740362 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3483,10 +3483,10 @@ static void cm_format_sidr_rep(struct cm_sidr_rep_msg *sidr_rep_msg, cm_format_mad_hdr(&sidr_rep_msg->hdr, CM_SIDR_REP_ATTR_ID, cm_id_priv->tid); sidr_rep_msg->request_id = cm_id_priv->id.remote_id; - sidr_rep_msg->status = param->status; - cm_sidr_rep_set_qpn(sidr_rep_msg, cpu_to_be32(param->qp_num)); + IBA_SET(CM_SIDR_REP_STATUS, sidr_rep_msg, param->status); + IBA_SET(CM_SIDR_REP_QPN, sidr_rep_msg, param->qp_num); sidr_rep_msg->service_id = cm_id_priv->id.service_id; - sidr_rep_msg->qkey = cpu_to_be32(param->qkey); + IBA_SET(CM_SIDR_REP_Q_KEY, sidr_rep_msg, param->qkey); if (param->info && param->info_length) memcpy(sidr_rep_msg->info, param->info, param->info_length); @@ -3554,11 +3554,12 @@ static void cm_format_sidr_rep_event(struct cm_work *work, sidr_rep_msg = (struct cm_sidr_rep_msg *) work->mad_recv_wc->recv_buf.mad; param = &work->cm_event.param.sidr_rep_rcvd; - param->status = sidr_rep_msg->status; - param->qkey = be32_to_cpu(sidr_rep_msg->qkey); - param->qpn = be32_to_cpu(cm_sidr_rep_get_qpn(sidr_rep_msg)); + param->status = IBA_GET(CM_SIDR_REP_STATUS, sidr_rep_msg); + param->qkey = IBA_GET(CM_SIDR_REP_Q_KEY, sidr_rep_msg); + param->qpn = IBA_GET(CM_SIDR_REP_QPN, sidr_rep_msg); param->info = &sidr_rep_msg->info; - param->info_len = sidr_rep_msg->info_length; + param->info_len = + IBA_GET(CM_SIDR_REP_ADDITIONAL_INFORMATION_LENGTH, sidr_rep_msg); param->sgid_attr = cm_id_priv->av.ah_attr.grh.sgid_attr; work->cm_event.private_data = &sidr_rep_msg->private_data; work->cm_event.private_data_len = CM_SIDR_REP_PRIVATE_DATA_SIZE; diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 0f3f9f3cd1cb..ee3bd6f7dc47 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -232,18 +232,4 @@ struct cm_sidr_rep_msg { u8 private_data[CM_SIDR_REP_PRIVATE_DATA_SIZE]; } __packed; - -static inline __be32 cm_sidr_rep_get_qpn(struct cm_sidr_rep_msg *sidr_rep_msg) -{ - return cpu_to_be32(be32_to_cpu(sidr_rep_msg->offset8) >> 8); -} - -static inline void cm_sidr_rep_set_qpn(struct cm_sidr_rep_msg *sidr_rep_msg, - __be32 qpn) -{ - sidr_rep_msg->offset8 = cpu_to_be32((be32_to_cpu(qpn) << 8) | - (be32_to_cpu(sidr_rep_msg->offset8) & - 0x000000FF)); -} - #endif /* CM_MSGS_H */ From patchwork Thu Dec 12 09:38:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287785 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B0210138C for ; Thu, 12 Dec 2019 09:41:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8E3A72465A for ; Thu, 12 Dec 2019 09:41:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143668; bh=iFwda6z+vNdO4cuTzIsNZeZBiFK7U/cCbN1syCdcSYo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=gq3GADNFovN2PNxsqRA3TNceStLzpJv1LhtCKJcejbpr/CgRpqgK+mwEkLe8Y3Dk2 eTqhweJURsNNAMfiHJt6aohJZKdMtODFPUQtGRBSsFbIzmfMY+JwO4980Jq6xxkh74 TiAsF3+B+5E/o6tZa4q+zpEgj3yjEjD2wvCffGvo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728532AbfLLJlI (ORCPT ); Thu, 12 Dec 2019 04:41:08 -0500 Received: from mail.kernel.org ([198.145.29.99]:42450 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728502AbfLLJlH (ORCPT ); Thu, 12 Dec 2019 04:41:07 -0500 Received: from localhost (unknown [193.47.165.251]) (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 6567924654; Thu, 12 Dec 2019 09:41:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143667; bh=iFwda6z+vNdO4cuTzIsNZeZBiFK7U/cCbN1syCdcSYo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=15I+nJWZ1GcnkFPKP+Bzmdkn9GuEqMB1snUGA5c7wtQW6Wh4/1YZVuxedcUjBYjik AnVC5Au5RZmMVzQvsrWGDhThlpyBtKE2rLZEg2/k/FfV2UlU7AOxbj29SUaXec7v6E s0FyPuaHf3dotRbpm8oWPUJurhXiFDhUqfURuRgE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 47/48] RDMA/cm: Add Enhanced Connection Establishment (ECE) bits Date: Thu, 12 Dec 2019 11:38:29 +0200 Message-Id: <20191212093830.316934-48-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Extend REQ (request for communications), REP (reply to request for communication), rejected reason and SIDR_REP (service ID resolution response) structures with hardware vendor ID bits according to approved IBA Comment #9434. Signed-off-by: Leon Romanovsky --- include/rdma/ib_cm.h | 3 ++- include/rdma/ibta_vol1_c12.h | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index adccdc12b8e3..72348475eee8 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h @@ -147,7 +147,8 @@ enum ib_cm_rej_reason { IB_CM_REJ_DUPLICATE_LOCAL_COMM_ID = 30, IB_CM_REJ_INVALID_CLASS_VERSION = 31, IB_CM_REJ_INVALID_FLOW_LABEL = 32, - IB_CM_REJ_INVALID_ALT_FLOW_LABEL = 33 + IB_CM_REJ_INVALID_ALT_FLOW_LABEL = 33, + IB_CM_REJ_VENDOR_OPTION_NOT_SUPPORTED = 35 }; struct ib_cm_rej_event_param { diff --git a/include/rdma/ibta_vol1_c12.h b/include/rdma/ibta_vol1_c12.h index f937865fe6b5..6fc4f1b89ca6 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -112,8 +112,11 @@ #define CM_REP_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_rep_msg, 4, 32) #define CM_REP_LOCAL_Q_KEY CM_FIELD32_LOC(struct cm_rep_msg, 8, 32) #define CM_REP_LOCAL_QPN CM_FIELD32_LOC(struct cm_rep_msg, 12, 24) +#define CM_REP_VENDORID_H CM_FIELD8_LOC(struct cm_rep_msg, 15, 8) #define CM_REP_LOCAL_EE_CONTEXT_NUMBER CM_FIELD32_LOC(struct cm_rep_msg, 16, 24) +#define CM_REP_VENDORID_M CM_FIELD8_LOC(struct cm_rep_msg, 19, 8) #define CM_REP_STARTING_PSN CM_FIELD32_LOC(struct cm_rep_msg, 20, 24) +#define CM_REP_VENDORID_L CM_FIELD8_LOC(struct cm_rep_msg, 23, 8) #define CM_REP_RESPONDER_RESOURCES CM_FIELD8_LOC(struct cm_rep_msg, 24, 8) #define CM_REP_INITIATOR_DEPTH CM_FIELD8_LOC(struct cm_rep_msg, 25, 8) #define CM_REP_TARGET_ACK_DELAY CM_FIELD8_LOC(struct cm_rep_msg, 26, 5) @@ -194,7 +197,9 @@ #define CM_SIDR_REP_STATUS CM_FIELD8_LOC(struct cm_sidr_rep_msg, 4, 8) #define CM_SIDR_REP_ADDITIONAL_INFORMATION_LENGTH \ CM_FIELD8_LOC(struct cm_sidr_rep_msg, 5, 8) +#define CM_SIDR_REP_VENDORID_H CM_FIELD16_LOC(struct cm_sidr_rep_msg, 6, 16) #define CM_SIDR_REP_QPN CM_FIELD32_LOC(struct cm_sidr_rep_msg, 8, 24) +#define CM_SIDR_REP_VENDORID_L CM_FIELD8_LOC(struct cm_sidr_rep_msg, 11, 8) #define CM_SIDR_REP_SERVICEID CM_FIELD64_LOC(struct cm_sidr_rep_msg, 12, 64) #define CM_SIDR_REP_Q_KEY CM_FIELD32_LOC(struct cm_sidr_rep_msg, 20, 32) #define CM_SIDR_REP_ADDITIONAL_INFORMATION \ From patchwork Thu Dec 12 09:38:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11287789 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F155A138C for ; Thu, 12 Dec 2019 09:41:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D07422465E for ; Thu, 12 Dec 2019 09:41:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143674; bh=wG5L5HwOMqAAZB33ZsvjvACS6eOQQVhwkmSzp6LIuJA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=SzTy8Kj0eqm5n6+9BHjmmOkSXH3pouZMZOF5Y3zszijDuzAUvRhu2PNh3IxwG/HP9 WG6posbB3c0i2ryofgIEHKLJF/Q9jSxFgpjqxNQ0BZpBnXqsg6dJJgYMycsSTBZsUB wcmrLSVALQ4zCxhtZ+a8gQ8WquCiFcr+CCwolCIg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728523AbfLLJlO (ORCPT ); Thu, 12 Dec 2019 04:41:14 -0500 Received: from mail.kernel.org ([198.145.29.99]:42686 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728541AbfLLJlO (ORCPT ); Thu, 12 Dec 2019 04:41:14 -0500 Received: from localhost (unknown [193.47.165.251]) (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 D3B862465B; Thu, 12 Dec 2019 09:41:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143673; bh=wG5L5HwOMqAAZB33ZsvjvACS6eOQQVhwkmSzp6LIuJA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ClPCfoPwN5urYripFNVYU2daB0Dg4Mhsph510WyPwccPCCLvtlN2mHrfEJ90kOT1C jERbej1C/mrDZtsCk/1BBK/dtPmvXcE3N97F3p1PkMAI8P3aKGqF09/ZlwxhF25bri MHYW+GlGUDuNlyIcMblLlYS+eJTtxHzZbpko47Iw= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 48/48] RDMA/cm: Convert private_date access Date: Thu, 12 Dec 2019 11:38:30 +0200 Message-Id: <20191212093830.316934-49-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Reuse existing IBA accessors to set private data. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 43 +++++++++++++++--------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index f197f9740362..d42a3887057b 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1366,9 +1366,8 @@ static void cm_format_req(struct cm_req_msg *req_msg, alt_path->packet_life_time)); } - if (param->private_data && param->private_data_len) - memcpy(req_msg->private_data, param->private_data, - param->private_data_len); + IBA_SET_MEM(CM_REQ_PRIVATE_DATA, req_msg, param->private_data, + param->private_data_len); } static int cm_validate_req_param(struct ib_cm_req_param *param) @@ -1750,8 +1749,8 @@ static void cm_format_mra(struct cm_mra_msg *mra_msg, mra_msg->remote_comm_id = cm_id_priv->id.remote_id; IBA_SET(CM_MRA_SERVICE_TIMEOUT, mra_msg, service_timeout); - if (private_data && private_data_len) - memcpy(mra_msg->private_data, private_data, private_data_len); + IBA_SET_MEM(CM_MRA_PRIVATE_DATA, mra_msg, private_data, + private_data_len); } static void cm_format_rej(struct cm_rej_msg *rej_msg, @@ -1791,8 +1790,8 @@ static void cm_format_rej(struct cm_rej_msg *rej_msg, memcpy(rej_msg->ari, ari, ari_length); } - if (private_data && private_data_len) - memcpy(rej_msg->private_data, private_data, private_data_len); + IBA_SET_MEM(CM_REJ_PRIVATE_DATA, rej_msg, private_data, + private_data_len); } static void cm_dup_req_handler(struct cm_work *work, @@ -2084,9 +2083,8 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, IBA_SET(CM_REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg, param->qp_num); } - if (param->private_data && param->private_data_len) - memcpy(rep_msg->private_data, param->private_data, - param->private_data_len); + IBA_SET_MEM(CM_REP_PRIVATE_DATA, rep_msg, param->private_data, + param->private_data_len); } int ib_send_cm_rep(struct ib_cm_id *cm_id, @@ -2152,8 +2150,8 @@ static void cm_format_rtu(struct cm_rtu_msg *rtu_msg, rtu_msg->local_comm_id = cm_id_priv->id.local_id; rtu_msg->remote_comm_id = cm_id_priv->id.remote_id; - if (private_data && private_data_len) - memcpy(rtu_msg->private_data, private_data, private_data_len); + IBA_SET_MEM(CM_RTU_PRIVATE_DATA, rtu_msg, private_data, + private_data_len); } int ib_send_cm_rtu(struct ib_cm_id *cm_id, @@ -2482,9 +2480,8 @@ static void cm_format_dreq(struct cm_dreq_msg *dreq_msg, dreq_msg->local_comm_id = cm_id_priv->id.local_id; dreq_msg->remote_comm_id = cm_id_priv->id.remote_id; IBA_SET(CM_DREQ_REMOTE_QPN_EECN, dreq_msg, cm_id_priv->remote_qpn); - - if (private_data && private_data_len) - memcpy(dreq_msg->private_data, private_data, private_data_len); + IBA_SET_MEM(CM_DREQ_PRIVATE_DATA, dreq_msg, private_data, + private_data_len); } int ib_send_cm_dreq(struct ib_cm_id *cm_id, @@ -2546,9 +2543,8 @@ static void cm_format_drep(struct cm_drep_msg *drep_msg, cm_format_mad_hdr(&drep_msg->hdr, CM_DREP_ATTR_ID, cm_id_priv->tid); drep_msg->local_comm_id = cm_id_priv->id.local_id; drep_msg->remote_comm_id = cm_id_priv->id.remote_id; - - if (private_data && private_data_len) - memcpy(drep_msg->private_data, private_data, private_data_len); + IBA_SET_MEM(CM_DREP_PRIVATE_DATA, drep_msg, private_data, + private_data_len); } int ib_send_cm_drep(struct ib_cm_id *cm_id, @@ -3487,13 +3483,10 @@ static void cm_format_sidr_rep(struct cm_sidr_rep_msg *sidr_rep_msg, IBA_SET(CM_SIDR_REP_QPN, sidr_rep_msg, param->qp_num); sidr_rep_msg->service_id = cm_id_priv->id.service_id; IBA_SET(CM_SIDR_REP_Q_KEY, sidr_rep_msg, param->qkey); - - if (param->info && param->info_length) - memcpy(sidr_rep_msg->info, param->info, param->info_length); - - if (param->private_data && param->private_data_len) - memcpy(sidr_rep_msg->private_data, param->private_data, - param->private_data_len); + IBA_SET_MEM(CM_SIDR_REP_ADDITIONAL_INFORMATION, sidr_rep_msg, + param->info, param->info_length); + IBA_SET_MEM(CM_SIDR_REP_PRIVATE_DATA, sidr_rep_msg, param->private_data, + param->private_data_len); } int ib_send_cm_sidr_rep(struct ib_cm_id *cm_id,