From patchwork Thu Nov 21 18:12: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: 11256687 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 D47EC930 for ; Thu, 21 Nov 2019 18:13:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B2CEA206D8 for ; Thu, 21 Nov 2019 18:13:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360003; bh=7VSap/pDkZCJ2HaTTu0ygwqILaPsiLNK7bYS+hXyIiE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=NMwv2yGRs1Y519DZLYyyvhz68LJzH2zoslhZpIW62a09xvQpR3swWlbo1wMsGmIJY P8eLneoJTd1Dar6XCghKEdV/g0SDB8s+K0bfBv0jEOGH43VackJLUWBCps8QPz+MUo i5aVI2qzTyKDKQeH600JNQXML2RDMvJY/LmMSL3U= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726333AbfKUSNX (ORCPT ); Thu, 21 Nov 2019 13:13:23 -0500 Received: from mail.kernel.org ([198.145.29.99]:51936 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSNX (ORCPT ); Thu, 21 Nov 2019 13:13:23 -0500 Received: from localhost (unknown [5.29.147.182]) (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 D3D4D206CC; Thu, 21 Nov 2019 18:13:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360001; bh=7VSap/pDkZCJ2HaTTu0ygwqILaPsiLNK7bYS+hXyIiE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CgPIprDI0SO+sVgBJJxJOPd5afQko66IugyQJ8UuBCw8WyamSC6HLihqsYJgmpphH GPLCLRGOnusQJx/G2QovAL1IIMDgz3KiO3xyF4etr+1uG8/9lLpuWE13WF90VQbaft k3Y+7yY3TGIBa784oDlqFVVE3RJOxQ0UpjdP4Odg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 01/48] RDMA/cm: Provide private data size to CM users Date: Thu, 21 Nov 2019 20:12:26 +0200 Message-Id: <20191121181313.129430-2-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256701 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 9E69D930 for ; Thu, 21 Nov 2019 18:13:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7DFFD2068F for ; Thu, 21 Nov 2019 18:13:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360027; bh=cBF5EzpRLP8zba3+uMC181Ty7ovdm1c/rDN73Kw60aE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=EBdMoUbJAk7XGi9IkZJ5OzDCY30/BgHrIal4JzwZp+0sMGfMpl02/RpQqFt+mWoMv YYp+h1fwPYGlsJYDKrOXFi1mieDSj5GFtChgjk94NMLwT1qXjS676s16WnnFLvtViT K+Ij4S+78vkxE13Eun77Ti7oIhNvP39h3+AfgI/4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726658AbfKUSNr (ORCPT ); Thu, 21 Nov 2019 13:13:47 -0500 Received: from mail.kernel.org ([198.145.29.99]:52274 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSNq (ORCPT ); Thu, 21 Nov 2019 13:13:46 -0500 Received: from localhost (unknown [5.29.147.182]) (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 B8D232068E; Thu, 21 Nov 2019 18:13:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360026; bh=cBF5EzpRLP8zba3+uMC181Ty7ovdm1c/rDN73Kw60aE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uemhXWQJG5KbNFMUIX/vcC8VJjQAOkan/w9qydDVbc3UHZ3h4CSlhHQARagDMS/SO w3lOqvm8sxSGwCoD8hOqM/D9SFAFFXjxqjhanI7wZcJI0RgQ7KJ5nHiqjgGSck9YmN Za7FSK/pwJMbVjCHJERbdFUa5TyDPyQ0r2FNhGE4= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 02/48] RDMA/srpt: Use private_data_len instead of hardcoded value Date: Thu, 21 Nov 2019 20:12:27 +0200 Message-Id: <20191121181313.129430-3-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256689 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 B35B714DB for ; Thu, 21 Nov 2019 18:13:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 89AE1206D8 for ; Thu, 21 Nov 2019 18:13:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360006; bh=KgjoelqVhEOaIDgNkKTIDlSDroSND8RxZdzw6cH0C4E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=2RC0M8a5eYqDNukYCJ+NsYSvFkm3h1VnBhB09YZSAbpYyJiXgbZxAzkRFX+Du2SPP 8OXpJzfQrbcKJq83PWPZtfXU1iEAlA+XNpKel9SD+ptlYg0ykdCvD9i+ElMer6PqeG swASrPGY4beEbFgUJsdeePh7L0oG/cBxUAsfB7F8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726379AbfKUSN0 (ORCPT ); Thu, 21 Nov 2019 13:13:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:51994 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSNZ (ORCPT ); Thu, 21 Nov 2019 13:13:25 -0500 Received: from localhost (unknown [5.29.147.182]) (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 7985B206D7; Thu, 21 Nov 2019 18:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360005; bh=KgjoelqVhEOaIDgNkKTIDlSDroSND8RxZdzw6cH0C4E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aWXy3bvgh2RHH4Z+QTCkKGGrTP7qAZ/T53NVsp6Xn6hVF/tVWJFafJo53e6eNDXgu i7BwsN+RYYffr6Wlvb7OcZZ0+aH261c8yrm0XVlqslNWpG1EToDwJP/3crUykxBexf h6gYeZBRosEeblo+q14WgS1tq0ITN0KHx9xxaS3w= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 03/48] RDMA/ucma: Mask QPN to be 24 bits according to IBTA Date: Thu, 21 Nov 2019 20:12:28 +0200 Message-Id: <20191121181313.129430-4-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256691 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 9554214DB for ; Thu, 21 Nov 2019 18:13:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 68F14206EC for ; Thu, 21 Nov 2019 18:13:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360010; bh=HlVW3N6C7d6L5Aer8EluCk54MCLHAsDbvkt0Q2aoEHY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=fwjUyWPjIe4zr4/e7WrqkUMbLN6tapRp5fa+cNGtJkjDOheIBRwjwREpsQg+KJ63I wvwEadwbYnMhrJUbj/30AsyWSZC1VVAi6NdaX4pcPgfLdIm6MQuGT9YXcvKgJXdJt8 wtGNn28LkxvdlUJnLOAqGFo4N3J0eoSJ2PWt2YQ0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726541AbfKUSN3 (ORCPT ); Thu, 21 Nov 2019 13:13:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:52034 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSN3 (ORCPT ); Thu, 21 Nov 2019 13:13:29 -0500 Received: from localhost (unknown [5.29.147.182]) (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 03A8A206D8; Thu, 21 Nov 2019 18:13:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360008; bh=HlVW3N6C7d6L5Aer8EluCk54MCLHAsDbvkt0Q2aoEHY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vfKWgeeaW0HvRLZMBvbIXgO/R48OHm7Fl5fUU42kTPwQlNgizsgIT8YDVMKnZg1/7 fsyyGP+OA2TlztERQAUbcUOmbj38V5QnEzJmFKE8iu/bpCEwq0/w8gmA8ZyZ7iOdXl YgfVDkhTTztKL5vQy1mUFyZgy+sEmR7ZMqZhkcoo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 04/48] RDMA/cm: Add SET/GET implementations to hide IBA wire format Date: Thu, 21 Nov 2019 20:12:29 +0200 Message-Id: <20191121181313.129430-5-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 | 137 ++++++++++++++++++++++++++++++ 2 files changed, 138 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..454dbaa452a7 --- /dev/null +++ b/include/rdma/iba.h @@ -0,0 +1,137 @@ +/* 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 + +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 Nov 21 18:12: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: 11256693 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 9D491930 for ; Thu, 21 Nov 2019 18:13:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7428C206CC for ; Thu, 21 Nov 2019 18:13:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360014; bh=GgkZpg+nHtEm/0A4ixmifsOmCfJsSdj/BmIsHdgClWc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=l3SqkRva/68/Bd5kSFaWvnHX/JL4iyzHurilNgxr9xZNmzKAkR97HF0nv+VjDfenl DvoYd7lIAnTp7WzU2uCdUPqFXQvBoH4YJXEQ96ThNiZcmGv8Lv0ErIGa2eMG8q0dqZ Cm9Ia0JMnbaoHYQudwECgcQwkftzejBPLICKHvkY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726546AbfKUSNe (ORCPT ); Thu, 21 Nov 2019 13:13:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:52066 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSNd (ORCPT ); Thu, 21 Nov 2019 13:13:33 -0500 Received: from localhost (unknown [5.29.147.182]) (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 7A6402068E; Thu, 21 Nov 2019 18:13:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360012; bh=GgkZpg+nHtEm/0A4ixmifsOmCfJsSdj/BmIsHdgClWc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LNSuJPBmq+nI4kH8XD+OGEN8NT4rxXQ5HOn8ETIrxo3gjZ8oL9zmnIkQJ7iVpFJxn XJF7kA8FKcI4qsJv+8Bt5BcnVdNe9a6nC8dHBguYn0HJDqIZ7scsTjY2B90ayQuUNW tTxOAwUYhK/AHiYfXSuUmeetS8ngcnpOJ11OFMpg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 05/48] RDMA/cm: Request For Communication (REQ) message definitions Date: Thu, 21 Nov 2019 20:12:30 +0200 Message-Id: <20191121181313.129430-6-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 | 88 +++++++++++++++++++++++++++++++ 5 files changed, 94 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..885b7b7fdb86 --- /dev/null +++ b/include/rdma/ibta_vol1_c12.h @@ -0,0 +1,88 @@ +/* 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_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 Nov 21 18:12:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256695 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 D7845930 for ; Thu, 21 Nov 2019 18:13:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B87B0206D7 for ; Thu, 21 Nov 2019 18:13:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360017; bh=1vLk3c3Ats0Wv3CoMQwtWCws608wXlTFKlNfuDsm6CI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Ba7bhr5MsZA7BFwRClIBQEBb+m83/O1ea6pk9Qnx5Jg3px4ebGuzTgaLiKEhc6yjf p4sxrdeO/eUIXrIXG09rFfAgfPnMk3ZGWrEq44hCh94ddgmAFQgXzYigO5FM1StKKY nT8HqH1YUyXuG6mqrnaiLLjsROhH9uXjxrZhsRrk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726568AbfKUSNh (ORCPT ); Thu, 21 Nov 2019 13:13:37 -0500 Received: from mail.kernel.org ([198.145.29.99]:52112 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726563AbfKUSNh (ORCPT ); Thu, 21 Nov 2019 13:13:37 -0500 Received: from localhost (unknown [5.29.147.182]) (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 186782068E; Thu, 21 Nov 2019 18:13:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360015; bh=1vLk3c3Ats0Wv3CoMQwtWCws608wXlTFKlNfuDsm6CI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zkn3hpEUNmBS/tJIPfRFibv6EqHaLC2pq7rPGxHjw/NIandW+vDokQvjnIab+8fHl PCunaFn4dfCt45Vx4geA44hvuS1jgslIM96J1DJR19wr+GV84IOgh89pHECvNlZ/ZJ yrsr5ZIAErTopIRHoefNoKXqTU030zSa9Oh9gDiI= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 06/48] RDMA/cm: Message Receipt Acknowledgment (MRA) message definitions Date: Thu, 21 Nov 2019 20:12:31 +0200 Message-Id: <20191121181313.129430-7-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 885b7b7fdb86..a9389957d375 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -85,4 +85,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 Nov 21 18:12:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256697 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 4354514DB for ; Thu, 21 Nov 2019 18:13:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 208F2206D7 for ; Thu, 21 Nov 2019 18:13:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360021; bh=8RJm8u3Cssnd6mwlVXD96s1eaomKa/ReoD5ePuIROKA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=2wEd7TTGsrhaA6X0tHVQpBOutDWA7fLz82EaVNLgRjS/JtFYPPxGZvVM7+ORbNPvg IQRDH8ssVIpXzN3RpReY1jFxWK/DCnY9pQPs5gVQk4+/FS/EAvsnSpLLzfMgZyepv2 ZabqEfeL+3NK2/ZWdbxQLxKcBCGAw7p2t4J/f8pY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726563AbfKUSNk (ORCPT ); Thu, 21 Nov 2019 13:13:40 -0500 Received: from mail.kernel.org ([198.145.29.99]:52146 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSNk (ORCPT ); Thu, 21 Nov 2019 13:13:40 -0500 Received: from localhost (unknown [5.29.147.182]) (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 A006A2068E; Thu, 21 Nov 2019 18:13:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360019; bh=8RJm8u3Cssnd6mwlVXD96s1eaomKa/ReoD5ePuIROKA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f7mID57XO9QhV3D7szZKcToBgCFivHNyLnT5bGOuwCXXrZeSrZwv0u5V2D/FNAObN QbRvl5KBgBIrQ0FhqjXBYMMZSSqRbWWASrUYfeb7kOrIiIFrNI6+HrRo0e1Tq2GFgb zNldU++7GlygZtpRWtKCQvEQrYcdPzZzX4wXqswQ= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 07/48] RDMA/cm: Reject (REJ) message definitions Date: Thu, 21 Nov 2019 20:12:32 +0200 Message-Id: <20191121181313.129430-8-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 a9389957d375..abd5b4d3b2ba 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -93,4 +93,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 Nov 21 18:12:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256699 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 19D1F14DB for ; Thu, 21 Nov 2019 18:13:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EDDC72068E for ; Thu, 21 Nov 2019 18:13:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360025; bh=kayx+RObl28da5uh/6B807L22JHGKAOhq4xN7ekOGtU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=zWYUXF3XJDVs88Zcmkmoitn5+WnOQjtiBnHHguVlcQ7e/H0Nb3Wl3ynVSBHs5I6Lu f9+M3LUsNUfmnWodfrcTX23nUOR/8Mc9UI6PA/Hr7j1PvlLqRE954dOXr5XyBlLc3g xqdu4mN1xUCh3xZctlSHKhtmQNbigKwKIbMVvMbw= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726655AbfKUSNo (ORCPT ); Thu, 21 Nov 2019 13:13:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:52202 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSNo (ORCPT ); Thu, 21 Nov 2019 13:13:44 -0500 Received: from localhost (unknown [5.29.147.182]) (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 2B741206CC; Thu, 21 Nov 2019 18:13:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360022; bh=kayx+RObl28da5uh/6B807L22JHGKAOhq4xN7ekOGtU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=biwZ4YmHN2d23h0T3/kjvSkI4Xob10GNn6STAi10CcmrDE4uxEDj4LJ8FAc0cEylS 3nOCKpb9JZoqpF39R9j0avKBtXxzNFUTcIBsJNO3H30tbw5Di10Tuu6x4xlm5h3gT2 Oh4En0JCLNGISP9PG/TkonVm8XyGCrh50jWg8U10= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 08/48] RDMA/cm: Reply To Request for communication (REP) definitions Date: Thu, 21 Nov 2019 20:12:33 +0200 Message-Id: <20191121181313.129430-9-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 abd5b4d3b2ba..a6f48e56a630 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -104,4 +104,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 Nov 21 18:12:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256717 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 C1FCC930 for ; Thu, 21 Nov 2019 18:14:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A2214206CB for ; Thu, 21 Nov 2019 18:14:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360055; bh=Yc9eJanbgn0LuAX25e68ERkbkbY8iifimmaAGfVU2Do=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=xt+V3dhYA/io4WmLAazBtJDcwNLg0lqNkZ+BmZjpIDXwwYM7bfolj0G8HW+MoI4TN tAq2Y8p7AZ1FKAEJuR2nlQ0YXnLJU0tDTyPw2ObfUDScgRDlqiV1ATyGiqREYccVJg GBZCJuxsw+yfToGB6cGAv0c+bHA3rcMbUhCsdpp4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726948AbfKUSOP (ORCPT ); Thu, 21 Nov 2019 13:14:15 -0500 Received: from mail.kernel.org ([198.145.29.99]:52684 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOP (ORCPT ); Thu, 21 Nov 2019 13:14:15 -0500 Received: from localhost (unknown [5.29.147.182]) (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 DFB432068E; Thu, 21 Nov 2019 18:14:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360054; bh=Yc9eJanbgn0LuAX25e68ERkbkbY8iifimmaAGfVU2Do=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Cfjgfb5sSDjjaYl6CyaoMNuH4FIgUllEt/IaXcqDdErsDzqZbmWIKnZksxeBfZkKU MeXXgG0m1CFMbt2cfzcF5+oqq/d0uc0XxYj/fZBUr82RNMDxHWss8KDKW5rOFx5gdA A7R24wi1oLALTjjFYQ73TM4X0U/RHc931ZJ4CVQU= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 09/48] RDMA/cm: Ready To Use (RTU) definitions Date: Thu, 21 Nov 2019 20:12:34 +0200 Message-Id: <20191121181313.129430-10-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 a6f48e56a630..5df31e88235e 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -123,4 +123,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 Nov 21 18:12:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256703 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 ED839930 for ; Thu, 21 Nov 2019 18:13:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CD6BB206CB for ; Thu, 21 Nov 2019 18:13:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360031; bh=tHxX0JxhwQglJUniJaDcvKFcos7WIuebbT/9LMNUnjI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=spLfAmnAaKbpSudQpxvEMLYE6EuvuWCLowB7jz6bLCyw3znltXDZs2ocZVeQ9xkat dc4r0tDXj74D1B/+89ugS6PFJZMr2UeeCXp/UOUaHhzVoJUs66xXPw439oXHqyjwJF yIljGAWPZYwD8JdMp7yUcYpjaC4urI+CzFPLUXQU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726689AbfKUSNv (ORCPT ); Thu, 21 Nov 2019 13:13:51 -0500 Received: from mail.kernel.org ([198.145.29.99]:52328 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSNv (ORCPT ); Thu, 21 Nov 2019 13:13:51 -0500 Received: from localhost (unknown [5.29.147.182]) (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 49B362068E; Thu, 21 Nov 2019 18:13:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360030; bh=tHxX0JxhwQglJUniJaDcvKFcos7WIuebbT/9LMNUnjI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VvRIR49x6kmNFS+cdvjV36FYCTiiLtpIiSXXHrzBDnHY0ov4cAcP0+7tBwyW0l7gO TQm5wbaWSPwIE8vqYNEvnZImVc/vm3E2opRO9uU5O6k66Dv2iLFZodMspN4Me1n8Fh cHT5vS/KT2OJQySXTNaBJvw70EhDqzMkcW/kPz3Y= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 10/48] RDMA/cm: Request For Communication Release (DREQ) definitions Date: Thu, 21 Nov 2019 20:12:35 +0200 Message-Id: <20191121181313.129430-11-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 5df31e88235e..815373932c41 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -129,4 +129,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 Nov 21 18:12:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256705 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 20D87930 for ; Thu, 21 Nov 2019 18:13:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 00ABF206CB for ; Thu, 21 Nov 2019 18:13:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360035; bh=sv4399/WpdTIAn0ozQKUnjDVTdf9UuAmg+3ya43Ul1k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Qg7wOE8BEC4zwHiTneeA6JBpLilaSkTeh042AKfQTrDTXRLwc9SUy7Yk10uDiazc1 V0yJJnLo/4vbZ/hChnIs4M2e/n5UziMjttYXvWVgmZ1nsdmK1s6pOAT0DYe526KmeR 2ipeo45lH8odgejTGD7dO+gElmdWnt5P7lqJE/hs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726714AbfKUSNy (ORCPT ); Thu, 21 Nov 2019 13:13:54 -0500 Received: from mail.kernel.org ([198.145.29.99]:52368 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSNy (ORCPT ); Thu, 21 Nov 2019 13:13:54 -0500 Received: from localhost (unknown [5.29.147.182]) (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 BF7B92068E; Thu, 21 Nov 2019 18:13:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360033; bh=sv4399/WpdTIAn0ozQKUnjDVTdf9UuAmg+3ya43Ul1k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PqusFHiN7TbV6SSpkgeOhG3gnH5Zlw0FDpKXp5NlACvVagqUXJccIYMJA7cVoIf5C Jdu05CDdbJeIkuSvSSBNAVIzm7NjI/Zc7cz+BW4sK9iqvgHURRAbALfuSqkXm1lWLI /aCjIFeJ4XCg4Pn//oW2LPpgSruVqddeB5lKhWvg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 11/48] RDMA/cm: Reply To Request For Communication Release (DREP) definitions Date: Thu, 21 Nov 2019 20:12:36 +0200 Message-Id: <20191121181313.129430-12-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 815373932c41..48a66797df54 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -136,4 +136,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 Nov 21 18:12:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256707 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 1477B14DB for ; Thu, 21 Nov 2019 18:13:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E729E206CB for ; Thu, 21 Nov 2019 18:13:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360039; bh=RV227K6vDJjvPxg/v1RZcFja+ThJV7yluAV5eRdT/yM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=c8Z2Xx5cv305QC24BRl6XhZGx426wOXYlLTQQOD6HKj02sGf/k1kan+TgSuTlWfJD pyzTl4CYbrx1ttKKY76OjrgEI+BLQWV6vcS0kGm1ZYiMm5W09zYbHej30R4M5A6CmX OCA34QFuGuhkCg0xOHsWQYrYIYu0xs0JfTKBHIQ4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726881AbfKUSN6 (ORCPT ); Thu, 21 Nov 2019 13:13:58 -0500 Received: from mail.kernel.org ([198.145.29.99]:52464 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSN5 (ORCPT ); Thu, 21 Nov 2019 13:13:57 -0500 Received: from localhost (unknown [5.29.147.182]) (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 366BB2068F; Thu, 21 Nov 2019 18:13:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360036; bh=RV227K6vDJjvPxg/v1RZcFja+ThJV7yluAV5eRdT/yM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vExbA/TeHORA2S0MS/lxD/th0lV2XlC14v30GHKmAokYo8BPMubzHvu5VplS9vMDo wVrSa1u8ETnM/d3ZEjo1nxbZjrAOLWufcSf/F5OYhalTcvmyXs1M3UD/NUR0rimwHu N4piI5uX6RC8L+OPdDSI0i/M+PrERDgKAjHYct8g= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 12/48] RDMA/cm: Load Alternate Path (LAP) definitions Date: Thu, 21 Nov 2019 20:12:37 +0200 Message-Id: <20191121181313.129430-13-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 48a66797df54..17b730f4cdae 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -142,4 +142,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 Nov 21 18:12:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256709 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 9F52014DB for ; Thu, 21 Nov 2019 18:14:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7F1E92068E for ; Thu, 21 Nov 2019 18:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360042; bh=9icpP2GmvywMi1B8SYB2zv0CaDqXBJb5lRpnpnogMAM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=jis/BEqoNF6revksVyc9+ylc7EX2j3rlfnS9Jpw10QbYkzge43pn1rv5R3CaKykaG PnDZfN4K5++h07APKiFS4UXkjLaz9+ofibf33ez0blNn8hgtMXjGMLzOL1sDt15RDs 5UATHvuOPRcb+96xHWXWx9R+U0pRu243J4vyWSAQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726905AbfKUSOB (ORCPT ); Thu, 21 Nov 2019 13:14:01 -0500 Received: from mail.kernel.org ([198.145.29.99]:52518 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOB (ORCPT ); Thu, 21 Nov 2019 13:14:01 -0500 Received: from localhost (unknown [5.29.147.182]) (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 C1E782068F; Thu, 21 Nov 2019 18:13:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360040; bh=9icpP2GmvywMi1B8SYB2zv0CaDqXBJb5lRpnpnogMAM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=STKFnRhY3RVKYe3LeotXYOIfHZZ5ZdGBrY8hXwpwZc5RJv+7mWdx2v8mSbyZ4mCrM 7n04imz1AfG8O/gqamPV5Mdhy3d+fUV+iYqnwaeRE0YE3MfZ/7vM+ZIzjFIKDFpZ2R bbfjnO/lBs+5iC0ADGWCSdRl0AmlFcqiMgtoaMKw= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 13/48] RDMA/cm: Alternate Path Response (APR) message definitions Date: Thu, 21 Nov 2019 20:12:38 +0200 Message-Id: <20191121181313.129430-14-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 17b730f4cdae..0b7a4023016b 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -168,4 +168,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 Nov 21 18:12:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256711 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 D67EE930 for ; Thu, 21 Nov 2019 18:14:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B5A15206CC for ; Thu, 21 Nov 2019 18:14:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360045; bh=gP0nQc+UectxAWo4dpa58eHfj0ZsH50g70EjSsmLlPo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=rHx76tOb6kom5WT2ApPV0eVR6mwVbBsyGGisfMPgy+XKO5L/a7CBk63Pw4OvSn24e ZUZUurDQPq6hguYPD0DS/zJAwi9CMy5NvfkeyaHlWoQZcccN6ca4kAuCfBwnGLS5Ua Z2whkyEPdcUAl+dyMk7h+JwZQj/GlZkQvyIJJNpY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726922AbfKUSOF (ORCPT ); Thu, 21 Nov 2019 13:14:05 -0500 Received: from mail.kernel.org ([198.145.29.99]:52556 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOF (ORCPT ); Thu, 21 Nov 2019 13:14:05 -0500 Received: from localhost (unknown [5.29.147.182]) (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 4F4912068E; Thu, 21 Nov 2019 18:14:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360044; bh=gP0nQc+UectxAWo4dpa58eHfj0ZsH50g70EjSsmLlPo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gw7T7MVEU/a+z+SxgpIgH+iinfYCzquLFGeoQOHTpkKyMlkTsbk41uPOHlPNRD7gD y3ulVPB+evQPNP3CV0Ub10I+zMLiBfjBdmermj9OOxVsnWGia2c2aPUTdah5m5C7i/ iK8eiXQyFGQpg4TWNgy4mGzu/3AZZZU3yVfP7uVA= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 14/48] RDMA/cm: Service ID Resolution Request (SIDR_REQ) definitions Date: Thu, 21 Nov 2019 20:12:39 +0200 Message-Id: <20191121181313.129430-15-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 0b7a4023016b..36bb04ee7634 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -179,4 +179,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 Nov 21 18:12:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256713 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 08823930 for ; Thu, 21 Nov 2019 18:14:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DDDE5206CB for ; Thu, 21 Nov 2019 18:14:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360048; bh=oe8TL+S+41Dqhdd+1ul1Xrv3gX7pr++lQIhyZn6wVtk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=zT1s+rw4zcwTKnud0XybPZG4G2NkuC04kkjnEEVyeBseO7qdBOh9rjWcUK/IK3wGw V1NYEhNzXfGXC7A2gyyOOcNOtdUp/tJaj7VjYnRnRzegLFxHldnZN/ZLjPNHqvizZG +kmEVwKuIbyKZi7qRQ7TypnSxHpKytlyHsGjLId4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726939AbfKUSOI (ORCPT ); Thu, 21 Nov 2019 13:14:08 -0500 Received: from mail.kernel.org ([198.145.29.99]:52600 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOI (ORCPT ); Thu, 21 Nov 2019 13:14:08 -0500 Received: from localhost (unknown [5.29.147.182]) (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 C758F2068E; Thu, 21 Nov 2019 18:14:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360047; bh=oe8TL+S+41Dqhdd+1ul1Xrv3gX7pr++lQIhyZn6wVtk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f2Abfm1yE5AQrcbYHfN0kbxHdLm7JAL6qsQzlMnX12kf0egpx35zegokP7yMl23t7 q7E9FIrHsQyAyZ4Qt2/KSf65jSSrzqwkW2Nnk36Lo5JgnYv/HG4Lww2kVxsoC9qqPK C6jktww0uX5cHnZ73NDEYoZnwc1Qk3iqf/kvv5cY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 15/48] RDMA/cm: Service ID Resolution Response (SIDR_REP) definitions Date: Thu, 21 Nov 2019 20:12:40 +0200 Message-Id: <20191121181313.129430-16-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 36bb04ee7634..9fd19ccb993f 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -186,4 +186,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 Nov 21 18:12:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256715 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 39E18930 for ; Thu, 21 Nov 2019 18:14:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 123222068F for ; Thu, 21 Nov 2019 18:14:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360053; bh=BGSDKMjaheWV4Lfmz1O+3NmUfINrABOTX792Tg3Db74=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=VDQURTDqJ48Ge7n6sRSNAIXVUf61SC/nkrShNEM03JTZUr+oHn38tFkmG6/WQfWyL rRyr1PAGESu6HfZE9tnqay/cPppt01JVGpssk5QlVQnWf3Ibfd+v5LIC5Y3LqZa3BR qP0Mxym7pQBdho/97OUnf9kMxKawaD9oS6vzIMSo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726947AbfKUSOM (ORCPT ); Thu, 21 Nov 2019 13:14:12 -0500 Received: from mail.kernel.org ([198.145.29.99]:52640 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOM (ORCPT ); Thu, 21 Nov 2019 13:14:12 -0500 Received: from localhost (unknown [5.29.147.182]) (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 50BBF2068E; Thu, 21 Nov 2019 18:14:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360051; bh=BGSDKMjaheWV4Lfmz1O+3NmUfINrABOTX792Tg3Db74=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pDSQlsVmjZ78dakeEzRROB4/xX4n+FmZIlzb7DiUrj0Z8qzzwvvnBimMhEFUIF3Mm tsXMkcXOti/ExwtrbJ/ocxpMDF1CkMDmxLNfH8M7/RZks6ssIUXzLVO4QmgFOVZKag 1Eqf5477yraF93tvTRrPM+et5HSjY09zTOORvSYo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 16/48] RDMA/cm: Convert QPN and EECN to be u32 variables Date: Thu, 21 Nov 2019 20:12:41 +0200 Message-Id: <20191121181313.129430-17-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11256739 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 03FEC14DB for ; Thu, 21 Nov 2019 18:14:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D90B1206CC for ; Thu, 21 Nov 2019 18:14:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360080; bh=3x+rg8sJs9gCLLyJRyCedQdhZup8Nor0xiHxZ3ZpFlg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=lwYOa8lr2nkA6FXW27i8kRqAlvzdWLxEEbRVdmCIOq7yQZdCFx4urcwRTeQMPiwYP dMwXmyk4f4ot54E/BeDlDf10JvG3a1W/TKprkHjwDb6P6LzghyfBZFfP6QDssJUtG6 L+sZAkiMwmyM7MWi8J+L/UfU+A0pAdonfiJRDOOo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726968AbfKUSOk (ORCPT ); Thu, 21 Nov 2019 13:14:40 -0500 Received: from mail.kernel.org ([198.145.29.99]:53044 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOk (ORCPT ); Thu, 21 Nov 2019 13:14:40 -0500 Received: from localhost (unknown [5.29.147.182]) (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 45DED2068E; Thu, 21 Nov 2019 18:14:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360078; bh=3x+rg8sJs9gCLLyJRyCedQdhZup8Nor0xiHxZ3ZpFlg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JE3RnC6TDSvZN3pQ2GeKK07YWcvBcs1bFiAa9h/sYMFkqOWRMIht+YTiqBgFpgwox EgTr33ciuVs9QGY0cQJEjFEMWMyawnbE6/tI+V5nm3QDUSiivyfkDkZ1cGbaBV20Fz X5sXjY+KJ1Mk4i53YkUjzBGTh1oqgCAhaisz6AVE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 17/48] RDMA/cm: Convert REQ responded resources to the new scheme Date: Thu, 21 Nov 2019 20:12:42 +0200 Message-Id: <20191121181313.129430-18-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256719 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 0730F930 for ; Thu, 21 Nov 2019 18:14:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DC915206D7 for ; Thu, 21 Nov 2019 18:14:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360059; bh=TXT5vXhVanahK+Bvi7IVHNo7qoNd5GqPYyYKvb0+5ds=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Fob0WefTFJ37FMxmV8Q636N0PN8vw4cDGvh9v3IfAqlN0cHwjqjQ8athcrgiFkn3T +V8r2CATyvoC+xAjDtn6g7S8vS7s/Qjeb9hBDT5wnoKuM991NPHOvY1+n1I2pgi01W iuIgHYTdNe0mW5SrFn4+wSZvPuHXnplr7EM4xc8o= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726634AbfKUSOT (ORCPT ); Thu, 21 Nov 2019 13:14:19 -0500 Received: from mail.kernel.org ([198.145.29.99]:52730 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOT (ORCPT ); Thu, 21 Nov 2019 13:14:19 -0500 Received: from localhost (unknown [5.29.147.182]) (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 6112F206CB; Thu, 21 Nov 2019 18:14:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360058; bh=TXT5vXhVanahK+Bvi7IVHNo7qoNd5GqPYyYKvb0+5ds=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JC1fptXgUGTHsL/J2GHBuhXVHai7gMKBBcG69C7RNZufCTmgW0yyBbHK9BYMFb6jO VqBPy4votFI3KAWXjtkkL9iJDJBlfvcadeLaWE2YmfZAhBbB2mveA+Qq5NHBbuKm5n L3fsy4B/kiP73jNwpNIevb1JiKVGcdvnkKyIoxAs= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 18/48] RDMA/cm: Convert REQ initiator depth to the new scheme Date: Thu, 21 Nov 2019 20:12:43 +0200 Message-Id: <20191121181313.129430-19-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256727 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 DD4B5930 for ; Thu, 21 Nov 2019 18:14:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BE2C2206CB for ; Thu, 21 Nov 2019 18:14:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360062; bh=ft2P2R+4z2YcD7Wa4yjkDQ33vLAm1igD+/GjkqRcGGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=c7CDRVOBWzsqEy6L7gOjgkALAXpEsmxxzQRjoYo37f+uJFtPQemWS2aweZ6YWLKQJ e0WQuin+kIrf88Cc7zoG1YAalFQZW8D2tNgSFGlIWLMyMeHA2BKZhRC8CYiX/DzHu3 9fQcb6G+PH3bkATHnZDlH/YG0LgWUQ/D70fHSpoQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726716AbfKUSOW (ORCPT ); Thu, 21 Nov 2019 13:14:22 -0500 Received: from mail.kernel.org ([198.145.29.99]:52788 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOW (ORCPT ); Thu, 21 Nov 2019 13:14:22 -0500 Received: from localhost (unknown [5.29.147.182]) (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 D296F2068E; Thu, 21 Nov 2019 18:14:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360061; bh=ft2P2R+4z2YcD7Wa4yjkDQ33vLAm1igD+/GjkqRcGGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zMSE7fLuKK3jefLdZ21ggoMxi2bDAuKLgYzKuoKO66n9uDqj/J68Y9LQThocEYhY7 CA12bSp0NH1gkgxqDyU3FTUrGoIf/My6jplDs/iMHbkM2B7LyLv3LDqAZpjwuLNDd0 cATh223heRp86IAcWeobB1ck6qs9xmdIfMrG2X1E= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 19/48] RDMA/cm: Convert REQ remote response timeout Date: Thu, 21 Nov 2019 20:12:44 +0200 Message-Id: <20191121181313.129430-20-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256731 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 EC8B714DB for ; Thu, 21 Nov 2019 18:14:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CC85B2068E for ; Thu, 21 Nov 2019 18:14:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360066; bh=/hI0qvoQZqSwGz4lSCnw2joMweNIw+eAqLivtUx6nWs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=HBf2fUB9UTtT85vw9Ix6S/y8yf393VcC/np1IE1cYdS8UlE5pUPNXaTy0MR3xQ/kR nk6x5R8+xnnbfjLRzPVAFahKPgmfGVor4c1CRq2qI6RVpNWcLkcltw8bne2JTaMeIv 4ulkZ6V2t9Ws3stCxcPsL05aZPLuFKxNPPvOqbTU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726944AbfKUSO0 (ORCPT ); Thu, 21 Nov 2019 13:14:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:52868 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSO0 (ORCPT ); Thu, 21 Nov 2019 13:14:26 -0500 Received: from localhost (unknown [5.29.147.182]) (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 49941206CB; Thu, 21 Nov 2019 18:14:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360064; bh=/hI0qvoQZqSwGz4lSCnw2joMweNIw+eAqLivtUx6nWs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JBhB5ZRXgx+6Gp45AncxOMY8W8pay4TH8p4RHj6SMgbE1Km3NxGddXiNiWRIefCGC oxHnnDJA+dAmfUDWNCEX4vS7svmpuuDHiCSHMfl2+lhKp1GSJOnfPtelbUBcNJLKzu 7xPUX+iSk97P79PDF2rb+8NsqrZQsAsgT7Lyroow= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 20/48] RDMA/cm: Simplify QP type to wire protocol translation Date: Thu, 21 Nov 2019 20:12:45 +0200 Message-Id: <20191121181313.129430-21-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256733 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 E6363930 for ; Thu, 21 Nov 2019 18:14:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C719A206CC for ; Thu, 21 Nov 2019 18:14:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360069; bh=B87y17E+ryryoV4t72zk3yTwxNcFA1u9cEHi5OK3/0s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=unWUcgUrE2WKHxVEvjFRI5H2+7KaFcJ2NmFNc/l97n/5kBkjCzQWZh4TDdWTAhiJP GFgge1HEQ8LElic44xXzEXnTXhKDuHT9u3vTwUQHN9TnTbVkryW7+vWWOzeASlyYvZ EWfcLaddFKF4NdVzm8V6g8wONvOEW9Bzw/Hdh9uU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726952AbfKUSO3 (ORCPT ); Thu, 21 Nov 2019 13:14:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:52904 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSO3 (ORCPT ); Thu, 21 Nov 2019 13:14:29 -0500 Received: from localhost (unknown [5.29.147.182]) (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 CBC132068E; Thu, 21 Nov 2019 18:14:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360068; bh=B87y17E+ryryoV4t72zk3yTwxNcFA1u9cEHi5OK3/0s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uajlJl5kNpIJN1peAOCAZYhhoQS9NuxYaWqGPV2Cw9+k7TJLOq9g3BzOID88oQ/nH 5qcD/ncOs96lTi2wVfC8tTz2S7CUi8pxvJ6FMdSbf+rNl1Hm3eY+sWHXtXDa+7cHgj lgQSC5RMYC8a7xTUemNeX+5aANHa6Xsi9foNWumY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 21/48] RDMA/cm: Convert REQ flow control Date: Thu, 21 Nov 2019 20:12:46 +0200 Message-Id: <20191121181313.129430-22-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256735 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 1B332930 for ; Thu, 21 Nov 2019 18:14:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E83C7206CC for ; Thu, 21 Nov 2019 18:14:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360074; bh=hY2TOofrphCS8ZDM9L8nIENdjtuB0sUUwpoGkFFxwkw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=n8zvy13Zm3wjlsryQ2lmlQHNFy7gQ2nM9oxcDoUQ4v3MFQ8JSd4A0SugHkmM0fX3Y dSuGYhLSjtEqYXokbVtDmtj8QJyzbMo9XlLrFrJc15YDnujkqgTeGVVLnr/8JhSzkU x1W8412u3YtrJu/s0pJRh2xV3qbwFit0OECGHENU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726962AbfKUSOd (ORCPT ); Thu, 21 Nov 2019 13:14:33 -0500 Received: from mail.kernel.org ([198.145.29.99]:52946 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOd (ORCPT ); Thu, 21 Nov 2019 13:14:33 -0500 Received: from localhost (unknown [5.29.147.182]) (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 55EAF206CB; Thu, 21 Nov 2019 18:14:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360072; bh=hY2TOofrphCS8ZDM9L8nIENdjtuB0sUUwpoGkFFxwkw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a4g/qHpKlmsVjXvUsIoSfs36u1YBxyuKmMnPjnKBSPNVi7TBTylG9gZJHW7VSiPaG NevCkecjqnUd8jJqtkFVRPlW1TFeORCaFQnLnwndwPk2gvHbWtJoGAZTjhGVU20jEN 7g13t5GtR+5f7bqEnKEzhQRwwZ+g2too/LlJIkE8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 22/48] RDMA/cm: Convert starting PSN to be u32 variable Date: Thu, 21 Nov 2019 20:12:47 +0200 Message-Id: <20191121181313.129430-23-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256737 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 6731C14DB for ; Thu, 21 Nov 2019 18:14:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 490F4206CC for ; Thu, 21 Nov 2019 18:14:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360077; bh=Vjg+afCtDC0qb8YXaa+rFJR6qqYWZQZ4WpgtOCDIKOk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=OtpAfjUffGMdcbFXBBA/SuKrK0E10v7i9wgk/haBa7YbeKTBxS0RxhnTHKG7O+5GN BW9PKpUnKUeD5iRY39I8vQTwHh8PaZ0PxeuS6kbbz1xkRSuO3Fg694ZcfR5dwKxBt6 Y8tHsVrq/FBfbFEzIDZU8aQK/zFtMKgjYaJc7CjI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726967AbfKUSOg (ORCPT ); Thu, 21 Nov 2019 13:14:36 -0500 Received: from mail.kernel.org ([198.145.29.99]:52992 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOg (ORCPT ); Thu, 21 Nov 2019 13:14:36 -0500 Received: from localhost (unknown [5.29.147.182]) (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 C3001206CB; Thu, 21 Nov 2019 18:14:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360075; bh=Vjg+afCtDC0qb8YXaa+rFJR6qqYWZQZ4WpgtOCDIKOk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YBY84VtZ2niK1gJI9Gtp1bKyWNdyUxIZxMAE3r+HJKxqvh6t8TFcBJGROeKuwXdQO 7r6kh7Y1htjmxNsGkChXCg3ht28Y/gLK2t03eeUnlMREketCwvueOUz4r79aG4VSzj jeNmS0ONcfcd00Xq4CVK+7UYcrUuAWtQQwKPCBqg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 23/48] RDMA/cm: Update REQ local response timeout Date: Thu, 21 Nov 2019 20:12:48 +0200 Message-Id: <20191121181313.129430-24-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256747 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 6E825930 for ; Thu, 21 Nov 2019 18:14:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4D80C206CB for ; Thu, 21 Nov 2019 18:14:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360094; bh=XNIcEkgdkUhvB6T6uLyH4IJFxWIqk5KheXhuulsxMjg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=HZZ2fRweglQsWgL9FW2tw5O8h5aptcGEsU++E46IT1JMrqzDNMyysAk8S5ipj7m9F 6toE/4PSDbRbR+ipqy1IgaOuAmKDmYYMgMjpQ1vA8T99g1OZ4wrtwizA1c89tUqjMG x2IBAm+ZRdFdWqMoU1xWcSUT6rTNwRv+VSzNp3q4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726977AbfKUSOx (ORCPT ); Thu, 21 Nov 2019 13:14:53 -0500 Received: from mail.kernel.org ([198.145.29.99]:53306 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOx (ORCPT ); Thu, 21 Nov 2019 13:14:53 -0500 Received: from localhost (unknown [5.29.147.182]) (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 49B8F2068E; Thu, 21 Nov 2019 18:14:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360093; bh=XNIcEkgdkUhvB6T6uLyH4IJFxWIqk5KheXhuulsxMjg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dgS9tU6mb6N8sD+pYijvE/xCOqZ6fj5g1lvEVDgVl4i2DXk5rqj6bqC285l6QJvSf w7wUwP3BElPhquakvrcafqr4hi+nKgWqqRKedQhJTUzPcnqJ8Gg0WLRxl8HL8fUkje /za/ciGkSXFc60TVuTGk9WqGLn2i26QCmtN3m/wk= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 24/48] RDMA/cm: Convert REQ retry count to use new scheme Date: Thu, 21 Nov 2019 20:12:49 +0200 Message-Id: <20191121181313.129430-25-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256741 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 9C37F930 for ; Thu, 21 Nov 2019 18:14:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7D5F6206D7 for ; Thu, 21 Nov 2019 18:14:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360084; bh=I+UjwzleSz+069wAm3s0vncKS044UhY+KCLGn27Ba50=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=xg0HHOzr/4YK5xs3kDneAJq0RWuJg85cqIiugntxBMstV6JlJP8tmB9YOHgFobUsM gshMAGgoM3fOdCgRqWyhhDy2Gh0+sDrA1q7w0M2kv+vxP5lO9WmP8+gv1J8eyja1yo O7LZripueVLcAE425NkLriqCQIDeyEK49zvTZ3Cg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726970AbfKUSOo (ORCPT ); Thu, 21 Nov 2019 13:14:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:53096 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOn (ORCPT ); Thu, 21 Nov 2019 13:14:43 -0500 Received: from localhost (unknown [5.29.147.182]) (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 CA041206CB; Thu, 21 Nov 2019 18:14:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360082; bh=I+UjwzleSz+069wAm3s0vncKS044UhY+KCLGn27Ba50=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WHAuofc+aRoYfU47TTERb+JHEQCGHELriN6UWJuP1WPFOG4Pxm6iq6Eu4VSbhCvnO PmbYIJ7cpnYI/7ZYZm7Bp+GJGNnu0YOg4vOfygzLHrHB2ETur99aVwIqfvDm+gzHiN jwF2H4QwszqJn4VNlMdsQHRQN7q2+ATlFbzPE66k= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 25/48] RDMA/cm: Update REQ path MTU field Date: Thu, 21 Nov 2019 20:12:50 +0200 Message-Id: <20191121181313.129430-26-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256743 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 6471A14DB for ; Thu, 21 Nov 2019 18:14:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4551C206CB for ; Thu, 21 Nov 2019 18:14:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360087; bh=+LsPaH2jIxW7nbre660RK1jeEaE+IL/OO5bq7xQ7tO8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=UOhVDiCrTKRgDLD9eNLGG4tc60VegCNCkjMI/THZksNjiRBAJJI0eXhryuhLprjAz kT8+GUxSKghAQI9LZLYkbiY1C+DP4/qDYoxZd/hiCS+gml1smDng5YB5XYqpB8bnwH VyR0GGaaXowodOcIy4khdE7kWgK7+hcsAmFyzWC4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726975AbfKUSOq (ORCPT ); Thu, 21 Nov 2019 13:14:46 -0500 Received: from mail.kernel.org ([198.145.29.99]:53208 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOq (ORCPT ); Thu, 21 Nov 2019 13:14:46 -0500 Received: from localhost (unknown [5.29.147.182]) (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 484982068E; Thu, 21 Nov 2019 18:14:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360086; bh=+LsPaH2jIxW7nbre660RK1jeEaE+IL/OO5bq7xQ7tO8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gqntwRyqLjirjbqQB/9TRFjBOYEeO9EVHxOYrMdW2x0tHTQq1PN3uZX/x6ZYUKXe+ lhZra9oPRSjNEKsfb7wr9QGL2Z6BSZg+P/vh7kuMUjsluaRS4qvjaaSXtqEhURTxDA qkHcBzBYbhQZaoXFOaf+waYboIQk7UitoIR+dFs8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 26/48] RDMA/cm: Convert REQ RNR retry timeout counter Date: Thu, 21 Nov 2019 20:12:51 +0200 Message-Id: <20191121181313.129430-27-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256745 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 DE00D14DB for ; Thu, 21 Nov 2019 18:14:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BF016206D8 for ; Thu, 21 Nov 2019 18:14:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360090; bh=2Ov+7H0Rwlv2jh8mlF75RBpfNhpvW3JxM3BgFz8C3j8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=hflgzgArkS8UQj2/FzKAG+8XpyLmj2OuadJ2iul3z44WH7o7Cgu9612aBjZlNqTDk dLWyzgb3XE1q3KhIakWx34I+pAwGxxFQO8b9DohfUcaejdBiZM6B/BXq2/5h3vyLOv FDkK8+9n42vgoY1NgeEB92K1XVjo8U+tN5K6ghdU= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726976AbfKUSOu (ORCPT ); Thu, 21 Nov 2019 13:14:50 -0500 Received: from mail.kernel.org ([198.145.29.99]:53260 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSOu (ORCPT ); Thu, 21 Nov 2019 13:14:50 -0500 Received: from localhost (unknown [5.29.147.182]) (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 C02B12068E; Thu, 21 Nov 2019 18:14:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360089; bh=2Ov+7H0Rwlv2jh8mlF75RBpfNhpvW3JxM3BgFz8C3j8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WYNAlQFhm3Ss+HrjljkX/no8K1ranu8FTKrUnVzbyIUQ/G674+lQ1eKmZlylWWZqd 2LdI7BXUXGq+IjzP25AlG64B2bb/FIudsbY2U/dQg08epYkAvtpkfsPZkrZOIJ63aX bXurXvuYAEjQoQOlNhdaSuZ29pXdV0tOjVfUkAjA= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 27/48] RDMA/cm: Convert REQ MAX CM retries Date: Thu, 21 Nov 2019 20:12:52 +0200 Message-Id: <20191121181313.129430-28-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256749 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 F3E1614DB for ; Thu, 21 Nov 2019 18:14:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D5A45206D7 for ; Thu, 21 Nov 2019 18:14:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360097; bh=30SzVLqrvzScTMJIRpaN7UgMLpXBcNAOjRTRVlvaPS4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=ZEn3kHUcEZvWbZ5EwqB5+t7KkU5kQWRg32TS/ZrUW6kHop0pma12FaHyluj9BVS2x V+vXx1kZ8zLFkY0lqbJZcvVbY4BzGZ5rWjrjAZd4WjmSl63EWUhKxuCljd9MsVHjTt Ejb1h1IA46h3k/bo8ZI3wmiDa9+CxCjOVNZD17+Y= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726980AbfKUSO5 (ORCPT ); Thu, 21 Nov 2019 13:14:57 -0500 Received: from mail.kernel.org ([198.145.29.99]:53344 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSO5 (ORCPT ); Thu, 21 Nov 2019 13:14:57 -0500 Received: from localhost (unknown [5.29.147.182]) (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 E25102068E; Thu, 21 Nov 2019 18:14:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360096; bh=30SzVLqrvzScTMJIRpaN7UgMLpXBcNAOjRTRVlvaPS4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fWS/+arUEJ1ujgHsc8uIUaNj9ArstoWtBtxIyc1b6AGbBzuogPk6Puc6+3lRL6433 xWT41QHsq5NmLgZTPA5vqHT/7s5/Ow7p2v7GfMul02V5rYfgAgnxsFXZXQ3Ce6rwSv svqWouQBSgg06S88aC3w0EASx8D6463sMBgiXgjI= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 28/48] RDMA/cm: Convert REQ SRQ field Date: Thu, 21 Nov 2019 20:12:53 +0200 Message-Id: <20191121181313.129430-29-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256751 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 544F1930 for ; Thu, 21 Nov 2019 18:15:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3395E206DA for ; Thu, 21 Nov 2019 18:15:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360102; bh=mdZ/svik/ZnMyMqdHBHNFHOQLjbJv3j/pdNqOQQ3wKU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=0Edlw5uFTh4YpDTb65Ey8nmZAXUolmQOc0SiaV93oazuoS6JKU4TNv9S0OCrPNSIh RwclJ97jkG4pIuXyeXr40LWLyD7LFKgCHj33YZeSBA+stc/M0aVeaMrNzHOpaONuWZ PILfz1qbaBFQgLeiQ/dbOu0VjfPYg47YcFPozIQc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726985AbfKUSPB (ORCPT ); Thu, 21 Nov 2019 13:15:01 -0500 Received: from mail.kernel.org ([198.145.29.99]:53388 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSPB (ORCPT ); Thu, 21 Nov 2019 13:15:01 -0500 Received: from localhost (unknown [5.29.147.182]) (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 6C9D42068E; Thu, 21 Nov 2019 18:14:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360100; bh=mdZ/svik/ZnMyMqdHBHNFHOQLjbJv3j/pdNqOQQ3wKU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P4+yjnrDtDznh4ExNK5nn15pRy0Ag4SC3qF+vjiE0WbvmdnyevtTcjrcyZCyBMkg9 M9k/kX+lkvuWk5902fEiwZZzX57W9mUYvjL84ZpvhwF+oofdMxheoqmupvAJOSDet2 gArOLyaZ1DLRm1GD4GUbX7vZwSPkxOu38qROwOOY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 29/48] RDMA/cm: Convert REQ flow label field Date: Thu, 21 Nov 2019 20:12:54 +0200 Message-Id: <20191121181313.129430-30-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256753 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 8CA4014DB for ; Thu, 21 Nov 2019 18:15:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6B7B82068E for ; Thu, 21 Nov 2019 18:15:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360105; bh=8jEvlL+8YZjhC1OX4lrU8Xa0hjOqb2ft0jWTB5C2v+Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=zmlbbM6XwR2TFG+UNg5ErEVmoQYLscAOV0wghPELMfG3hycdDZMY2h2wL0WBw2IQ0 rIcqdcDRaH0mN95esZmmwMaXEJUHoMGA6lrIk/PuaSspYVq1widE+ra3I21AQPNwEi Tv/ap0ZJheSwQqj0Rj8PmQ/M4i2Y6zAgD515iRfs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727004AbfKUSPE (ORCPT ); Thu, 21 Nov 2019 13:15:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:53516 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSPE (ORCPT ); Thu, 21 Nov 2019 13:15:04 -0500 Received: from localhost (unknown [5.29.147.182]) (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 E6AA1206CB; Thu, 21 Nov 2019 18:15:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360103; bh=8jEvlL+8YZjhC1OX4lrU8Xa0hjOqb2ft0jWTB5C2v+Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o9AviR+bviyQxxgDV3f2KdBQZd0uslXkfNf5VqIZI3qiV9mETN3wMgf6VoeB8EakA lpoVufIqFLhB9IDDJu38iG256WK59grNGnpjaJbRr6nViRsfdy0H1e2TOWOpSKtspa dtBB6hNvN2fShl3hNlZn3p2QRzUlPgyjONAaLDJw= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 30/48] RDMA/cm: Convert REQ packet rate Date: Thu, 21 Nov 2019 20:12:55 +0200 Message-Id: <20191121181313.129430-31-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256755 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 564D9913 for ; Thu, 21 Nov 2019 18:15:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 369FD206CB for ; Thu, 21 Nov 2019 18:15:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360109; bh=E0boKt3WbcJHzYW4Tdxf6WUiZlFPrExT5LDH8WLF4IE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=mGLZeuVC8T4k07xVw8gE/aNvYcPH+L4/OWQUqKZMwO1YFnuLiCd0x/rIwOwZvvQmX PMyfgfhslIkRPO3mYhcqKGcytwjCxWdA0pEijD64y0mtEYlKVvtQTRqvfDNIsZIMGx yIOVbUSuE+p3SW0rZPmKqabCqphD5K9JINswSh+I= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727007AbfKUSPI (ORCPT ); Thu, 21 Nov 2019 13:15:08 -0500 Received: from mail.kernel.org ([198.145.29.99]:53590 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSPI (ORCPT ); Thu, 21 Nov 2019 13:15:08 -0500 Received: from localhost (unknown [5.29.147.182]) (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 757C52068E; Thu, 21 Nov 2019 18:15:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360107; bh=E0boKt3WbcJHzYW4Tdxf6WUiZlFPrExT5LDH8WLF4IE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wFg0gsWgKs3GX07nPrtsmXoIPEn9p32pHruCqDnW85P96sbLV/O101Ea2P1mG2lxY uZzQg6CtieY3Ofv8+0YhYgtQQTOaRdJK04uXzlA5PYBXrslvwwP71/T7aBA+Ldh+NC ubUk1yoARH9erzZ/G1faW9P0MEsR2CsnDJPw7Cr8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 31/48] RDMA/cm: Convert REQ SL fields Date: Thu, 21 Nov 2019 20:12:56 +0200 Message-Id: <20191121181313.129430-32-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256773 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 56B0114DB for ; Thu, 21 Nov 2019 18:15:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 37B07206CB for ; Thu, 21 Nov 2019 18:15:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360141; bh=1MUaeCQCqDeb3pyieL5IHACYtN3paRyQK9IRSQC418I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=F6qya8x67CdisH8l08C0qejhouqhJXD/3O7oAGv3ByEmXLbd5OqEPTfWxeLaGgPeP uf///O6TPzoY/sF14KEC6XKa/+wbdIo2OIfjytbmzDP6LO3ZhntFbVDpDikHbZzhP2 5KppQ7dYOvgthyYvIdAl823Ja80rdyPtucza0fLo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727104AbfKUSPd (ORCPT ); Thu, 21 Nov 2019 13:15:33 -0500 Received: from mail.kernel.org ([198.145.29.99]:53872 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727040AbfKUSPc (ORCPT ); Thu, 21 Nov 2019 13:15:32 -0500 Received: from localhost (unknown [5.29.147.182]) (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 133502068E; Thu, 21 Nov 2019 18:15:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360131; bh=1MUaeCQCqDeb3pyieL5IHACYtN3paRyQK9IRSQC418I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C6gdfGFIZ34ngZ5VzeTpWNm45cCcU5Yhon4/dhbi3RnPyx/rZE4vmTsdaRQYlJ0/c TVj+hMCJlWmOgzyiqqr3N50QSenBLOp1js7cCWjVdaFXUv3QzzY7zLaMym28ZtJyhL Zpez4cEzW7+ajxR3r2EpEpUah4erMr0voyoMZjO8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 32/48] RDMA/cm: Convert REQ subnet local fields Date: Thu, 21 Nov 2019 20:12:57 +0200 Message-Id: <20191121181313.129430-33-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256757 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 A38B1913 for ; Thu, 21 Nov 2019 18:15:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8379A206CC for ; Thu, 21 Nov 2019 18:15:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360112; bh=ChyQy0qHh6OLei+VapxDBfb7hdq0L4HelfN63CaWDew=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=SMv12M7zjgtmSX9Q2GKHW48LlGC3OgGMfi+9JLYKqwJKFqoBlm3BYmr3zhZGLMn5v N7SNbApZsh0YCgORLIuZypzrwZcf8lQJbJWgDzwBVLRzq8VsIQTuhBVUSn7Q4BZsv0 LPot/z6L1b/SIQnrH3ILOAcX5Tt2MxEsOAcrf36M= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727016AbfKUSPM (ORCPT ); Thu, 21 Nov 2019 13:15:12 -0500 Received: from mail.kernel.org ([198.145.29.99]:53628 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSPL (ORCPT ); Thu, 21 Nov 2019 13:15:11 -0500 Received: from localhost (unknown [5.29.147.182]) (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 E866C206CB; Thu, 21 Nov 2019 18:15:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360110; bh=ChyQy0qHh6OLei+VapxDBfb7hdq0L4HelfN63CaWDew=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sShVEvCNDMGGfOjEoWTubWcqfDjz2N/VqFeTL8Jk28HY/tvJGGTmEPxsX9FyJbjrs crB7iBcS6POkefQ5/Sp8H59b5AOVROBexMADzJFVCl/HIMJeAciDLy7dwM/l6gxB7i rDIWnU/FQsqAADW+m7VTLCehJQ+tBtxbuVsnMOOY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 33/48] RDMA/cm: Convert REQ local ack timeout Date: Thu, 21 Nov 2019 20:12:58 +0200 Message-Id: <20191121181313.129430-34-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:12: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: 11256759 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 54D69930 for ; Thu, 21 Nov 2019 18:15:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 356FF206D7 for ; Thu, 21 Nov 2019 18:15:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360115; bh=ifNojsfKCtNpTk2w/LKvUybkISqNnunGuoNgrB38J7c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=KDBk+ihog09mjF3KiwaDzEojfu0EjQRePl4xBtWS381vN+NCaj7aMBFPoik3J8GAK 01y02+R1nGtteCNXmedZy0KeftpfIbvkeyPeYoqnbRNpZNoebkt+W2OePpzq3jtmXh JVuKtMoh4kGcao3m1sZ84+ySfDpEDaGW6VyQJfzE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727020AbfKUSPO (ORCPT ); Thu, 21 Nov 2019 13:15:14 -0500 Received: from mail.kernel.org ([198.145.29.99]:53674 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSPO (ORCPT ); Thu, 21 Nov 2019 13:15:14 -0500 Received: from localhost (unknown [5.29.147.182]) (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 6BB102068E; Thu, 21 Nov 2019 18:15:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360114; bh=ifNojsfKCtNpTk2w/LKvUybkISqNnunGuoNgrB38J7c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z0HXECkIxOaqcVRY66KDswueF6bSrxTjk8eNXCCwas56IITj3aGMPv4Cw9thLNyAw mn7Ck71w9ZYMrC9pGyjwclMVIEqAK5sCCMbCKmctRczKEjjIUdRfgRZ9YXI1+uofoC 67xQtLJVZpbQE3EIWFYbudYlvBjLVhIQ1d/fXEXs= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 34/48] RDMA/cm: Convert MRA MRAed field Date: Thu, 21 Nov 2019 20:12:59 +0200 Message-Id: <20191121181313.129430-35-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256761 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 33954930 for ; Thu, 21 Nov 2019 18:15:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 14978206CC for ; Thu, 21 Nov 2019 18:15:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360119; bh=QwJroHYyDSD2YVXDm/sHAlDiTjnTE9tubeIRfc6ghjQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=YOpYuF9vnWaNRAgpduhaCesTaQbbYVSM+6N9HsvJoSFxyRJas6A4m5PSs/He/PHBX v4xiB3zWKJVRQAaKZaEPDp280EyyI/q7FO4LuN2qtTPjHWWt4skPPajOZiI0WV/Vdr LyZ+V+shLzXR8zlhjwXIBT6/mo/UuaNs7+1iezQo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726722AbfKUSPS (ORCPT ); Thu, 21 Nov 2019 13:15:18 -0500 Received: from mail.kernel.org ([198.145.29.99]:53722 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727022AbfKUSPS (ORCPT ); Thu, 21 Nov 2019 13:15:18 -0500 Received: from localhost (unknown [5.29.147.182]) (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 E85342068E; Thu, 21 Nov 2019 18:15:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360117; bh=QwJroHYyDSD2YVXDm/sHAlDiTjnTE9tubeIRfc6ghjQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NtURtAXlfsqyEapgu+ew6Oz5H5ObZgS562ThTXzZ6Dh2UKwJqLL4TTNWGpaFCakRH e2UXsVYgEoBRPmnQ9LSV1BFbuCap3VyQZvvdH+VtvyTOFId1JpIquDfs6EbWSf6vcd 658TUeY82e3ZeBTbTRT7IF6sdpGEMUxpfbF+fAuw= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 35/48] RDMA/cm: Convert MRA service timeout Date: Thu, 21 Nov 2019 20:13:00 +0200 Message-Id: <20191121181313.129430-36-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256763 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 75EB7913 for ; Thu, 21 Nov 2019 18:15:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 56ECB206CC for ; Thu, 21 Nov 2019 18:15:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360122; bh=FYbyjNmRJcPdpW6QCBFPkr05UzOgxiF9ti6C8xJ35zI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=mVUIofz0IieBJ3Cu77wG+RWugRCyw/96zkkqdiHNeKomhgaMHZhLIpLBoeYe1BRaf I7EjWLvb2IoquA8bi9K7FsgbeDaoxmnTQwAaAiwxu8jkGe+2xwZvkViVT6017vT4Lb 94F0gofZ/q3/dDLWiVbVPoF5zVhRbIF4y1pWRPr8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727022AbfKUSPV (ORCPT ); Thu, 21 Nov 2019 13:15:21 -0500 Received: from mail.kernel.org ([198.145.29.99]:53758 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726852AbfKUSPV (ORCPT ); Thu, 21 Nov 2019 13:15:21 -0500 Received: from localhost (unknown [5.29.147.182]) (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 7495F2068E; Thu, 21 Nov 2019 18:15:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360121; bh=FYbyjNmRJcPdpW6QCBFPkr05UzOgxiF9ti6C8xJ35zI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M/hwz3UIWmjIlt+XhEmQI+E5Vp4dVTmnOfxgDdzO5Q3YgChasXZZcODl6D96Yn+xc BLj5yEQiZHWZ4QrhZtrgsUgMaKBV1+nPiKndxL4oMejthAtQJ4D528p2+vnF8zu4nv maHO8obxF4X6jgwkFa5nJh4Cnlj/h8OHgKyuv1Rs= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 36/48] RDMA/cm: Update REJ struct to use new scheme Date: Thu, 21 Nov 2019 20:13:01 +0200 Message-Id: <20191121181313.129430-37-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256765 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 A31CD913 for ; Thu, 21 Nov 2019 18:15:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 840D0206CC for ; Thu, 21 Nov 2019 18:15:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360126; bh=q0/YF26BON0iMMz4vVwdz2zwBXq9pn+iJkbp2AqNCaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=P335Aye3X3qAriN9NKPMDGNgJU4DJHbXd8lQphcb25ROdr4JhiufTURv0wYP1iFMg MFipjk+xaxv+wbsX+ta34d7FY5h4V8X9esIwZs/gkqrJqPSwcHVjWHqR9skSl7/B0y JLz6pds1ysPn4HoyLz3PvPg2TpXraXn5xOlpYEjE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726852AbfKUSP0 (ORCPT ); Thu, 21 Nov 2019 13:15:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:53794 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSPZ (ORCPT ); Thu, 21 Nov 2019 13:15:25 -0500 Received: from localhost (unknown [5.29.147.182]) (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 E59DC206CB; Thu, 21 Nov 2019 18:15:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360124; bh=q0/YF26BON0iMMz4vVwdz2zwBXq9pn+iJkbp2AqNCaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=py65LmGfPZo6ZelkRFO694aTXYhTHRrplrA5eZ5gJ2yP2zu2k7DEQ06uOyF/q4rK+ aGtQa2E7nEZPKQutf0qgFwTf9efgsAnDdP3C1/niIYIUdsPF0Hbp24RoOg8rSquMPX wfGVr9uAp2VXZw8abxYu8vEYw5S7MKweCz7Uyrjk= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 37/48] RDMA/cm: Convert REP target ack delay field Date: Thu, 21 Nov 2019 20:13:02 +0200 Message-Id: <20191121181313.129430-38-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256767 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 70C59930 for ; Thu, 21 Nov 2019 18:15:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 52639206CC for ; Thu, 21 Nov 2019 18:15:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360129; bh=PtbjPcOwG9K2QireNN2IoOKfh/9B32K6y+mvcdupIwg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=zZ9Nqm8QFHQnbqlrinryKnxq97o5vjpnL9Wu6yd6R7V9JsbdroeVvq3YVqYj2uTTH ran1z1e1d+BzbzUi3ECfhTtKP0L6WosI4scEzZuxNosZ2JB62aZ4t6BCFxoj6Gxns/ yVcO0g40c5b1EUGZfTshOoKfXuRtCOO11HdU/H4A= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727031AbfKUSP2 (ORCPT ); Thu, 21 Nov 2019 13:15:28 -0500 Received: from mail.kernel.org ([198.145.29.99]:53832 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSP2 (ORCPT ); Thu, 21 Nov 2019 13:15:28 -0500 Received: from localhost (unknown [5.29.147.182]) (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 8319B2068E; Thu, 21 Nov 2019 18:15:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360128; bh=PtbjPcOwG9K2QireNN2IoOKfh/9B32K6y+mvcdupIwg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iTAWP1eYysYv1wCpcV6qZL4HECtfRG2DIdt/6+gud6aX0APYRYzyB4SJyL1BF/WGg jf6frRWK52WV71WFwv+ZNw9/r6XJ0HkDxgJOakwCtLbsLG6qwVJgfn37U/LxWJ5xUT NCZTpXXDZhRgOX0v/DuYMJzehvWsaPBm3lRHDLII= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 38/48] RDMA/cm: Convert REP failover accepted field Date: Thu, 21 Nov 2019 20:13:03 +0200 Message-Id: <20191121181313.129430-39-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256787 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 CF318930 for ; Thu, 21 Nov 2019 18:15:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AEFBB206D7 for ; Thu, 21 Nov 2019 18:15:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360157; bh=DJ8/kJXIvWG+Zf8Z/2F02cp8ZNsgRgljaw3PwouWbGI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=wHfBTZ9S6sllwUcfFY2bI4nmTs58hW8+NNO+35nYizaZU5niR8Daljdpd4+hOWa5g Yr//vXzjPRUfB8gvjUD7qO6WX5PEB4IvYbxebAyMMYScN03KlXecBKQXfW45fA8aWI KtufLts8e1D3lIPG4zYFaAw3E/SEyCQrN+s0TWJY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727176AbfKUSP5 (ORCPT ); Thu, 21 Nov 2019 13:15:57 -0500 Received: from mail.kernel.org ([198.145.29.99]:54472 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727187AbfKUSP5 (ORCPT ); Thu, 21 Nov 2019 13:15:57 -0500 Received: from localhost (unknown [5.29.147.182]) (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 96C5B206CC; Thu, 21 Nov 2019 18:15:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360156; bh=DJ8/kJXIvWG+Zf8Z/2F02cp8ZNsgRgljaw3PwouWbGI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VPQTDwC4G7IFN6YBteZY1tR38mJ9i3o/Jsqj1rhi86YssNPh0lt3GxN/fwh8MMn/m tWgqONRl0iYH6ztgTN8SkUMfgoP4TLPDZk7eukU8d1+DftCS9oGLTY53oGdCirfLrB rIEIKwnCjpoHWkim662xIYFDjrxallMclh9wLlWg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 39/48] RDMA/cm: Convert REP flow control field Date: Thu, 21 Nov 2019 20:13:04 +0200 Message-Id: <20191121181313.129430-40-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256769 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 66C0B930 for ; Thu, 21 Nov 2019 18:15:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 45E6E206CB for ; Thu, 21 Nov 2019 18:15:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360137; bh=JXQIJ2oCpQsbwB0JVKwGvo3FKo2KbuW+hghl+Yumujw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=l5kumUq9fCnIVZ+VunsfTQbjP54hoHOXtaeLf50PxIq5ZOFCW1GhUNWREiWuD7RP7 CMmUUcGyn21rWE3fXebo7udjfk5NwYHgXLmdnvxrJY/vnJo1knpBixZaBFvd1alhpa GMtdrQ4FmuHv3Afd8+FfSYEMySz8Gpt2XhVtlFyM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727102AbfKUSPg (ORCPT ); Thu, 21 Nov 2019 13:15:36 -0500 Received: from mail.kernel.org ([198.145.29.99]:53982 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727135AbfKUSPf (ORCPT ); Thu, 21 Nov 2019 13:15:35 -0500 Received: from localhost (unknown [5.29.147.182]) (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 88BC02068E; Thu, 21 Nov 2019 18:15:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360135; bh=JXQIJ2oCpQsbwB0JVKwGvo3FKo2KbuW+hghl+Yumujw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pKgJzFcLu0P0H/dAwtTP4tj5mDPuhqfisC14Mzb8bm53UndUxgNlqbf7/IPaVlAv9 Xj7/AQsB+hFPo4AStExOUH3NocAW+nBpCaDcM7fLaLjrT0dkNT/28Bbe3BaqybXOPa ck2kA3fUoNJmT1gTQ6x980lTAmH27Zz5Mx9e0/pk= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 40/48] RDMA/cm: Convert REP RNR retry count field Date: Thu, 21 Nov 2019 20:13:05 +0200 Message-Id: <20191121181313.129430-41-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256771 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 B8D38913 for ; Thu, 21 Nov 2019 18:15:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 98B8D2068E for ; Thu, 21 Nov 2019 18:15:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360140; bh=dOmbbPy5eqEY8uq+xCGP7R8L5pYgsNAXl3fTRVuICks=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=UuuNIArz7Q8sjW5tc6lMa/ycyhma1V8NhiBwaSfvOilXf/ykAMOcSw4VNU88Q6c0E +EuOv6OaxMxL5xiedj2XuKYRHhgPs5wMTDTr1J/r+mzumA4419KJzC3/FZOuibTkxo M/G4lf+3NPX3rRFyg4FEJdUkjNACsgQ2Gd3b78b8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727149AbfKUSPj (ORCPT ); Thu, 21 Nov 2019 13:15:39 -0500 Received: from mail.kernel.org ([198.145.29.99]:54074 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727135AbfKUSPj (ORCPT ); Thu, 21 Nov 2019 13:15:39 -0500 Received: from localhost (unknown [5.29.147.182]) (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 1898D206CC; Thu, 21 Nov 2019 18:15:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360138; bh=dOmbbPy5eqEY8uq+xCGP7R8L5pYgsNAXl3fTRVuICks=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V2cRxOLpVTD+Xnj6W5ohyMXel6XSNnZbebRaNsznKrBA/5gutYp9Oqs63iay8lmP2 qEDu3SLEQgGLK+uTgjevFDlRuFW/xEN/42XO519i+18Lfdl8cn1svwuGurHwpvJ0jm k3a+izpaBm8i9/USbzK3mt4F6hgkTfWwYuAb6xsY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 41/48] RDMA/cm: Convert REP SRQ field Date: Thu, 21 Nov 2019 20:13:06 +0200 Message-Id: <20191121181313.129430-42-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256777 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 8F061913 for ; Thu, 21 Nov 2019 18:15:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 66C07206D7 for ; Thu, 21 Nov 2019 18:15:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360145; bh=kpUtYlyXbae/tYC/vtSVpwcwQxae6s+JVvmaEGxLkZ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=zPorssb4dddjuedzVBHjNI6txNn0jgdMLdwrJfGbeLw3r8ZtlhH3qaAL0ZaS8pyOX oohCP72PDYBR6bQOOAIcDfUuFeJN1bt+lg4qhk6aFo49H1jEmiQnWPhZvzC8wnLbI4 khrIFgS+2iGIyyAmNeHYhae5UyhhKrBLOb/D62Vo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727179AbfKUSPo (ORCPT ); Thu, 21 Nov 2019 13:15:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:54132 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727165AbfKUSPm (ORCPT ); Thu, 21 Nov 2019 13:15:42 -0500 Received: from localhost (unknown [5.29.147.182]) (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 652442068E; Thu, 21 Nov 2019 18:15:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360142; bh=kpUtYlyXbae/tYC/vtSVpwcwQxae6s+JVvmaEGxLkZ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z7TfswO+G7T/mGan8a8GvgopPAomn7NddB73Fh7uJgUwj9ffoVJeQmUVG1EMoUmh2 VJtJNXRlmDYuxKvg9iZsPc5bT+8yJaBvwaMy8mNyRD29uUEAZUVVA2xxSBBGDnL5Iq 9hvKhRvgK8eiXsPbtCqANyM9tQQJLYr3AXPcJbqM= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 42/48] RDMA/cm: Delete unused CM LAP functions Date: Thu, 21 Nov 2019 20:13:07 +0200 Message-Id: <20191121181313.129430-43-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256779 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 569F5913 for ; Thu, 21 Nov 2019 18:15:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2AD87206CB for ; Thu, 21 Nov 2019 18:15:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360147; bh=9u07fJhZugFMZeiz08pe2ceIS6U6CBwfyhWEJ9dGdUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=1CM4llMBCuhD6bSoN4M1Y9frIJrcQ3izgiYYljU+INTJML1/oGaLtuK8sA9IOo84J RjA186MaUAZhxL9xpROo1SUA4aU4vEB35OBPL69QgK+5nSIngbipYr7BYllp7Y3Zjb qq646z5nU0I6AxnMcyxIAK4bNY2Q1i/9hv0Ki4W0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727182AbfKUSPq (ORCPT ); Thu, 21 Nov 2019 13:15:46 -0500 Received: from mail.kernel.org ([198.145.29.99]:54230 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727165AbfKUSPq (ORCPT ); Thu, 21 Nov 2019 13:15:46 -0500 Received: from localhost (unknown [5.29.147.182]) (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 06D47206CC; Thu, 21 Nov 2019 18:15:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360145; bh=9u07fJhZugFMZeiz08pe2ceIS6U6CBwfyhWEJ9dGdUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WSKOsSxEfQBn9SEyFg6yLAPbf4TUAciFfXF0fDm5l57tmBRoCNkebvl9BNAq8uBlL Z5Q71L8nZUvIgLUjYfppqwkdlEY5axKUAg0BAdCF2KL06iWalgsU8kuPLuWkloPNN2 CUQIsjowaTKv2IHWbjm0ZBmXtHui7qG4nVm6qT78= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 43/48] RDMA/cm: Convert LAP flow label field Date: Thu, 21 Nov 2019 20:13:08 +0200 Message-Id: <20191121181313.129430-44-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256781 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 D046C930 for ; Thu, 21 Nov 2019 18:15:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B0677206D7 for ; Thu, 21 Nov 2019 18:15:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360150; bh=HVZGhKZCZ6RNhf/urErb6wmJwAtCOX3ao6Mgr17xwVc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=hFXGBqZJGtYK7xwlhnZDgO9ViSMnFt199hbRxoBtC1BNeZMWQJsKkF3fL0oNOz1zj Nex4mkart1d3LFVKtjkbCFwHnd6yUtW822Mz8GtTVw4SyOQD5HdyJn3tpW2LO4JH8c 8iEcPZOAphroaNA0EedfaOeQFILpJFQygcqn6Lpc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727184AbfKUSPu (ORCPT ); Thu, 21 Nov 2019 13:15:50 -0500 Received: from mail.kernel.org ([198.145.29.99]:54316 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727165AbfKUSPt (ORCPT ); Thu, 21 Nov 2019 13:15:49 -0500 Received: from localhost (unknown [5.29.147.182]) (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 9073E2068E; Thu, 21 Nov 2019 18:15:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360149; bh=HVZGhKZCZ6RNhf/urErb6wmJwAtCOX3ao6Mgr17xwVc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FudL1eNXGFUCJIvIL++Soi5mX+1gP3yd22j++fbgxLM5xo2KWSz7tsECRorOxLcaa TiRUQr9ps8YATKhakgseeAAP6drgozeYvqZhyd5O0Ofrc4mKWFM+5bLdfDnISfX605 5qbGzrF1ttned2emuyh8yWBBq4BSWLDKfPzJPH3E= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 44/48] RDMA/cm: Convert LAP fields Date: Thu, 21 Nov 2019 20:13:09 +0200 Message-Id: <20191121181313.129430-45-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256785 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 EC1D7913 for ; Thu, 21 Nov 2019 18:15:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CC5C5206CB for ; Thu, 21 Nov 2019 18:15:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360154; bh=yc1DwBpFalJ1L0F08H1FGhIh6TYw+bXEDBqhVhhRwdQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=xE9v8MRVgdiWFsGnJOeg3AVmJCPVpvA10G+aLT7iML29gqV3SjC8OdfW59utzCLfA ZfRTip2Eld3jEdHEIlOewJiiQgPC6XtNixX+bcv+TBFbJbJ6DsNcpWTcjAsIxSKniB jkqjfwQCATF/n4jeFgVKFdpewZNlI2Q/uah7PSA0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727165AbfKUSPy (ORCPT ); Thu, 21 Nov 2019 13:15:54 -0500 Received: from mail.kernel.org ([198.145.29.99]:54374 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSPx (ORCPT ); Thu, 21 Nov 2019 13:15:53 -0500 Received: from localhost (unknown [5.29.147.182]) (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 1D24A2068E; Thu, 21 Nov 2019 18:15:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360152; bh=yc1DwBpFalJ1L0F08H1FGhIh6TYw+bXEDBqhVhhRwdQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pCnThXodrM3VuZfH3zGyR6K+ljemxv18mZf5OgwhVH9MSeIMAZFX87wI33y3Ym8li 9p8C3xM6baIkqpKqPOAU4eoj3Leo0ifnmGVzuSFUAWdJnBvOrHiINQRIntaRa6NmY+ 8uDPFXO3e7XX1edvr/xp9i9vyxujma8oHfPYgHmE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 45/48] RDMA/cm: Delete unused CM ARP functions Date: Thu, 21 Nov 2019 20:13:10 +0200 Message-Id: <20191121181313.129430-46-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256797 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 F2B68913 for ; Thu, 21 Nov 2019 18:16:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D2B4B206CB for ; Thu, 21 Nov 2019 18:16:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360168; bh=rid3HTm6rY2jcUrHuYnN3h0yk8IqJIRA4Mkvmfum/W0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=J03beG40mIe5MtJCM04pICkV9qfjNdUSTi05IIuIm6jTQ7P3sr2uckvhYiHJx8s6B 2tsH5O26ZZYUA68NLrlRoOWpI2H2K3US0PMlp+MAv+btivcL8xsBek+eXj7kI9rXJQ RhRrzV55YdZ1kKKxy/yIy4yPllOlQTAKH/sQCXXg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727194AbfKUSQI (ORCPT ); Thu, 21 Nov 2019 13:16:08 -0500 Received: from mail.kernel.org ([198.145.29.99]:54736 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726279AbfKUSQI (ORCPT ); Thu, 21 Nov 2019 13:16:08 -0500 Received: from localhost (unknown [5.29.147.182]) (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 3CEA62068E; Thu, 21 Nov 2019 18:16:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360166; bh=rid3HTm6rY2jcUrHuYnN3h0yk8IqJIRA4Mkvmfum/W0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ll0HF5Vcu6TZnNUxa7B9ypLml5iS7IgS36TXDoZtY62O4doaonp9KQXlDlnS6d1N6 WMqAMsr4oqm04KNsOPzxFukNu9Fam8Hft7af2srS1vmF1/cZYtkuLXV8SCV3M5duqs PNIbQrNqnFj+o1bdbQ/s47vPjbMS2Li4P5FRlZFY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 46/48] RDMA/cm: Convert SIDR_REP to new scheme Date: Thu, 21 Nov 2019 20:13:11 +0200 Message-Id: <20191121181313.129430-47-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 Nov 21 18:13: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: 11256791 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 5C781913 for ; Thu, 21 Nov 2019 18:16:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3DFB3206CC for ; Thu, 21 Nov 2019 18:16:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360161; bh=7hNskEVNwc6LhuevTICnnP/BERfwGilqWLZ2zaR4xmo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=pW+80iSQTwHCCw16USCvQPZNLA3WxjJ44tMvpDMR4ZMx5J0m/tXoLEDU2w0O7oj0s QOVKkArGjz4KRfxa0Dl8u+hbXK3WP2NoFY3cPCNBDvaJYMyiHUaQko/5nv3H+JLWse 6LVxilmq8Bx0jyO9bOkqtDCTSdWRRcWk5En/ntc0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727188AbfKUSQA (ORCPT ); Thu, 21 Nov 2019 13:16:00 -0500 Received: from mail.kernel.org ([198.145.29.99]:54558 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727187AbfKUSQA (ORCPT ); Thu, 21 Nov 2019 13:16:00 -0500 Received: from localhost (unknown [5.29.147.182]) (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 3E4242068E; Thu, 21 Nov 2019 18:15:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360159; bh=7hNskEVNwc6LhuevTICnnP/BERfwGilqWLZ2zaR4xmo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uSAxCB7RFQBCq9Pid1SeoeDPaBx4X0XCFKG3MSJbFdIp3PDlnUGn4vjXBQin1Wz1L Awqx8NiD5QBeVGvfQe+DBbUfpXPjD/LmYWQTbo1Y1/OsgvTmCrqGvXA0wWhH0VbvhT oZSWFynVRIyxNUHNXeZUBh5z5NqTXWJYOCQJ5jlA= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 47/48] RDMA/cm: Add Enhanced Connection Establishment (ECE) bits Date: Thu, 21 Nov 2019 20:13:12 +0200 Message-Id: <20191121181313.129430-48-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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 9fd19ccb993f..a3056903a3c4 100644 --- a/include/rdma/ibta_vol1_c12.h +++ b/include/rdma/ibta_vol1_c12.h @@ -109,8 +109,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) @@ -191,7 +194,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 Nov 21 18:13: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: 11256793 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 7922E930 for ; Thu, 21 Nov 2019 18:16:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5A179206D7 for ; Thu, 21 Nov 2019 18:16:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360165; bh=wG5L5HwOMqAAZB33ZsvjvACS6eOQQVhwkmSzp6LIuJA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=jzlg+02tsFHcyLnc4n/sB05ZqOtZZicnEpb9CjiC+MBP++9ebSBoc6l3TFzlsvcbz RMMEypS2ZcXHZQuiWlhm0wbqSbNDLGvfzHIoFXok/UW4OmFTwuwFC9kpa3eKf8NcgU RywS5DfPqr/JbDlIUzlxYADxfFYVw2y0aX+Eztns= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727191AbfKUSQE (ORCPT ); Thu, 21 Nov 2019 13:16:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:54650 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727187AbfKUSQE (ORCPT ); Thu, 21 Nov 2019 13:16:04 -0500 Received: from localhost (unknown [5.29.147.182]) (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 AB0572068E; Thu, 21 Nov 2019 18:16:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574360163; bh=wG5L5HwOMqAAZB33ZsvjvACS6eOQQVhwkmSzp6LIuJA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HbvoUSlHmytgNLYS/gGsj0uVxYfWvNbC1SjlYkAiyzwvylUga8Xm3Vp0YocVbobiG mAKiH46NPzohcWm67awXyKoHl77ZR4b0cJ0BJk2Dm2O4Egh97tS+VXXKkoG39w3jUN dUN4klIEZcAyl3eWsoJU+NVwz3GmV8me38YGipLk= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-next v1 48/48] RDMA/cm: Convert private_date access Date: Thu, 21 Nov 2019 20:13:13 +0200 Message-Id: <20191121181313.129430-49-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191121181313.129430-1-leon@kernel.org> References: <20191121181313.129430-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,