From patchwork Sun Oct 27 07:05: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: 11213963 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C65A1112B for ; Sun, 27 Oct 2019 07:06:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 993A521850 for ; Sun, 27 Oct 2019 07:06:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572159992; bh=ZkQdcjHISlEsZvIGOb80bDzrj0KNBpAgi9QOisOom54=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=GqCKsNGyBcPsEoZUf86SjTtFX+2sKM33elTh4y1HmIlqqw1vHVTB5Gw3teAv04XPQ XhfDVbnXVffIfaf2XdW7OkKr5NqKohi3TOqyNEBzUb+s7+xcDASmvjGe5+5xcgI190 dvIg2CAuevKlh5hNtmgtT9MTYlZ0zwmNquKdVfII= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726024AbfJ0HGc (ORCPT ); Sun, 27 Oct 2019 03:06:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:34664 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HGb (ORCPT ); Sun, 27 Oct 2019 03:06:31 -0400 Received: from localhost (unknown [77.137.89.37]) (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 CAA6520873; Sun, 27 Oct 2019 07:06:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572159990; bh=ZkQdcjHISlEsZvIGOb80bDzrj0KNBpAgi9QOisOom54=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bZTJC7IO15MRFPAiFLzE+6awK1JWFIC5SBTKrO435qz9PxPWiNSk4Bd3SRWuofLKC EODq50EXiLDHdBuv3jXHqJl5gmf9WQJ8Wnq1xIMzF0ZKWE25hUkQwoj33021hl30+i OsUSJTme4NqD6+xzXcGAY9lEd/InJqhYzC9GJzFg= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 01/43] RDMA/cm: Add naive SET/GET implementations to hide CM wire format Date: Sun, 27 Oct 2019 09:05:39 +0200 Message-Id: <20191027070621.11711-2-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 every converted variable will have two fields which describes the byte offset and mask for the access, e.g. #define CM_REP_LOCAL_QPN_OFFSET 12 #define CM_REP_LOCAL_QPN_MASK GENMASK(23, 0) Such format will allow us to use same GET/SET macros for all be16/be32 variables and bitfields too. Separate wire protocol from kernel logic by special GET/SET macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm_msgs.h | 71 +++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 92d7260ac913..99e35a4610f1 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -8,6 +8,7 @@ #ifndef CM_MSGS_H #define CM_MSGS_H +#include #include #include @@ -17,6 +18,76 @@ */ #define IB_CM_CLASS_VERSION 2 /* IB specification 1.2 */ +#define _CM_SET(p, offset, mask, value) \ + ({ \ + void *field = (u8 *)p + sizeof(struct ib_mad_hdr) + offset; \ + u8 bytes = \ + DIV_ROUND_UP(__builtin_popcount(mask), BITS_PER_BYTE); \ + switch (bytes) { \ + case 1: { \ + *(u8 *)field &= ~mask; \ + *(u8 *)field |= FIELD_PREP(mask, value); \ + } break; \ + case 2: { \ + u16 val = ntohs(*(__be16 *)field) & ~mask; \ + val |= FIELD_PREP(mask, value); \ + *(__be16 *)field = htons(val); \ + } break; \ + case 3: { \ + u32 val = ntohl(*(__be32 *)field) & ~(mask << 8); \ + val |= FIELD_PREP(mask, value) << 8; \ + *(__be32 *)field = htonl(val); \ + } break; \ + default: { \ + u32 val = ntohl(*(__be32 *)field) & ~mask; \ + val |= FIELD_PREP(mask, value); \ + *(__be32 *)field = htonl(val); \ + } break; \ + } \ + }) +#define CM_SET(field, p, value) \ + _CM_SET(p, CM_##field##_OFFSET, CM_##field##_MASK, value) +#define CM_SET64(field, p, value) \ + ({ \ + _CM_SET(p, CM_##field##_OFFSET, \ + lower_32_bits(CM_##field##_MASK), \ + lower_32_bits(value)); \ + _CM_SET(p, CM_##field##_OFFSET + sizeof(__be32), \ + upper_32_bits(CM_##field##_MASK), \ + upper_32_bits(value)); \ + }) + +#define _CM_GET(p, offset, mask) \ + ({ \ + void *field = (u8 *)p + sizeof(struct ib_mad_hdr) + offset; \ + u8 bytes = \ + DIV_ROUND_UP(__builtin_popcount(mask), BITS_PER_BYTE); \ + u32 ret; \ + switch (bytes) { \ + case 1: \ + ret = FIELD_GET(mask, *(u8 *)field); \ + break; \ + case 2: \ + ret = FIELD_GET(mask, ntohs(*(__be16 *)field)); \ + break; \ + case 3: \ + ret = FIELD_GET(mask, ntohl(*(__be32 *)field) >> 8); \ + break; \ + default: \ + ret = FIELD_GET(mask, ntohl(*(__be32 *)field)); \ + } \ + ret; \ + }) + +#define CM_GET(field, p) _CM_GET(p, CM_##field##_OFFSET, CM_##field##_MASK) +#define CM_GET64(field, p) \ + ({ \ + u64 a = _CM_GET(p, CM_##field##_OFFSET, \ + lower_32_bits(CM_##field##_MASK)); \ + u64 b = _CM_GET(p, CM_##field##_OFFSET + sizeof(__be32), \ + upper_32_bits(CM_##field##_MASK)); \ + a | (b << 32); \ + }) struct cm_req_msg { struct ib_mad_hdr hdr; From patchwork Sun Oct 27 07:05: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: 11213965 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 31E91112B for ; Sun, 27 Oct 2019 07:06:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 056D221850 for ; Sun, 27 Oct 2019 07:06:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572159996; bh=R/UPUule6CmZ4QfBhIm69oqoQ/nVXLLU69NsX1Oo3DU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=oTlEDJ07P28EHUQYaFWOGZl/y3Q23WC/ES+tcnAI+wMmhxpracgmTZDNTZJ9BoOHh fsFcrdEmQzOibLo+Aa3a8vraSBo6tSuo8ZlLLGOJVfXut6BEIHHD9yo9C5QwpLMAbN IipkdS0QM4xL+79znlkwgJExNtY1gysQSgItJp8g= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725977AbfJ0HGf (ORCPT ); Sun, 27 Oct 2019 03:06:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:34694 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HGf (ORCPT ); Sun, 27 Oct 2019 03:06:35 -0400 Received: from localhost (unknown [77.137.89.37]) (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 67FB020873; Sun, 27 Oct 2019 07:06:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572159994; bh=R/UPUule6CmZ4QfBhIm69oqoQ/nVXLLU69NsX1Oo3DU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p8wsv/+WLxzfRDst2ARNCHzCVd/9zvQ+GzdZDtLOvPLwzzRn+WTDAb4kVEa/EEKAQ e2KHan04wJk3Br6MOjdMfDLIcV6oXv9W2/ecoXtNv2fyI73KY/h8MBya2SH/Eg91Eo SUWzaA3y9um0TFx42V8E1VbwfuVUfhRZBRDR1OG4= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 02/43] RDMA/cm: Request For Communication (REQ) message definitions Date: Sun, 27 Oct 2019 09:05:40 +0200 Message-Id: <20191027070621.11711-3-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 CM_GET()/CM_SET(). 2. GIDs with offset only, they will be accessible by CM_GET_GID()/CM_SET_GID(). 3. Private data with offset and length in bytes. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 4 +- drivers/infiniband/core/cm_msgs.h | 99 ++++++++++++++++++++++++++++++- drivers/infiniband/core/cma.c | 3 +- include/rdma/ib_cm.h | 1 - 4 files changed, 102 insertions(+), 5 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index ecd868954958..7163a5782bea 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 99e35a4610f1..a9112af2b325 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -89,6 +89,103 @@ a | (b << 32); \ }) +#define CM_REQ_LOCAL_COMM_ID_OFFSET 0 +#define CM_REQ_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_REQ_SERVICE_ID_OFFSET 8 +#define CM_REQ_SERVICE_ID_MASK GENMASK_ULL(63, 0) +#define CM_REQ_LOCAL_CA_GUID_OFFSET 16 +#define CM_REQ_LOCAL_CA_GUID_MASK GENMASK_ULL(63, 0) +#define CM_REQ_LOCAL_Q_KEY_OFFSET 28 +#define CM_REQ_LOCAL_Q_KEY_MASK GENMASK(31, 0) +#define CM_REQ_LOCAL_QPN_OFFSET 32 +#define CM_REQ_LOCAL_QPN_MASK GENMASK(23, 0) +#define CM_REQ_RESPONDED_RESOURCES_OFFSET 35 +#define CM_REQ_RESPONDED_RESOURCES_MASK GENMASK(7, 0) +#define CM_REQ_LOCAL_EECN_OFFSET 36 +#define CM_REQ_LOCAL_EECN_MASK GENMASK(24, 0) +#define CM_REQ_INITIATOR_DEPTH_OFFSET 39 +#define CM_REQ_INITIATOR_DEPTH_MASK GENMASK(7, 0) +#define CM_REQ_REMOTE_EECN_OFFSET 40 +#define CM_REQ_REMOTE_EECN_MASK GENMASK(23, 0) +#define CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT_OFFSET 43 +#define CM_REQ_REMOTE_CM_RESPONSE_TIMEOUT_MASK GENMASK(4, 0) +#define CM_REQ_TRANSPORT_SERVICE_TYPE_OFFSET 43 +#define CM_REQ_TRANSPORT_SERVICE_TYPE_MASK GENMASK(6, 5) +#define CM_REQ_END_TO_END_FLOW_CONTROL_OFFSET 43 +#define CM_REQ_END_TO_END_FLOW_CONTROL_MASK GENMASK(7, 7) +#define CM_REQ_STARTING_PSN_OFFSET 44 +#define CM_REQ_STARTING_PSN_MASK GENMASK(23, 0) +#define CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT_OFFSET 47 +#define CM_REQ_LOCAL_CM_RESPONSE_TIMEOUT_MASK GENMASK(4, 0) +#define CM_REQ_RETRY_COUNT_OFFSET 47 +#define CM_REQ_RETRY_COUNT_MASK GENMASK(7, 5) +#define CM_REQ_PARTITION_KEY_OFFSET 48 +#define CM_REQ_PARTITION_KEY_MASK GENMASK(15, 0) +#define CM_REQ_PATH_PACKET_PAYLOAD_MTU_OFFSET 50 +#define CM_REQ_PATH_PACKET_PAYLOAD_MTU_MASK GENMASK(3, 0) +#define CM_REQ_RDC_EXISTS_OFFSET 50 +#define CM_REQ_RDC_EXISTS_MASK GENMASK(4, 4) +#define CM_REQ_RNR_RETRY_COUNT_OFFSET 50 +#define CM_REQ_RNR_RETRY_COUNT_MASK GENMASK(7, 5) +#define CM_REQ_MAX_CM_RETRIES_OFFSET 51 +#define CM_REQ_MAX_CM_RETRIES_MASK GENMASK(3, 0) +#define CM_REQ_SRQ_OFFSET 51 +#define CM_REQ_SRQ_MASK GENMASK(4, 4) +#define CM_REQ_EXTENDED_TRANSPORT_TYPE_OFFSET 51 +#define CM_REQ_EXTENDED_TRANSPORT_TYPE_MASK GENMASK(7, 5) + +#define CM_REQ_PRIMARY_LOCAL_PORT_LID_OFFSET 52 +#define CM_REQ_PRIMARY_LOCAL_PORT_LID_MASK GENMASK(15, 0) +#define CM_REQ_PRIMARY_REMOTE_PORT_LID_OFFSET 54 +#define CM_REQ_PRIMARY_REMOTE_PORT_LID_MASK GENMASK(15, 0) + +#define CM_REQ_PRIMARY_LOCAL_PORT_GID_OFFSET 56 +#define CM_REQ_PRIMARY_REMOTE_PORT_GID_OFFSET 72 + +#define CM_REQ_PRIMARY_FLOW_LABEL_OFFSET 88 +#define CM_REQ_PRIMARY_FLOW_LABEL_MASK GENMASK(19, 0) +#define CM_REQ_PRIMARY_PACKET_RATE_OFFSET 91 +#define CM_REQ_PRIMARY_PACKET_RATE_MASK GENMASK(3, 2) +#define CM_REQ_PRIMARY_TRAFFIC_CLASS_OFFSET 92 +#define CM_REQ_PRIMARY_TRAFFIC_CLASS_MASK GENMASK(7, 0) +#define CM_REQ_PRIMARY_HOP_LIMIT_OFFSET 93 +#define CM_REQ_PRIMARY_HOP_LIMIT_MASK GENMASK(7, 0) +#define CM_REQ_PRIMARY_SL_OFFSET 94 +#define CM_REQ_PRIMARY_SL_MASK GENMASK(3, 0) +#define CM_REQ_PRIMARY_SUBNET_LOCAL_OFFSET 94 +#define CM_REQ_PRIMARY_SUBNET_LOCAL_MASK GENMASK(4, 4) +#define CM_REQ_PRIMARY_LOCAL_ACK_TIMEOUT_OFFSET 95 +#define CM_REQ_PRIMARY_LOCAL_ACK_TIMEOUT_MASK GENMASK(4, 0) + +#define CM_REQ_ALTERNATE_LOCAL_PORT_LID_OFFSET 96 +#define CM_REQ_ALTERNATE_LOCAL_PORT_LID_MASK GENMASK(15, 0) +#define CM_REQ_ALTERNATE_REMOTE_PORT_LID_OFFSET 98 +#define CM_REQ_ALTERNATE_REMOTE_PORT_LID_MASK GENMASK(15, 0) + +#define CM_REQ_ALTERNATE_LOCAL_PORT_GID_OFFSET 100 +#define CM_REQ_ALTERNATE_REMOTE_PORT_GID_OFFSET 116 + +#define CM_REQ_ALTERNATE_FLOW_LABEL_OFFSET 132 +#define CM_REQ_ALTERNATE_FLOW_LABEL_MASK GENMASK(19, 0) +#define CM_REQ_ALTERNATE_PACKET_RATE_OFFSET 135 +#define CM_REQ_ALTERNATE_PACKET_RATE_MASK GENMASK(7, 2) +#define CM_REQ_ALTERNATE_TRAFFIC_CLASS_OFFSET 136 +#define CM_REQ_ALTERNATE_TRAFFIC_CLASS_MASK GENMASK(7, 0) +#define CM_REQ_ALTERNATE_HOP_LIMIT_OFFSET 137 +#define CM_REQ_ALTERNATE_HOP_LIMIT_MASK GENMASK(7, 0) +#define CM_REQ_ALTERNATE_SL_OFFSET 138 +#define CM_REQ_ALTERNATE_SL_MASK GENMASK(3, 0) +#define CM_REQ_ALTERNATE_SUBNET_LOCAL_OFFSET 138 +#define CM_REQ_ALTERNATE_SUBNET_LOCAL_MASK GENMASK(4, 4) +#define CM_REQ_ALTERNATE_LOCAL_ACK_TIMEOUT_OFFSET 139 +#define CM_REQ_ALTERNATE_LOCAL_ACK_TIMEOUT_MASK GENMASK(4, 0) + +#define CM_REQ_SAP_SUPPORTED_OFFSET 139 +#define CM_REQ_SAP_SUPPORTED_MASK GENMASK(5, 5) + +#define CM_REQ_PRIVATE_DATA_OFFSET 140 +#define CM_REQ_PRIVATE_DATA_SIZE 92 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -141,7 +238,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 8f318928f29d..8e98faf071cf 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, From patchwork Sun Oct 27 07:05: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: 11213967 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 277F7112B for ; Sun, 27 Oct 2019 07:06:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0419C21850 for ; Sun, 27 Oct 2019 07:06:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572159999; bh=KVKJPW7zV4bL2jFLGEpFVVfsUTJQvcY5YqRcXcv72Fo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=EAZc3nZZTzlVp/yzi8GmvVS3Pf1efOMOhub3p6AAnfcZiyOa59ZvYbnL94zhlTdyT PD/xjNsGuEZaIa4Pr56MHjz+qdWfcbgAFtyoJ/y4XUp12+ICL5UeSES5evoc4BqPyJ qUUtibk2+EhMuwxOEpUnoT15NXD/PF2cCaoBImJE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726030AbfJ0HGi (ORCPT ); Sun, 27 Oct 2019 03:06:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:34718 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HGi (ORCPT ); Sun, 27 Oct 2019 03:06:38 -0400 Received: from localhost (unknown [77.137.89.37]) (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 E7DF320873; Sun, 27 Oct 2019 07:06:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572159997; bh=KVKJPW7zV4bL2jFLGEpFVVfsUTJQvcY5YqRcXcv72Fo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ChwI5LYwITZLlHjBulv4G7CaZLWNgdUMP7kviUdFrRP/ijF6qjUQkD/98Xtal3bcO ckYPUI4EwNaa5tRxy4VaFR40PhuvzkEdxqOsD/Z4j+5DRJxhK4KYWTD/7J+dsJtxnd B4cImd7/2DUwpszNCwxgp92f1+PW7uSpNp4RAhxM= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 03/43] RDMA/cm: Message Receipt Acknowledgment (MRA) message definitions Date: Sun, 27 Oct 2019 09:05:41 +0200 Message-Id: <20191027070621.11711-4-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 13 ++++++++++++- include/rdma/ib_cm.h | 1 - 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 7163a5782bea..c477629f5106 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2894,7 +2894,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); @@ -2988,7 +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.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 a9112af2b325..20784b0fa4af 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -186,6 +186,17 @@ #define CM_REQ_PRIVATE_DATA_OFFSET 140 #define CM_REQ_PRIVATE_DATA_SIZE 92 +#define CM_MRA_LOCAL_COMM_ID_OFFSET 0 +#define CM_MRA_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_MRA_REMOTE_COMM_ID_OFFSET 4 +#define CM_MRA_REMOTE_COMM_ID_MASK GENMASK(31, 0) +#define CM_MRA_MESSAGE_MRAED_OFFSET 8 +#define CM_MRA_MESSAGE_MRAED_MASK GENMASK(1, 0) +#define CM_MRA_SERVICE_TIMEOUT_OFFSET 9 +#define CM_MRA_SERVICE_TIMEOUT_MASK GENMASK(4, 0) +#define CM_MRA_PRIVATE_DATA_OFFSET 10 +#define CM_MRA_PRIVATE_DATA_SIZE 222 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -563,7 +574,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, From patchwork Sun Oct 27 07:05: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: 11213969 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A7779112C for ; Sun, 27 Oct 2019 07:06:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 84B5F21850 for ; Sun, 27 Oct 2019 07:06:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160002; bh=ERlIZaA2ZdT005hfnlVkQBiaolPnHYAbefaBZFXfbYc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=onovOH+lpT8IqXRA8AheD4yAYj5VqlgJRUjZzG9+Wmzzr79uqgbKsfYDjeqvlnqdV xi6q4goHBNZZICV6gdKiu008RqeWK1cLE9id40zmHlpZ+EOVe0fyK7sZoRvsvIo44j aTo5iRc/8FCSrsVmqluco+aRacSoSIhjEmCWORMA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726060AbfJ0HGm (ORCPT ); Sun, 27 Oct 2019 03:06:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:34738 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HGl (ORCPT ); Sun, 27 Oct 2019 03:06:41 -0400 Received: from localhost (unknown [77.137.89.37]) (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 7104C20873; Sun, 27 Oct 2019 07:06:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160001; bh=ERlIZaA2ZdT005hfnlVkQBiaolPnHYAbefaBZFXfbYc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UdT8p+PJ7ACmleasfqmBDs7/sdSSaPRttRAVYe0LOZaNqYf7jpH0eXjiAJjNVq2hM cJ2NsgqAK6k8VuDF6TmM4mkEVqq5y08ixv4L4mhygjlmKfSRx6kTpcyrk3o3KJSnYf jl0WYmnYN0uf94VCTZy+cvDpdWFPcpF0v3mmi7O8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 04/43] RDMA/cm: Reject (REJ) message definitions Date: Sun, 27 Oct 2019 09:05:42 +0200 Message-Id: <20191027070621.11711-5-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 19 +++++++++++++++++-- drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_cm.h | 2 -- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index c477629f5106..d8e28c15b9d8 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2713,8 +2713,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); @@ -2775,7 +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; + 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 20784b0fa4af..448f9ba39564 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -197,6 +197,21 @@ #define CM_MRA_PRIVATE_DATA_OFFSET 10 #define CM_MRA_PRIVATE_DATA_SIZE 222 +#define CM_REJ_LOCAL_COMM_ID_OFFSET 0 +#define CM_REJ_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_REJ_REMOTE_COMM_ID_OFFSET 4 +#define CM_REJ_REMOTE_COMM_ID__MASK GENMASK(31, 0) +#define CM_REJ_MESSAGE_REJECTED_OFFSET 8 +#define CM_REJ_MESSAGE_REJECTED_MASK GENMASK(1, 0) +#define CM_REJ_REJECTED_INFO_LENGTH_OFFSET 9 +#define CM_REJ_REJECTED_INFO_LENGTH_MASK GENMASK(6, 0) +#define CM_REJ_REASON_OFFSET 10 +#define CM_REJ_REASON_MASK GENMASK(15, 0) +#define CM_REJ_ARI_OFFSET 12 +#define CM_REJ_ARI_SIZE 72 +#define CM_REJ_PRIVATE_DATA_OFFSET 84 +#define CM_REJ_PRIVATE_DATA_SIZE 148 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -610,9 +625,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 8e98faf071cf..38909e4835d5 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, From patchwork Sun Oct 27 07:05: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: 11213971 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1136F112C for ; Sun, 27 Oct 2019 07:06:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E302021726 for ; Sun, 27 Oct 2019 07:06:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160007; bh=1CPFkJvyF/ZhPrvKl1hyujPuVKV+rS7AkUlNbANZne4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=teYp+GVfidPjk8o8oArMyzMi84L1ISqwrxAbuiIeYANzMs88hMGIdz5uaJTz+Blom VAqdDjSRzxJCAX38mZZRArppBpi4lzUKxqfS0swJblWzMp1fiuvpo7g0lY+k5hg0+F EI4ldlHq02tG+gMJo3zK86c7PGHCtvRTMZmhNqZI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726079AbfJ0HGq (ORCPT ); Sun, 27 Oct 2019 03:06:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:34766 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HGq (ORCPT ); Sun, 27 Oct 2019 03:06:46 -0400 Received: from localhost (unknown [77.137.89.37]) (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 0784A20578; Sun, 27 Oct 2019 07:06:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160004; bh=1CPFkJvyF/ZhPrvKl1hyujPuVKV+rS7AkUlNbANZne4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=giSn8BFGSaoznyQgajvJFsOoHBLNuiJxgD1xI0fmBVNHG49sGrI85GAyVW+aWj0D9 7tO8Yw7+FEuUDZYJampdANCBXerbrEFulBsbtV6yRzPgohyHTiIUErU0jV4BAgKw4R TW6Fp8w9pSMAXxJvuBwBR77Pn2/ceH3Ye366l8as= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 05/43] RDMA/cm: Reply To Request for communication (REP) definitions Date: Sun, 27 Oct 2019 09:05:43 +0200 Message-Id: <20191027070621.11711-6-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 34 ++++++++++++++++++++++++++++++- drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_cm.h | 1 - 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index d8e28c15b9d8..85836f8e5c67 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); @@ -2194,7 +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; + 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 448f9ba39564..39fcd1231378 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -212,6 +212,38 @@ #define CM_REJ_PRIVATE_DATA_OFFSET 84 #define CM_REJ_PRIVATE_DATA_SIZE 148 +#define CM_REP_LOCAL_COMM_ID_OFFSET 0 +#define CM_REP_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_REP_REMOTE_COMM_ID_OFFSET 4 +#define CM_REP_REMOTE_COMM_ID_MASK GENMASK(31, 0) +#define CM_REP_LOCAL_Q_KEY_OFFSET 8 +#define CM_REP_LOCAL_Q_KEY_MASK GENMASK(31, 0) +#define CM_REP_LOCAL_QPN_OFFSET 12 +#define CM_REP_LOCAL_QPN_MASK GENMASK(23, 0) +#define CM_REP_LOCAL_EE_CONTEXT_NUMBER_OFFSET 16 +#define CM_REP_LOCAL_EE_CONTEXT_NUMBER_MASK GENMASK(23, 0) +#define CM_REP_STARTING_PSN_OFFSET 20 +#define CM_REP_STARTING_PSN_MASK GENMASK(23, 0) +#define CM_REP_RESPONDER_RESOURCES_OFFSET 24 +#define CM_REP_RESPONDED_RESOURCES_MASK GENMASK(7, 0) +#define CM_REP_INITIATOR_DEPTH_OFFSET 25 +#define CM_REP_INITIATOR_DEPTH_MASK GENMASK(7, 0) +#define CM_REP_TARGET_ACK_DELAY_OFFSET 26 +#define CM_REP_TARGET_ACK_DELAY_MASK GENMASK(4, 0) + +#define CM_REP_FAILOVER_ACCEPTED_OFFSET 26 +#define CM_REP_FAILOVER_ACCEPTED_MASK GENMASK(6, 5) +#define CM_REP_END_TO_END_FLOW_CONTROL_OFFSET 26 +#define CM_REP_END_TO_END_FLOW_CONTROL_MASK GENMASK(7, 7) +#define CM_REP_RNR_RETRY_COUNT_OFFSET 27 +#define CM_REP_RNR_RETRY_COUNT_MASK GENMASK(2, 0) +#define CM_REP_SRQ_OFFSET 27 +#define CM_REP_SRQ_MASK GENMASK(3, 3) +#define CM_REP_LOCAL_CA_GUID_OFFSET 28 +#define CM_REP_LOCAL_CA_GUID_MASK GENMASK_ULL(63, 0) +#define CM_REP_PRIVATE_DATA_OFFSET 36 +#define CM_REP_PRIVATE_DATA_SIZE 196 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -672,7 +704,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 38909e4835d5..997f8c29e34e 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, From patchwork Sun Oct 27 07:05: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: 11213983 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AC64C112C for ; Sun, 27 Oct 2019 07:07:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8A06121726 for ; Sun, 27 Oct 2019 07:07:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160027; bh=M+HI2SDS6L+iUuIQnfHiL+UY8p79ekSXfhV+Phyqu0k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Ne4BhfEE0w9MmLefyw07XFTqWVXbmODnGmNC1DOjy1BsAFoPVTyeaLxXOOUFvQNF5 S57EEIjVpkLMOZakg5B6sTCNmDB1Q3QhcnI0zYO4Hg50j3ph8PDcE6jnOUXhgzvaii tjU8xWVFM2qd1i/WI41ICtoWlE4KvGferyEru17w= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726316AbfJ0HHH (ORCPT ); Sun, 27 Oct 2019 03:07:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:34900 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHG (ORCPT ); Sun, 27 Oct 2019 03:07:06 -0400 Received: from localhost (unknown [77.137.89.37]) (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 6C5F120578; Sun, 27 Oct 2019 07:07:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160026; bh=M+HI2SDS6L+iUuIQnfHiL+UY8p79ekSXfhV+Phyqu0k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=y28mG/RKUd6LWcgAsryAU+sA+SDji4ShacuONdMOSo/GNprV1UVldCPFlrbYN6Zc9 l3bTNstmLzzER3EhWJsz6206ONoLI8AE9fWJ+kNEidIfExieW/+K7OvMoGx9uzGky0 QgMtJ0kOoed9nTDa7Z+tM5F7yDoKbTI+KZo479vE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 06/43] RDMA/cm: Ready To Use (RTU) definitions Date: Sun, 27 Oct 2019 09:05:44 +0200 Message-Id: <20191027070621.11711-7-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 9 ++++++++- include/rdma/ib_cm.h | 1 - 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 85836f8e5c67..41cf2a0de051 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2132,7 +2132,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); @@ -2397,7 +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; + 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 39fcd1231378..6917e007c573 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -244,6 +244,13 @@ #define CM_REP_PRIVATE_DATA_OFFSET 36 #define CM_REP_PRIVATE_DATA_SIZE 196 +#define CM_RTU_LOCAL_COMM_ID_OFFSET 0 +#define CM_RTU_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_RTU_REMOTE_COMM_ID_OFFSET 4 +#define CM_RTU_REMOTE_COMM_ID_MASK GENMASK(31, 0) +#define CM_RTU_PRIVATE_DATA_OFFSET 8 +#define CM_RTU_PRIVATE_DATA_SIZE 224 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -812,7 +819,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, From patchwork Sun Oct 27 07:05: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: 11213973 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6C215112B for ; Sun, 27 Oct 2019 07:06:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 490EF20873 for ; Sun, 27 Oct 2019 07:06:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160009; bh=tsUc/LlbEEebRXKvQSXmo/LtK7Itt4f+6OfVyVlJe0E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=O42YD4uwFUoK5ak6hkzo38paJhBgjOa6koxgZuJ8KmBqNDpwPJ1FIxjIQxpwjtVIN ySG1eAxZUYkgnB6Jme+JRqeWApUQmoNFHQkzR2jcZWmEhECWSSDTAE+lLBG9FAPcnw LgJYZKxCkd2EdT8wEjUnaxP4QVPVZB55Ekic37Ko= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726106AbfJ0HGs (ORCPT ); Sun, 27 Oct 2019 03:06:48 -0400 Received: from mail.kernel.org ([198.145.29.99]:34792 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HGs (ORCPT ); Sun, 27 Oct 2019 03:06:48 -0400 Received: from localhost (unknown [77.137.89.37]) (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 91A7420578; Sun, 27 Oct 2019 07:06:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160008; bh=tsUc/LlbEEebRXKvQSXmo/LtK7Itt4f+6OfVyVlJe0E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y1lzRU36A3ltslSBgwdQE8P+Pp99M4TcXnJv3gjXkU0A58VlA2nHKCKsK5NeciOON ANSj8omd35e0QopR67RbGwxU421Hy/F8SULq4G4Cn/78N4ZP3zj5mGwCtqe9ddFvXx OKvgxLvaPbvgUfvwCymR03unrP+5sJj5Sykmp+rI= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 07/43] RDMA/cm: Request For Communication Release (DREQ) definitions Date: Sun, 27 Oct 2019 09:05:45 +0200 Message-Id: <20191027070621.11711-8-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 11 ++++++++++- include/rdma/ib_cm.h | 1 - 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 41cf2a0de051..7f3cc66372eb 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2449,7 +2449,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); @@ -2600,7 +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; + 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 6917e007c573..dded0bd59479 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -251,6 +251,15 @@ #define CM_RTU_PRIVATE_DATA_OFFSET 8 #define CM_RTU_PRIVATE_DATA_SIZE 224 +#define CM_DREQ_LOCAL_COMM_ID_OFFSET 0 +#define CM_DREQ_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_DREQ_REMOTE_COMM_ID_OFFSET 4 +#define CM_DREQ_REMOTE_COMM_ID__MASK GENMASK(31, 0) +#define CM_DREQ_REMOTE_QPN_EECN_OFFSET 8 +#define CM_DREQ_REMOTE_QPN_EECN_MASK GENMASK(23, 0) +#define CM_DREQ_PRIVATE_DATA_OFFSET 12 +#define CM_DREQ_PRIVATE_DATA_SIZE 220 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -831,7 +840,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, From patchwork Sun Oct 27 07:05: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: 11213975 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 595E0112B for ; Sun, 27 Oct 2019 07:06:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 36E6821726 for ; Sun, 27 Oct 2019 07:06:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160013; bh=lGSqvEeF5EXYNynXI8/iLdnGx2TbiG6rNc3JRwCvLlY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=BaLKhOf95H5DbqyiB8K6G0qVtS+NAJs9sY0Htb2VUeHJrkGlr1eZv5LvvpPcKeurk JLrx1Z618vRYHDe0uFYdlO5W+Zrqt4NHZqE5BOJwXB0ikPPOqYEa8h60nfTn82y2YX YFAvwG7KC3hNJBa7ea2ZDg+GOdjBxP1cUjVvF0iA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726196AbfJ0HGw (ORCPT ); Sun, 27 Oct 2019 03:06:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:34814 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HGw (ORCPT ); Sun, 27 Oct 2019 03:06:52 -0400 Received: from localhost (unknown [77.137.89.37]) (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 281B420578; Sun, 27 Oct 2019 07:06:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160011; bh=lGSqvEeF5EXYNynXI8/iLdnGx2TbiG6rNc3JRwCvLlY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Fd5kmKjI6mC+KAX6jNiy3gNReEU+4kJ7pJvGPo1mu6mt0qHcbNNGaY9DerMB/7JQM Wby2oVL0fQje5PL2clB+y174Jm1Rq3ubB5g31zxtT2gPu0l6CPZTdTFtMKvv/8i9Ki NL1eYIh1wGSjNWuxn9i79EBe6nMbvyEEkcsOeS6c= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 08/43] RDMA/cm: Reply To Request For Communication Release (DREP) definitions Date: Sun, 27 Oct 2019 09:05:46 +0200 Message-Id: <20191027070621.11711-9-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 9 ++++++++- include/rdma/ib_cm.h | 1 - 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 7f3cc66372eb..4858b6aaac7f 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2514,7 +2514,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); @@ -2675,7 +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; + 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 dded0bd59479..a7ccd27a2f19 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -260,6 +260,13 @@ #define CM_DREQ_PRIVATE_DATA_OFFSET 12 #define CM_DREQ_PRIVATE_DATA_SIZE 220 +#define CM_DREP_LOCAL_COMM_ID_OFFSET 0 +#define CM_DREP_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_DREP_REMOTE_COMM_ID_OFFSET 4 +#define CM_DREP_REMOTE_COMM_ID_MASK GENMASK(31, 0) +#define CM_DREP_PRIVATE_DATA_OFFSET 8 +#define CM_DREP_PRIVATE_DATA_SIZE 224 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -861,7 +868,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, From patchwork Sun Oct 27 07:05: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: 11213977 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 758CB112C for ; Sun, 27 Oct 2019 07:06:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5372621726 for ; Sun, 27 Oct 2019 07:06:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160017; bh=9eIOSNni1P/vlFGbNH0DO+NwcadPZu1MtaN45Gmb6OM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=PepndhdD4+/wXqV6+dTK7+zHBZ8YWX2cxOFZWmbFUg0HiCFMP7biY/W4YV3ntcqZl wBrTplgVQanQnDtRSnecqQ2wuBVswGl42U9Rh9woJmHhcUqeZSgEMA0qI+p6DH5eQg D+rNh4F850D0hwC3aZ84fuEqRIeXaMPot46mqXss= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726211AbfJ0HG4 (ORCPT ); Sun, 27 Oct 2019 03:06:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:34834 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HG4 (ORCPT ); Sun, 27 Oct 2019 03:06:56 -0400 Received: from localhost (unknown [77.137.89.37]) (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 B8E1C20578; Sun, 27 Oct 2019 07:06:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160015; bh=9eIOSNni1P/vlFGbNH0DO+NwcadPZu1MtaN45Gmb6OM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jjp4t9tueZ07lDz6FOCNZcSXF2RMP7HRyYaWqLP0n/okfG18GAZtDuMaRaiPIKRhT Zsrlk8uzXg5kj1uG9HeCS1gWaTTCzJx9tsYLb+v1M/TDDrZJdnW59lYTcxaKn9q/+P dXkFhsKkwsMJxYkFwr0LNNhDJ8IIMjVacSzLwAGA= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 09/43] RDMA/cm: Load Alternate Path (LAP) definitions Date: Sun, 27 Oct 2019 09:05:47 +0200 Message-Id: <20191027070621.11711-10-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 37 ++++++++++++++++++++++++++++++- include/rdma/ib_cm.h | 1 - 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 4858b6aaac7f..a735481d85f0 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3107,7 +3107,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); @@ -3221,7 +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; + 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 a7ccd27a2f19..76a5053933e9 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -267,6 +267,41 @@ #define CM_DREP_PRIVATE_DATA_OFFSET 8 #define CM_DREP_PRIVATE_DATA_SIZE 224 +#define CM_LAP_LOCAL_COMM_ID_OFFSET 0 +#define CM_LAP_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_LAP_REMOTE_COMM_ID_OFFSET 4 +#define CM_LAP_REMOTE_COMM_ID_MASK GENMASK(31, 0) +#define CM_LAP_REMOTE_QPN_EECN_OFFSET 12 +#define CM_LAP_REMOTE_QPN_EECN_MASK GENMASK(23, 0) +#define CM_LAP_REMOTE_CM_RESPONSE_TIMEOUT_OFFSET 15 +#define CM_LAP_REMOTE_CM_RESPONSE_TIMEOUT_MASK GENMASK(4, 0) +#define CM_LAP_ALTERNATE_LOCAL_PORT_LID_OFFSET 20 +#define CM_LAP_ALTERNATE_LOCAL_PORT_LID_MASK GENMASK(15, 0) +#define CM_LAP_ALTERNATE_REMOTE_PORT_LID_OFFSET 22 +#define CM_LAP_ALTERNATE_REMOTE_PORT_LID_MASK GENMASK(15, 0) +#define CM_LAP_ALTERNATE_LOCAL_PORT_GID_OFFSET 24 +#define CM_LAP_ALTERNATE_REMOTE_PORT_GID_OFFSET 40 +#define CM_LAP_ALTERNATE_FLOW_LABEL_OFFSET 56 +#define CM_LAP_ALTERNATE_FLOW_LABEL_MASK GENMASK(19, 0) + +#define CM_LAP_ALTERNATE_TRAFFIC_CLASS_OFFSET 59 +#define CM_LAP_ALTERNATE_TRAFFIC_CLASS_MASK GENMASK(7, 0) +#define CM_LAP_ALTERNATE_HOP_LIMIT_OFFSET 60 +#define CM_LAP_ALTERNATE_HOP_LIMIT_MASK GENMASK(7, 0) +#define CM_LAP_ALTERNATE_PACKET_RATE_OFFSET 61 +#define CM_LAP_ALTERNATE_PACKET_RATE_MASK GENMASK(7, 2) +#define CM_LAP_ALTERNATE_SL_OFFSET 62 +#define CM_LAP_ALTERNATE_SL_MASK GENMASK(3, 0) + +#define CM_LAP_ALTERNATE_SUBNET_LOCAL_OFFSET 62 +#define CM_LAP_ALTERNATE_SUBNET_LOCAL_MASK GENMASK(4, 4) + +#define CM_LAP_ALTERNATE_LOCAL_ACK_TIMEOUT_OFFSET 63 +#define CM_LAP_ALTERNATE_LOCAL_ACK_TIMEOUT_MASK GENMASK(4, 0) + +#define CM_LAP_PRIVATE_DATA_OFFSET 64 +#define CM_LAP_PRIVATE_DATA_SIZE 168 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -897,7 +932,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, From patchwork Sun Oct 27 07:05: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: 11213979 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7F99C112C for ; Sun, 27 Oct 2019 07:07:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5CE2021726 for ; Sun, 27 Oct 2019 07:07:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160020; bh=ZK/U1PxloyapGGvlixvM17Fo6r6raT6LuJZJEizhlxk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=RfkVPWnm0nBgcR0I+h4eckbxmBOd8e5pOQbXAkJrbtr0xxCnyBITjYF8EIrmdPXN5 in+pIh/J85lWURd6UQ62pMTU537m2Ei4x2U/YMnS+7K3uGm6mr9N+pK5PkNMOKKqoN ErrfHPtemNvPwMLKPvxRRtTh2hJjjjd93sBmsPhk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726217AbfJ0HG7 (ORCPT ); Sun, 27 Oct 2019 03:06:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:34856 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HG7 (ORCPT ); Sun, 27 Oct 2019 03:06:59 -0400 Received: from localhost (unknown [77.137.89.37]) (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 52B1E20578; Sun, 27 Oct 2019 07:06:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160019; bh=ZK/U1PxloyapGGvlixvM17Fo6r6raT6LuJZJEizhlxk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=yG5v/L5oESqRC+lltw8AhYstGp17qgxMTe39uZwGvvkcFHNMdGPZ/xQohCZbs4Rbb 6Ap1BpHWIGh68c0tE8RlryZFa2XMRknofq3/X9u4/QMqiKKB6aqt7gQuby9zpyDy/7 Hhz16pM9F5HO1t+1OOIdFGc0eBsKD5pjsURMrS0s= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 10/43] RDMA/cm: Alternate Path Response (APR) message definitions Date: Sun, 27 Oct 2019 09:05:48 +0200 Message-Id: <20191027070621.11711-11-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 20 ++++++++++++++++++-- include/rdma/ib_cm.h | 1 - 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index a735481d85f0..e72fc4071313 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3320,8 +3320,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); @@ -3375,7 +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; + 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 76a5053933e9..656641e6f447 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -302,6 +302,22 @@ #define CM_LAP_PRIVATE_DATA_OFFSET 64 #define CM_LAP_PRIVATE_DATA_SIZE 168 +#define CM_APR_LOCAL_COMM_ID_OFFSET 0 +#define CM_APR_LOCAL_COMM_ID_MASK GENMASK(31, 0) +#define CM_APR_REMOTE_COMM_ID_OFFSET 4 +#define CM_APR_REMOTE_COMM_ID_MASK GENMASK(31, 0) +#define CM_APR_ADDITIONAL_INFORMATION_LENGTH_OFFSET 8 +#define CM_APR_ADDITIONAL_INFORMATION_LENGTH_MASK GENMASK(7, 0) + +#define CM_APR_AR_STATUS_OFFSET 9 +#define CM_APR_AR_STATUS_MASK GENMASK(7, 0) + +#define CM_APR_ADDITIONAL_INFORMATION_OFFSET 12 +#define CM_APR_ADDITIONAL_INFORMATION_SIZE 72 + +#define CM_APR_PRIVATE_DATA_OFFSET 84 +#define CM_APR_PRIVATE_DATA_SIZE 148 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -1039,9 +1055,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, From patchwork Sun Oct 27 07:05: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: 11213981 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9B077112B for ; Sun, 27 Oct 2019 07:07:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 77F8E21726 for ; Sun, 27 Oct 2019 07:07:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160024; bh=+HQAMgNxzGnv9PIUcRnRKXdm+lU+B6QJ/avE7vnlJbA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=MvEiUVEJC1sSI5sVpHY+WDFPA/Rq0/Y/m3ha2lM4qBbjdNtCfUylbuVLe2HYmgZT9 fh9yIiKSliorFc17m50aOuWyrmfn7D4js86qnFpCgnHONQ4mAUQl1EIJK6MWkWs509 PcUhX1zqHv6M3Vx97wQ87MZebMmxPSP7SoOB8AHk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726265AbfJ0HHE (ORCPT ); Sun, 27 Oct 2019 03:07:04 -0400 Received: from mail.kernel.org ([198.145.29.99]:34880 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHD (ORCPT ); Sun, 27 Oct 2019 03:07:03 -0400 Received: from localhost (unknown [77.137.89.37]) (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 CB6EB20578; Sun, 27 Oct 2019 07:07:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160022; bh=+HQAMgNxzGnv9PIUcRnRKXdm+lU+B6QJ/avE7vnlJbA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o57V9ZH14ZHoc76whViZhTh8wjiLU+vTBRZSyRMerE7Sdp+8GGeYFNUEPjqCdDhMU 6WlqcHn5SG+wMGAZcOkN9ixG4dqg7Bab2He27Q0KXzSDAsxTaBGuCzr0ui4fHznBq0 fa9PQ+uxl8+A0N6KcEbWFXwesdRkL2rHFYcfDB58= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 11/43] RDMA/cm: Service ID Resolution Request (SIDR_REQ) definitions Date: Sun, 27 Oct 2019 09:05:49 +0200 Message-Id: <20191027070621.11711-12-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 11 ++++++++++- drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_cm.h | 2 -- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index e72fc4071313..55a14acaa333 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3465,7 +3465,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); @@ -3524,7 +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; + 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 656641e6f447..9d32b84bdcb0 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -318,6 +318,15 @@ #define CM_APR_PRIVATE_DATA_OFFSET 84 #define CM_APR_PRIVATE_DATA_SIZE 148 +#define CM_SIDR_REQ_REQUESTID_OFFSET 0 +#define CM_SIDR_REQ_REQUESTID_MASK GENMASK(31, 0) +#define CM_SIDR_REQ_PARTITION_KEY_OFFSET 4 +#define CM_SIDR_REQ_PARTITION_KEY_MASK GENMASK(15, 0) +#define CM_SIDR_REQ_SERVICEID_OFFSET 8 +#define CM_SIDR_REQ_SERVICEID_MASK GENMASK_ULL(63, 0) +#define CM_SIDR_REQ_PRIVATE_DATA_OFFSET 16 +#define CM_SIDR_REQ_PRIVATE_DATA_SIZE 216 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -1068,7 +1077,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 997f8c29e34e..d3bbca5b61e3 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, }; From patchwork Sun Oct 27 07:05: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: 11213995 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4D0B9112B for ; Sun, 27 Oct 2019 07:07:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2971920578 for ; Sun, 27 Oct 2019 07:07:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160049; bh=TzjXQ/LxJHq0eBVRdW3pycf3G2gPkomNfyaJCWfcyBw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=UAIRfPE/D6DG+huZd95R9gO625qEgWa+sWhIwqHl8YKXWCBrK1luCF9kLzKtm7s8o ts2qDJth0DN27DvP2lk1C9kyG5lpZqaWSYtxoWDXk9PuEm95bohrNcGw4/OVjc5deR I9gPPDEHObXzi+xKk0118t2PCY9RqtuaQeY0AOdE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726465AbfJ0HH2 (ORCPT ); Sun, 27 Oct 2019 03:07:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:35032 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HH2 (ORCPT ); Sun, 27 Oct 2019 03:07:28 -0400 Received: from localhost (unknown [77.137.89.37]) (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 DA7CD21726; Sun, 27 Oct 2019 07:07:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160047; bh=TzjXQ/LxJHq0eBVRdW3pycf3G2gPkomNfyaJCWfcyBw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DWxzAyq7SN2dHjjNhj6gppifaNmvW/X6tRq5/yVuyWgu/SAS6pLgzkahdUdZbbf/5 b2qJDoyWYpfHMbZf2rhs27ju3eK7sEWfCiUhWFGYj0K8UzWqYJbFctJX8d5QBAUfkQ SpTj/pG17Ul+iVlABf3/ZNSVs2mn5lc8p7FwV4Fo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 12/43] RDMA/cm: Service ID Resolution Response (SIDR_REP) definitions Date: Sun, 27 Oct 2019 09:05:50 +0200 Message-Id: <20191027070621.11711-13-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 21 +++++++++++++++++++-- drivers/infiniband/core/cma.c | 2 +- include/rdma/ib_cm.h | 5 ----- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 55a14acaa333..d07a5f141720 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3618,9 +3618,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); @@ -3674,7 +3675,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 9d32b84bdcb0..08b337551775 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -327,6 +327,23 @@ #define CM_SIDR_REQ_PRIVATE_DATA_OFFSET 16 #define CM_SIDR_REQ_PRIVATE_DATA_SIZE 216 +#define CM_SIDR_REP_REQUESTID_OFFSET 0 +#define CM_SIDR_REP_REQUESTID_MASK GENMASK(31, 0) +#define CM_SIDR_REP_STATUS_OFFSET 4 +#define CM_SIDR_REP_STATUS_MASK GENMASK(7, 0) +#define CM_SIDR_REP_ADDITIONAL_INFORMATION_LENGTH_OFFSET 5 +#define CM_SIDR_REP_ADDITIONAL_INFORMATION_LENGTH_MASK GENMASK(7, 0) +#define CM_SIDR_REP_QPN_OFFSET 8 +#define CM_SIDR_REP_QPN_MASK GENMASK(23, 0) +#define CM_SIDR_REP_SERVICEID_OFFSET 12 +#define CM_SIDR_REP_SERVICEID_MASK GENMASK_ULL(63, 0) +#define CM_SIDR_REP_Q_KEY_OFFSET 20 +#define CM_SIDR_REP_Q_KEY_MASK GENMASK(31, 0) +#define CM_SIDR_REP_ADDITIONAL_INFORMATION_OFFSET 24 +#define CM_SIDR_REP_ADDITIONAL_INFORMATION_SIZE 72 +#define CM_SIDR_REP_PRIVATE_DATA_OFFSET 96 +#define CM_SIDR_REP_PRIVATE_DATA_SIZE 136 + struct cm_req_msg { struct ib_mad_hdr hdr; @@ -1091,9 +1108,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 d3bbca5b61e3..4a54cf561a95 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -3694,7 +3694,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 { From patchwork Sun Oct 27 07:05: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: 11213985 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EA13C112C for ; Sun, 27 Oct 2019 07:07:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B34AE21726 for ; Sun, 27 Oct 2019 07:07:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160031; bh=Poi+QHQSGc4SYHTbmKC7/QE9bpNIJ7TALeKGkpv1Lhg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=WlLicWxYCMe+q0vbi85WqlfQWWPxPgSEaq6vyzRKpI5VgCQm7Fjab2hoMbloocHCp 9q3tlsYrN3LFp4UB+Iz2nGiabaFNJWx45/hvHJV43YtRSLKb73LQK24bTXHdRWHpir PguVK7PJvKcmhFHqYfsEWULLvhHqNQG0H8sNvWCk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726353AbfJ0HHL (ORCPT ); Sun, 27 Oct 2019 03:07:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:34922 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHL (ORCPT ); Sun, 27 Oct 2019 03:07:11 -0400 Received: from localhost (unknown [77.137.89.37]) (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 0031B20578; Sun, 27 Oct 2019 07:07:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160029; bh=Poi+QHQSGc4SYHTbmKC7/QE9bpNIJ7TALeKGkpv1Lhg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I52phZ3qBxTUzo1sYO6lSlhrPa7aA1g73StFyqOZ7nOKQ3Mp3YVzaZ2PqxAz1pukw GmCJFGMmtuJJqoHwMCaXmJyrr1gYybAkV1sd4dVI/yZsr1ne9AvubL6wAh3l4WpE8f lpgExaqodmstbKPtkAAHnMoX3e+gJ30HCCWunLVQ= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 13/43] RDMA/cm: Convert QPN and EECN to be u32 variables Date: Sun, 27 Oct 2019 09:05:51 +0200 Message-Id: <20191027070621.11711-14-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 d07a5f141720..81a67805b029 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)); + CM_SET(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 = CM_GET(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 = CM_GET(REP_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 = CM_GET(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 = CM_GET(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)); + CM_SET(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)); + CM_SET(REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg, param->qp_num); } if (param->private_data && param->private_data_len) @@ -2102,7 +2102,7 @@ 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); + cm_id_priv->local_qpn = param->qp_num; out: spin_unlock_irqrestore(&cm_id_priv->lock, flags); return ret; @@ -2184,7 +2184,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 = + CM_GET(REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); + else + param->remote_qpn = CM_GET(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; @@ -2277,7 +2281,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 = + CM_GET(REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); + else + cm_id_priv->timewait_info->remote_qpn = + CM_GET(REP_LOCAL_QPN, rep_msg); spin_lock(&cm.lock); /* Check for duplicate REP. */ @@ -2320,7 +2329,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 = + CM_GET(REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); + else + cm_id_priv->remote_qpn = CM_GET(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); @@ -2434,7 +2447,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); + CM_SET(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); @@ -2603,7 +2616,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 != CM_GET(DREQ_REMOTE_QPN_EECN, dreq_msg)) goto unlock; switch (cm_id_priv->id.state) { @@ -3068,7 +3081,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); + CM_SET(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 = @@ -4111,7 +4124,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 08b337551775..4cef1fe58813 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,18 +400,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); @@ -792,6 +780,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 */ @@ -808,34 +797,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); @@ -928,17 +889,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; @@ -977,18 +927,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 Sun Oct 27 07:05: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: 11213987 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 00652112B for ; Sun, 27 Oct 2019 07:07:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D20B521850 for ; Sun, 27 Oct 2019 07:07:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160034; bh=EpstzgCWfwvAbM605FIFKI4ZoRTO+kJD2tj7QMuPwLY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Ngyk8QNlIM/9RiGWTB+0AMG+GO64Tial/H+AOoaL6cRguD+0de0DnXXM+/jvQgBPy C1q2qntkteNrrGcCeyDty75A9Z47Ju9iCjFRQsobC3JPTcK3hjPmvP5LqyOGz38SXF /iK1+zjIwlvc/eXEEVx838Qe5ddrvVi1I3TpnTZc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726369AbfJ0HHO (ORCPT ); Sun, 27 Oct 2019 03:07:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:34946 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHO (ORCPT ); Sun, 27 Oct 2019 03:07:14 -0400 Received: from localhost (unknown [77.137.89.37]) (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 86CF820578; Sun, 27 Oct 2019 07:07:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160033; bh=EpstzgCWfwvAbM605FIFKI4ZoRTO+kJD2tj7QMuPwLY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0lT4UV5uq/33yev39vGVWNIRsndPOZJc+/VkrpZ/AbkZYHgVOkTP+6HN/tDaKC+V2 j/dJXR4ogBTYL954IhVBZ9zNzohdVcqgGCKTayeqo94nSm3P6dB7yVY+LvSNLA27De F3wLTjSQt7lv6NO83UZ6PIkeq5vYuSgmxF1FkkrY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 14/43] RDMA/cm: Convert REQ responded resources to the new scheme Date: Sun, 27 Oct 2019 09:05:52 +0200 Message-Id: <20191027070621.11711-15-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 81a67805b029..25cbc0860bd4 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); + CM_SET(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 = CM_GET(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 = CM_GET(REQ_LOCAL_QPN, req_msg); - cm_id_priv->initiator_depth = cm_req_get_resp_res(req_msg); + cm_id_priv->initiator_depth = CM_GET(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 4cef1fe58813..ab32f8cd98d0 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,18 +400,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 Sun Oct 27 07:05: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: 11213989 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CCDC7112B for ; Sun, 27 Oct 2019 07:07:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AA43921928 for ; Sun, 27 Oct 2019 07:07:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160038; bh=2MOlGUn9MVHSBmfYrRhji3TiOI1tVBqmYTxDzXD+6nI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=I4EiWz+0ffLxIDs0uWAVeBKCAiWE+8dUlUdWXeVZWgsuDCZsPSxB5lWgXOSeu5v7c JGDPEnVOMrKw0or0IC0ZxOVdw1sDR0TuvZSZ5K+KpZ7QCXdeXR2AWiEDnzUJcqD3Qr Vs0rxl1cQUbM6T+jNaeuxaZd3GalEOVZBLfRHVmY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726370AbfJ0HHS (ORCPT ); Sun, 27 Oct 2019 03:07:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:34966 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHS (ORCPT ); Sun, 27 Oct 2019 03:07:18 -0400 Received: from localhost (unknown [77.137.89.37]) (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 1FC6121726; Sun, 27 Oct 2019 07:07:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160036; bh=2MOlGUn9MVHSBmfYrRhji3TiOI1tVBqmYTxDzXD+6nI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EkgHs/aSc35W3uNTvpnYYWZ0SC3Yg4MnDACxQfb5HRxSO41kGbsZ24K5+573AV4Gg LPQRfq189lXIMzivgPpOVoyIY8dOCldQelLSJVIW4XJg7z0OMPsekNRAKW7clGXmeq T1ukM9lYsqFYqxk7mtYw9t17waQteL0DuDfsn+dw= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 15/43] RDMA/cm: Convert REQ initiator depth to the new scheme Date: Sun, 27 Oct 2019 09:05:53 +0200 Message-Id: <20191027070621.11711-16-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 25cbc0860bd4..519a025773ff 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; CM_SET(REQ_LOCAL_QPN, req_msg, param->qp_num); - cm_req_set_init_depth(req_msg, param->initiator_depth); + CM_SET(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 = CM_GET(REP_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 = CM_GET(REQ_INITIATOR_DEPTH, req_msg); param->initiator_depth = CM_GET(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 = CM_GET(REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = CM_GET(REQ_RESPONDED_RESOURCES, req_msg); - cm_id_priv->responder_resources = cm_req_get_init_depth(req_msg); + cm_id_priv->responder_resources = CM_GET(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 ab32f8cd98d0..4f4531d38535 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,19 +400,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 Sun Oct 27 07:05: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: 11213991 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DB6DB1709 for ; Sun, 27 Oct 2019 07:07:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B893521928 for ; Sun, 27 Oct 2019 07:07:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160041; bh=Q2l9RcC9Toe0xy4W9dRZpz3d56Z7zoDk6mukyaBLjSo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=fTHLh/ohLJnb5k18S/0rCHG8N/fxSxHGzxvgyMzglhuMpjQOg1f+T99/0laOAyHP/ j4OxLT63CIunC2gWD3hrhOapGPDLIM20C3Lx44uP5+2JQ49a1wED88mJdNtk+uT72Q RoyHG1P3xtsMyhSPUjY+hs9JIJCGueQJlfHxoAl0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726442AbfJ0HHV (ORCPT ); Sun, 27 Oct 2019 03:07:21 -0400 Received: from mail.kernel.org ([198.145.29.99]:34988 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHV (ORCPT ); Sun, 27 Oct 2019 03:07:21 -0400 Received: from localhost (unknown [77.137.89.37]) (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 AE1B221726; Sun, 27 Oct 2019 07:07:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160040; bh=Q2l9RcC9Toe0xy4W9dRZpz3d56Z7zoDk6mukyaBLjSo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DbOXnkFy/T8/5aekrUX1YbxK+slaRRpYSSI91Jc+EmEL7q+w9HpyrUm8AllWE2Fp7 7LDDd/GrY38QyMekerq1Z7jaBWvutxzuESFWOVS1UfH+zmdBaaVUfuxKFkexXBwPea 6YSboGex9oFPRREK3swK1qhhRuTD6WX144yQ7qLQ= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 16/43] RDMA/cm: Convert REQ remote response timeout Date: Sun, 27 Oct 2019 09:05:54 +0200 Message-Id: <20191027070621.11711-17-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 519a025773ff..4e5c2ad1532e 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; CM_SET(REQ_LOCAL_QPN, req_msg, param->qp_num); CM_SET(REQ_INITIATOR_DEPTH, req_msg, param->initiator_depth); - cm_req_set_remote_resp_timeout(req_msg, - param->remote_cm_response_timeout); + CM_SET(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 = CM_GET(REQ_INITIATOR_DEPTH, req_msg); param->initiator_depth = CM_GET(REQ_RESPONDED_RESOURCES, req_msg); param->local_cm_response_timeout = - cm_req_get_remote_resp_timeout(req_msg); + CM_GET(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 4f4531d38535..955a9a5ceeb7 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,19 +400,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 Sun Oct 27 07:05: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: 11213993 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F20B7112C for ; Sun, 27 Oct 2019 07:07:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CF25C21928 for ; Sun, 27 Oct 2019 07:07:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160045; bh=+2z/ihmsU+uSGShd0zH2VnXgmTv5dhNF8LdgJRV1DnA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=1NygJ3uJHInPglCb2kMMpTTt6YIje/xMZ5YJcb+X4NStY3G0zP+3Z174jkOx/UZA2 Q+8bFGko12x5xJAeio2CItvLPa0Cz3B/OwisgF8Y/1N4cntRwi4rk6E/VFpt+nnfMF NfUUU3Mc/iDbymo1glv5hCPKzQ7zkjQLHvlY+iVM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726453AbfJ0HHZ (ORCPT ); Sun, 27 Oct 2019 03:07:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:35010 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHZ (ORCPT ); Sun, 27 Oct 2019 03:07:25 -0400 Received: from localhost (unknown [77.137.89.37]) (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 356A321726; Sun, 27 Oct 2019 07:07:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160043; bh=+2z/ihmsU+uSGShd0zH2VnXgmTv5dhNF8LdgJRV1DnA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SFYKCc2cHbclRc+KsEVlh2467Y8yEvlMiC0cGUqaO360MYIDE6a3/ipxt5TFjMRIM tC0O/1moeg35p+mEBotTqsjB13ZT4QgrannuE1ph+ye/qHlVIRG9KFQLN46Xq1ka65 BeEO57YSM8k8ZNBZJoorPlfpap+V3uNwQu/20A50= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 17/43] RDMA/cm: Simplify QP type to wire protocol translation Date: Sun, 27 Oct 2019 09:05:55 +0200 Message-Id: <20191027070621.11711-18-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 4e5c2ad1532e..17954b71cf09 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) + CM_SET(REQ_EXTENDED_TRANSPORT_TYPE, req_msg, 0x1); + + CM_SET(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 = CM_GET(REQ_TRANSPORT_SERVICE_TYPE, req_msg); + + if (transport_type == 3 && + (CM_GET(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 955a9a5ceeb7..e073308dad09 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,43 +400,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 Sun Oct 27 07:05: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: 11214007 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9C3CB112B for ; Sun, 27 Oct 2019 07:07:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7968A21850 for ; Sun, 27 Oct 2019 07:07:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160070; bh=NHeoiD2v4BdbVujpzbtvJAde0EU+EdfCsi4ifOx5aZY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=yuPNSXuBRT2O66kuVNg5mpCAHIgHMntaQSbBRJK+RemKjRMVSoFYlFTcEmvHjXimx 0KPXqJAPEPJStW1DrGCK1W72yaz3jbcJGY4TB8kmiL9lobf3UB0NfLb7FVJzvRFiFK q07AU8UO/gU2mpec0dCa91qgYEfjhA1vc9QZi4Dk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726552AbfJ0HHu (ORCPT ); Sun, 27 Oct 2019 03:07:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:35172 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHt (ORCPT ); Sun, 27 Oct 2019 03:07:49 -0400 Received: from localhost (unknown [77.137.89.37]) (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 6DD7A20578; Sun, 27 Oct 2019 07:07:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160069; bh=NHeoiD2v4BdbVujpzbtvJAde0EU+EdfCsi4ifOx5aZY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ewBBtWwry+7sWFuVGhUG3jYYPCPyp/Z9hdQAecM9Oh/zXJIXSHiz7t7tLoLtjP0PV UWBBwzp9XKmWZzpT/c2OzGtVR8520U3GURSqaoKRTJwtlDKB3lOT3DYnmRgPh0pgD/ htoaAdu+sUnz8osKgGAL9KWmjXrFrizvuKvx4G4o= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 18/43] RDMA/cm: Convert REQ flow control Date: Sun, 27 Oct 2019 09:05:56 +0200 Message-Id: <20191027070621.11711-19-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 CM_GET/CM_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 17954b71cf09..3e2eb096b2f9 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, CM_SET(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_SET(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 = CM_GET(REQ_RESPONDED_RESOURCES, req_msg); param->local_cm_response_timeout = CM_GET(REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg); - param->flow_control = cm_req_get_flow_ctrl(req_msg); + param->flow_control = CM_GET(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 e073308dad09..538ce42b97c3 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,19 +400,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 Sun Oct 27 07:05: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: 11213997 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 035CF112C for ; Sun, 27 Oct 2019 07:07:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D56A721850 for ; Sun, 27 Oct 2019 07:07:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160052; bh=HzMB1D3x10S/Eig2HLguDShujGnDCWdVBsX8vbhDBHM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=O/nFGKSO5GHOevmQLFo20iAssAiqUzi2VlTeGAPovpldf3OO/8hd9Y8jevu0j77wU IY9Fxbk+3C3aOSm9HFAT9RKCBxh8LvQvkApdc6eoouwiWXIlKGhoUDW6zqmUb8haBN 1/syH5Mk5NZTt6nymG2Z5jcd7ZSQRlb3C10MakCc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726466AbfJ0HHc (ORCPT ); Sun, 27 Oct 2019 03:07:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:35054 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHc (ORCPT ); Sun, 27 Oct 2019 03:07:32 -0400 Received: from localhost (unknown [77.137.89.37]) (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 7DBD520578; Sun, 27 Oct 2019 07:07:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160051; bh=HzMB1D3x10S/Eig2HLguDShujGnDCWdVBsX8vbhDBHM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R1U2IJhTDbmpWz7yvgu8s940pBPjWwU9NsSLKmoIfdiMXQZ6NkRzIwhV/tpTZ9TvV aDpwQugDV1EYuuUuBt4cgH/sLYOnqSm7bId5VuvubmLeMbhrmUOaluNmwiYf47UHJq oDBRTqU/l2mzPt3NRODjp7fQyMCesK6VwnVCVAqY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 19/43] RDMA/cm: Convert starting PSN to be u32 variable Date: Sun, 27 Oct 2019 09:05:57 +0200 Message-Id: <20191027070621.11711-20-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 CM_GET/CM_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 3e2eb096b2f9..0367da67501b 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); CM_SET(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_SET(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 = CM_GET(REQ_LOCAL_QPN, req_msg); - cm_id_priv->rq_psn = cm_req_get_starting_psn(req_msg); + cm_id_priv->rq_psn = CM_GET(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 = CM_GET(REP_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 = CM_GET(REQ_STARTING_PSN, req_msg); param->responder_resources = CM_GET(REQ_INITIATOR_DEPTH, req_msg); param->initiator_depth = CM_GET(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 = CM_GET(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 = CM_GET(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)); + CM_SET(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 = CM_GET(REP_STARTING_PSN, rep_msg); cm_id_priv->local_qpn = param->qp_num; out: spin_unlock_irqrestore(&cm_id_priv->lock, flags); @@ -2215,7 +2215,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) CM_GET(REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); else param->remote_qpn = CM_GET(REP_LOCAL_QPN, rep_msg); - param->starting_psn = be32_to_cpu(cm_rep_get_starting_psn(rep_msg)); + param->starting_psn = CM_GET(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); @@ -2362,7 +2362,7 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv->remote_qpn = CM_GET(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 = CM_GET(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 = @@ -4151,7 +4151,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 | @@ -4200,7 +4200,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 538ce42b97c3..b63bba57394e 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,18 +400,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); @@ -709,18 +697,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 Sun Oct 27 07:05: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: 11213999 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D44FE112C for ; Sun, 27 Oct 2019 07:07:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B23DD21850 for ; Sun, 27 Oct 2019 07:07:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160056; bh=J/UDlsOVS5o9Gmhnuk+5rV7Bd9xi2SK1DPs74jSY9po=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=DczFMr+RqXtwMsca2EIoTF2j/uuy/QKDeR8O//QUEc1vtFhT7GQq1V+PKbFqeVRD/ JgNYcs4ILMrmWkCUKgZP5OXc+PrBZfnF8esMAgxyof6HOeHVrxhNOI9bWPk1ZoYHo9 fxBJAyQd1vJgvyBQn9EZuhwhuAfbZTweq8eaaN0k= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726479AbfJ0HHg (ORCPT ); Sun, 27 Oct 2019 03:07:36 -0400 Received: from mail.kernel.org ([198.145.29.99]:35078 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHg (ORCPT ); Sun, 27 Oct 2019 03:07:36 -0400 Received: from localhost (unknown [77.137.89.37]) (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 2426D20578; Sun, 27 Oct 2019 07:07:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160054; bh=J/UDlsOVS5o9Gmhnuk+5rV7Bd9xi2SK1DPs74jSY9po=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BfqcHMOkEVntZYgzoQsGQu57VVy8BkPVP+QZEE4FdcjTu5vEX0rQjQPeMB+DUDZdE wDYJj/+tqZclhxfQyurcLKCRfPOliAJDPR0wynuY2qCY/8ANtDq/vK+D4qRViNYEUo hghmHZHjyAxuCjXaEOGwhnRE7fCR9ez8wIL29mZo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 20/43] RDMA/cm: Update REQ local response timeout Date: Sun, 27 Oct 2019 09:05:58 +0200 Message-Id: <20191027070621.11711-21-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 CM_GET/CM_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 0367da67501b..b9eec4bf6419 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); CM_SET(REQ_END_TO_END_FLOW_CONTROL, req_msg, param->flow_control); CM_SET(REQ_STARTING_PSN, req_msg, param->starting_psn); - cm_req_set_local_resp_timeout(req_msg, - param->local_cm_response_timeout); + CM_SET(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, CM_GET(REQ_REMOTE_CM_RESPONSE_TIMEOUT, req_msg); param->flow_control = CM_GET(REQ_END_TO_END_FLOW_CONTROL, req_msg); param->remote_cm_response_timeout = - cm_req_get_local_resp_timeout(req_msg); + CM_GET(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)); + CM_GET(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 = CM_GET(REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = CM_GET(REQ_RESPONDED_RESOURCES, req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index b63bba57394e..2deaed83c9eb 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,18 +400,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 Sun Oct 27 07:05: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: 11214001 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CD33E112B for ; Sun, 27 Oct 2019 07:07:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AAC7B21850 for ; Sun, 27 Oct 2019 07:07:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160059; bh=hdQt20VSEzVlFoNujD+slwSemWNixms1rRgUmbzhG5g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=C6y5xSJJxbJJAeiJx3vGSTYNIIr98eS/K/RMU9ys5/FZJUbPRiyPTsMd3cLhIjqwk LAwakavyUM7NChWENgtlj3EeFnBgQV+zu32MZN4ARgqbmcFaDATjp8H4N8KweskvSH z4XiBaBsnkcaMDYFIm8/6XBzPJ6pNVsVptSHFZz4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726482AbfJ0HHj (ORCPT ); Sun, 27 Oct 2019 03:07:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:35100 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHj (ORCPT ); Sun, 27 Oct 2019 03:07:39 -0400 Received: from localhost (unknown [77.137.89.37]) (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 A632920578; Sun, 27 Oct 2019 07:07:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160058; bh=hdQt20VSEzVlFoNujD+slwSemWNixms1rRgUmbzhG5g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XajAx9BMf6oMmLZASWS3gHLX64s5OMBz8XL7qshdo0jxuuo56lOET91FIc+rtAZJs 5s+Wh0WQk+OYLpXDB0n3eag62bSvjb2atn3xjypiNKqLJuk4fgiVOrWQpxL6t7kQF2 em8w2LwlH+YUXvn6/gLCAZ0Oy439b+V3aUrNvGg4= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 21/43] RDMA/cm: Convert REQ retry count to use new scheme Date: Sun, 27 Oct 2019 09:05:59 +0200 Message-Id: <20191027070621.11711-22-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 CM_GET/CM_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 b9eec4bf6419..ea3540cf9deb 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) { CM_SET(REQ_RESPONDED_RESOURCES, req_msg, param->responder_resources); - cm_req_set_retry_count(req_msg, param->retry_count); + CM_SET(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 = CM_GET(REQ_END_TO_END_FLOW_CONTROL, req_msg); param->remote_cm_response_timeout = CM_GET(REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg); - param->retry_count = cm_req_get_retry_count(req_msg); + param->retry_count = CM_GET(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 = CM_GET(REQ_STARTING_PSN, req_msg); - cm_id_priv->retry_count = cm_req_get_retry_count(req_msg); + cm_id_priv->retry_count = CM_GET(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 2deaed83c9eb..ff7d4e9da833 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,18 +400,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 Sun Oct 27 07:06: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: 11214003 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 07452112C for ; Sun, 27 Oct 2019 07:07:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DA1F221850 for ; Sun, 27 Oct 2019 07:07:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160063; bh=IV/KpezSKygDVo+fHhQjcWGREr1vVi14YCO/Ft1YcVg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=TgUh2Y1qHldPxFy2i83h3/q/8zOpeKyqwHQM8AhrKU/XGP4/jUGt685xpawMmCEfY L0dwKQRUpUhCwpRDof2NxNrn810UABPnBOilZQ93qy8q+NivyAlpdUr7Am5HYYGSZc 2HeHbqWLDpqn+oIqZTrtnCY58xF7tW4aG6tz8RNg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726534AbfJ0HHn (ORCPT ); Sun, 27 Oct 2019 03:07:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:35124 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHn (ORCPT ); Sun, 27 Oct 2019 03:07:43 -0400 Received: from localhost (unknown [77.137.89.37]) (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 5C93E21726; Sun, 27 Oct 2019 07:07:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160062; bh=IV/KpezSKygDVo+fHhQjcWGREr1vVi14YCO/Ft1YcVg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DKclsQ2AzVDicNFKgegy+6ZoGKn5ZlE/K5AJ4t+wAzbffPC99dJFJtg2Hc7T/jUCr rozWeMwkt/YpNxM5rHBcxAz4TPfuhke9Pl5TC1m4SeNRuUnp3htBHWS6yRlhdovmzq Z5Co4iG8DIySKRXCDSbraHgkm0p9fZQ2sAvtJ/z8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 22/43] RDMA/cm: Update REQ path MTU field Date: Sun, 27 Oct 2019 09:06:00 +0200 Message-Id: <20191027070621.11711-23-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 CM_GET/CM_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 ea3540cf9deb..442fb4dee55b 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, CM_SET(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_SET(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 = CM_GET(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 = CM_GET(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 = CM_GET(REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = CM_GET(REQ_RESPONDED_RESOURCES, req_msg); cm_id_priv->responder_resources = CM_GET(REQ_INITIATOR_DEPTH, req_msg); - cm_id_priv->path_mtu = cm_req_get_path_mtu(req_msg); + cm_id_priv->path_mtu = CM_GET(REQ_PATH_PACKET_PAYLOAD_MTU, req_msg); cm_id_priv->pkey = req_msg->pkey; cm_id_priv->sq_psn = CM_GET(REQ_STARTING_PSN, req_msg); cm_id_priv->retry_count = CM_GET(REQ_RETRY_COUNT, req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index ff7d4e9da833..485bfc523c64 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,16 +400,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 Sun Oct 27 07:06: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: 11214005 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BA03D112C for ; Sun, 27 Oct 2019 07:07:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 974FB21850 for ; Sun, 27 Oct 2019 07:07:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160066; bh=mv94RiCGAQj6xJE0UmRdHNjY+oI4hIqYVSpn3Bf60LE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Me9kGBwiGv4oWeH3Bj4rqnOb7z/buJAYhw/XB2vvJ1VtBsWl1mQKD48IsYauNPOy7 drus9I970Qaj+CtD8iAXEahTLAw9u9G0RQShbaB8Ye6w20/GpXB1/VTr/SA4lPvQez eTZqCbAIOqYpLZabPNcWXwgXHAf/isPNzvSGbexI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726536AbfJ0HHq (ORCPT ); Sun, 27 Oct 2019 03:07:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:35146 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHq (ORCPT ); Sun, 27 Oct 2019 03:07:46 -0400 Received: from localhost (unknown [77.137.89.37]) (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 DA77320578; Sun, 27 Oct 2019 07:07:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160065; bh=mv94RiCGAQj6xJE0UmRdHNjY+oI4hIqYVSpn3Bf60LE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xE72sqAI9wsPYsXeA0mYsuGOvAOndLhwiBRiPUmWGflDAJh6tzR6XQixuS3c91Epq 1hTTWfxsPaBzrBOOVqtyOZ6MAv7UMZ9rQOmAC8DnZjrV6+cBarQq8rRO0g7djnwnKN h67elQpt6PKfGvOdpu0ZGysmdeCxnpjl5DeIBPBo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 23/43] RDMA/cm: Convert REQ RNR retry timeout counter Date: Sun, 27 Oct 2019 09:06:01 +0200 Message-Id: <20191027070621.11711-24-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 442fb4dee55b..64b416e7f183 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, CM_SET(REQ_RESPONDED_RESOURCES, req_msg, param->responder_resources); CM_SET(REQ_RETRY_COUNT, req_msg, param->retry_count); - cm_req_set_rnr_retry_count(req_msg, param->rnr_retry_count); + CM_SET(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 = CM_GET(REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg); param->retry_count = CM_GET(REQ_RETRY_COUNT, req_msg); - param->rnr_retry_count = cm_req_get_rnr_retry_count(req_msg); + param->rnr_retry_count = CM_GET(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 = CM_GET(REQ_STARTING_PSN, req_msg); cm_id_priv->retry_count = CM_GET(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 = CM_GET(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 485bfc523c64..37e9bf512940 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,18 +400,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 Sun Oct 27 07:06: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: 11214019 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 40075112C for ; Sun, 27 Oct 2019 07:08:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1D36021726 for ; Sun, 27 Oct 2019 07:08:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160092; bh=+LFg6Y6L+80I3AttvkfxnWpkD7Dsa1JoG8uHftfYi10=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=dtfsWQdVVLx6MZbq44NqCZ7b5ErhY5IiC75HlBnvkSAo5jlLuAhKDvPYgh0b3/Dlh zIojRakiP57p/QRT2uF/R7oGUqYP4sK5lHxr6IpNo+0ryLpFfobi44dyspXODguJwx B1jBtO6mtc92Gtx32qWxwSxNbGwEWTCoTaX9tpm4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726647AbfJ0HIL (ORCPT ); Sun, 27 Oct 2019 03:08:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:35312 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIL (ORCPT ); Sun, 27 Oct 2019 03:08:11 -0400 Received: from localhost (unknown [77.137.89.37]) (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 0C13720578; Sun, 27 Oct 2019 07:08:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160090; bh=+LFg6Y6L+80I3AttvkfxnWpkD7Dsa1JoG8uHftfYi10=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UDwnpTWgYgpX/BxFRtolx7asjV4lGKMo9JoBNLIb5OIsmTak6dSs36sOndXwm9xCo Tauo8cXNeCTUPP/MdFlD6XryVJvIPnO4iERkWNvbCXQg0bgbu+mMzVWxI14xAfgY2Z 5mNLP3PIgv9AkW5evbI2qL3bxvjrHFfYDaOL312M= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 24/43] RDMA/cm: Convert REQ MAX CM retries Date: Sun, 27 Oct 2019 09:06:02 +0200 Message-Id: <20191027070621.11711-25-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 64b416e7f183..0450d75f8d53 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; CM_SET(REQ_PATH_PACKET_PAYLOAD_MTU, req_msg, param->primary_path->mtu); - cm_req_set_max_cm_retries(req_msg, param->max_cm_retries); + CM_SET(REQ_MAX_CM_RETRIES, req_msg, param->max_cm_retries); if (param->qp_type != IB_QPT_XRC_INI) { CM_SET(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( CM_GET(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 = CM_GET(REQ_MAX_CM_RETRIES, req_msg); cm_id_priv->remote_qpn = CM_GET(REQ_LOCAL_QPN, req_msg); cm_id_priv->initiator_depth = CM_GET(REQ_RESPONDED_RESOURCES, req_msg); cm_id_priv->responder_resources = CM_GET(REQ_INITIATOR_DEPTH, req_msg); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 37e9bf512940..677b61a85e1f 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,17 +400,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 Sun Oct 27 07:06: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: 11214009 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 43811112B for ; Sun, 27 Oct 2019 07:07:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 20D0A21850 for ; Sun, 27 Oct 2019 07:07:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160074; bh=A4axtiCr1Xv9rmG4bu0Uli1KacuuhhwBC3yY8s0E+s8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=lz+oQ0wBc1I7i5rgCtmXmvhSLCyT+kVPUFywcwaxBtQo0dOmAd52KtP2HZuVQ12HO JnVfF330rCRSLUDMVBd/Gw+KC91zMQoTcOl10PoL3O5N580IyYLtjN7u5ys1A+eHk/ TAEAHU72RJxk40UpvkbzKzS/3QPKKL4mEt9WOvL0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726579AbfJ0HHx (ORCPT ); Sun, 27 Oct 2019 03:07:53 -0400 Received: from mail.kernel.org ([198.145.29.99]:35198 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HHx (ORCPT ); Sun, 27 Oct 2019 03:07:53 -0400 Received: from localhost (unknown [77.137.89.37]) (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 2B13320578; Sun, 27 Oct 2019 07:07:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160072; bh=A4axtiCr1Xv9rmG4bu0Uli1KacuuhhwBC3yY8s0E+s8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MryLK25dtg8gudJjNIcxZETByXjZ4UzXWCC3sc+wJ7JW8Ahm8hPzXIY+24+X2Ptcv 1t3Ux4NLV5vA1eJCQAC6FfSafIdLMDBXPWgsePH2nGc8eqBfX/i9lLhPi3fQgOmDUf 2kdm0YEIsC/bGG1DhoNrXg6f32qlYfiDhAPngopw= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 25/43] RDMA/cm: Convert REQ SRQ field Date: Sun, 27 Oct 2019 09:06:03 +0200 Message-Id: <20191027070621.11711-26-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 0450d75f8d53..d28501559d7d 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); CM_SET(REQ_RETRY_COUNT, req_msg, param->retry_count); CM_SET(REQ_RNR_RETRY_COUNT, req_msg, param->rnr_retry_count); - cm_req_set_srq(req_msg, param->srq); + CM_SET(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, CM_GET(REQ_LOCAL_CM_RESPONSE_TIMEOUT, req_msg); param->retry_count = CM_GET(REQ_RETRY_COUNT, req_msg); param->rnr_retry_count = CM_GET(REQ_RNR_RETRY_COUNT, req_msg); - param->srq = cm_req_get_srq(req_msg); + param->srq = CM_GET(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 677b61a85e1f..112ece857fd8 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,17 +400,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 Sun Oct 27 07:06: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: 11214011 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 90B08112C for ; Sun, 27 Oct 2019 07:07:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6DFA721850 for ; Sun, 27 Oct 2019 07:07:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160078; bh=U5HzrClKLK7uQm5xKbAKISoiPH19zWdVyMfW79OqvC8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=J5HAeRrctsqxgAn+Mcef1ACqTT1wtihx+N/MFQBrjEuiPYc6GNfoUzdS2Mq3SevvB uMYnruDCdNLKCENT6ek5UUbfPNiSpLheWRcGEmrnyr/BeUzGw8BKG6ZqPnRQMcPd6o fy9JOpcH5H+x4nSH96YSbqQwad0VQDHx711MI2G0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726620AbfJ0HH6 (ORCPT ); Sun, 27 Oct 2019 03:07:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:35220 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HH5 (ORCPT ); Sun, 27 Oct 2019 03:07:57 -0400 Received: from localhost (unknown [77.137.89.37]) (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 BE3E920578; Sun, 27 Oct 2019 07:07:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160076; bh=U5HzrClKLK7uQm5xKbAKISoiPH19zWdVyMfW79OqvC8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kiHnlmAcZsHjbc5UGr/t/j/o/kDy5kHGhVjhPmScqCyE2CG5qg2Vz6EFipbHdZwv0 7yLp5DNNAMCWjxM39rz8rfyYLVGTkyLBvckUo7taBJLOeB1TrFBH0t+drhdND7DsgR 3ZntKDcOb2Am+KdmorFHICbT8wsXRKvTAkCPfUM8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 26/43] RDMA/cm: Convert REQ flow label field Date: Sun, 27 Oct 2019 09:06:04 +0200 Message-Id: <20191027070621.11711-27-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 CM_GET/CM_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 d28501559d7d..a1bee95ba9bd 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); + CM_SET(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); + CM_SET(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(CM_GET(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(CM_GET(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 112ece857fd8..dfcdfe2cd5ba 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,20 +400,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); @@ -462,20 +448,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 Sun Oct 27 07:06: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: 11214013 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F32F7112C for ; Sun, 27 Oct 2019 07:08:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D27C921850 for ; Sun, 27 Oct 2019 07:08:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160081; bh=axzq+YjhsilhCbuS3HYMNrEf4RYJbTeakaSG9TiWJ9o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=GChWE48py+DzE41nWPPrysRayJweUgpKVxMP1CwlgPu/9UlQXRADhcJt7PpyUKatT WkF3OUFaPIOZyzHJCC+dA+Ecj9EPkqkZZDp8ebpOeDnOYpJr7LB+VmnMuUTOW/R19Y p5Yon/79NGdsdPTWq8uZGHJpPnw0X3JzA0QCE038= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726621AbfJ0HIB (ORCPT ); Sun, 27 Oct 2019 03:08:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:35242 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIB (ORCPT ); Sun, 27 Oct 2019 03:08:01 -0400 Received: from localhost (unknown [77.137.89.37]) (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 4C8A320578; Sun, 27 Oct 2019 07:07:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160080; bh=axzq+YjhsilhCbuS3HYMNrEf4RYJbTeakaSG9TiWJ9o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NZ8Px50YoN9oJxGGn8qYGvJN0+XJHMp/HNhrRQh5hcF9RInQ060inG5mu/Iw8DMZp oVFC99dfYNZwwTCRr8Dcwzs7DGv4EpmgE07R+yysM2TXBC6lzysNDkpRohOYlBuRIv 3fIPtm0qow37hnNVZQGVN1RuU1ZlAhEDEuL7AsN8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 27/43] RDMA/cm: Convert REQ packet rate Date: Sun, 27 Oct 2019 09:06:05 +0200 Message-Id: <20191027070621.11711-28-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 a1bee95ba9bd..a081eb5b1ac7 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, } CM_SET(REQ_PRIMARY_FLOW_LABEL, req_msg, be32_to_cpu(pri_path->flow_label)); - cm_req_set_primary_packet_rate(req_msg, pri_path->rate); + CM_SET(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, } CM_SET(REQ_ALTERNATE_FLOW_LABEL, req_msg, be32_to_cpu(alt_path->flow_label)); - cm_req_set_alt_packet_rate(req_msg, alt_path->rate); + CM_SET(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 = CM_GET(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 = CM_GET(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 = CM_GET(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 = CM_GET(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 dfcdfe2cd5ba..b272587ee226 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,19 +400,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); @@ -448,19 +435,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 Sun Oct 27 07:06: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: 11214015 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6C77C112B for ; Sun, 27 Oct 2019 07:08:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 49D2521850 for ; Sun, 27 Oct 2019 07:08:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160085; bh=zdzlkoLl2ZdFUp16dl5itF1PyLS+PdGohttsxnlc55A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=HdWpys/x6vcmXlm1zX5Limgu9sb4WqgXFbH6weFOEhOB2+Q/0epfjh8447N8+Ku5x sDhnSGKUUngasImCNi4nii3x/l07tGzqSURZEetBCmZ2dbP//lX8tGYt9HZCy1w0c+ OxNUoJNnbGJpaP13vp7FA+FEmJQNu/+NPSATimj0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726622AbfJ0HIE (ORCPT ); Sun, 27 Oct 2019 03:08:04 -0400 Received: from mail.kernel.org ([198.145.29.99]:35264 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIE (ORCPT ); Sun, 27 Oct 2019 03:08:04 -0400 Received: from localhost (unknown [77.137.89.37]) (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 D23F920578; Sun, 27 Oct 2019 07:08:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160083; bh=zdzlkoLl2ZdFUp16dl5itF1PyLS+PdGohttsxnlc55A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C0Z71CjPBpbJRyLyXVfdE1sKZWg+9N6LoHpTTc0NVC2UfsSMHLnFCWg0YbgPsfn+S 8UR2tlnjHJLQdIHQVk64fQ8Wh7zQ71P3yI8bSqrRTihlrnxxqShdBGV9hULWvmlAGd 57N5rO6SRC5SAkoiyT3o42p4Oj1MVt8ry/8pi/0k= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 28/43] RDMA/cm: Convert REQ SL fields Date: Sun, 27 Oct 2019 09:06:06 +0200 Message-Id: <20191027070621.11711-29-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 a081eb5b1ac7..9f27dbc38707 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, CM_SET(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); + CM_SET(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, CM_SET(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); + CM_SET(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 = CM_GET(REQ_PRIMARY_SL, req_msg); primary_path->mtu_selector = IB_SA_EQ; primary_path->mtu = CM_GET(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 = CM_GET(REQ_ALTERNATE_SL, req_msg); alt_path->mtu_selector = IB_SA_EQ; alt_path->mtu = CM_GET(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); + CM_SET(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); + CM_SET(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 b272587ee226..3ed35a44481d 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,17 +400,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); @@ -435,17 +424,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 Sun Oct 27 07:06: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: 11214017 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 31C27112C for ; Sun, 27 Oct 2019 07:08:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0E4F421850 for ; Sun, 27 Oct 2019 07:08:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160089; bh=Y9+Ze/2ahHog199UzaLgqh1KayyqdBkIv+/4h4OMjFM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=JLtAEDr+GcTO5G5ZR54R9NJJzpazDtfb18y1NI6Yxv3ZqH0LCo3/OQdvcM8rKkhmr gF6QvZJNtKOgtKV+RV8Fj2+dhZNkQ4DSX6D4wxD2zTeSLsl8+w0haSHuJPqX1xWAOH VYk0HyBk/1D4HMSXdcEg8PboRrLjTt/kdagJy+Xc= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726632AbfJ0HII (ORCPT ); Sun, 27 Oct 2019 03:08:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:35290 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HII (ORCPT ); Sun, 27 Oct 2019 03:08:08 -0400 Received: from localhost (unknown [77.137.89.37]) (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 6F50420578; Sun, 27 Oct 2019 07:08:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160087; bh=Y9+Ze/2ahHog199UzaLgqh1KayyqdBkIv+/4h4OMjFM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A/RMXykAT1WiOgtsPrar8Prl37MTX8lSI0twc+xNGaFhZ8Ic3q5vBKX/5JXyZrAiQ 7k+Ry/YJ0WOcnaWEQP2HsJC2LGXsjbLTxX8eFEKUxw3RwZGNGc6BjRdEfxT/xqkAO8 OtER6kXjLTQEe4UV/aX9Cw/VMrtpEJaUfASYmh4E= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 29/43] RDMA/cm: Convert REQ subnet local fields Date: Sun, 27 Oct 2019 09:06:07 +0200 Message-Id: <20191027070621.11711-30-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 9f27dbc38707..36abe43ad8a6 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; CM_SET(REQ_PRIMARY_SL, req_msg, pri_path->sl); - cm_req_set_primary_subnet_local(req_msg, (pri_path->hop_limit <= 1)); + CM_SET(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; CM_SET(REQ_ALTERNATE_SL, req_msg, alt_path->sl); - cm_req_set_alt_subnet_local(req_msg, (alt_path->hop_limit <= 1)); + CM_SET(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 (!CM_GET(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); CM_SET(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 (!CM_GET(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); CM_SET(REQ_ALTERNATE_SL, req_msg, wc->sl); diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index 3ed35a44481d..0faa48a51d7b 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,18 +400,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); @@ -424,18 +412,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 Sun Oct 27 07:06: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: 11214029 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 52DA2112B for ; Sun, 27 Oct 2019 07:08:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3020E21726 for ; Sun, 27 Oct 2019 07:08:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160110; bh=zEQvgpV9v7lFW94dh6By3t1e5tB0pOxxzq9iCTv3ORQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=NNTHrY+FuZAw/mMt74CiAygmiUp0+R6gjwJMkJNFrosklweV9ZeaH2bCYIDBFtIYX SFoHZu3Y0lGGt9OWFv1VNDTmPAFpBklzWvI2zJuYHjnqeDM7RVI1Kb6OGENnWP/af7 O81Vncvnks1YkAObKrHo4TTPVoROZag++38kaRm4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726661AbfJ0HI3 (ORCPT ); Sun, 27 Oct 2019 03:08:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:35432 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HI3 (ORCPT ); Sun, 27 Oct 2019 03:08:29 -0400 Received: from localhost (unknown [77.137.89.37]) (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 9542020578; Sun, 27 Oct 2019 07:08:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160108; bh=zEQvgpV9v7lFW94dh6By3t1e5tB0pOxxzq9iCTv3ORQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q2IPmobsbdLI4pIeO6WfIz+Na6bIjlla/CnmXI+M1R7yWngBhH9avAEsS9e1HVlzq ynMYeimInBKlOZmvHBsJhMzywutRE+E6wRTNYS02EGRLMNlEhANbyMhsvrJHRCn0Rq +iLc639MKbW1Kem+spC/lP2H4TBOBfQNoRNjx9xo= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 30/43] RDMA/cm: Convert REQ local ack timeout Date: Sun, 27 Oct 2019 09:06:08 +0200 Message-Id: <20191027070621.11711-31-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 | 16 ++++++++-------- drivers/infiniband/core/cm_msgs.h | 24 ------------------------ 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 36abe43ad8a6..cb4b16a47e00 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; CM_SET(REQ_PRIMARY_SL, req_msg, pri_path->sl); CM_SET(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)); + CM_SET(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; @@ -1361,9 +1361,9 @@ static void cm_format_req(struct cm_req_msg *req_msg, CM_SET(REQ_ALTERNATE_SL, req_msg, alt_path->sl); CM_SET(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)); + CM_SET(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 = CM_GET(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); + CM_GET(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 = CM_GET(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); + CM_GET(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 0faa48a51d7b..8a7c0a910618 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -400,30 +400,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 Sun Oct 27 07:06: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: 11214021 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EB5A2112B for ; Sun, 27 Oct 2019 07:08:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C7FC121850 for ; Sun, 27 Oct 2019 07:08:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160095; bh=34jYWmEhvvKSPjTq5/etdx3pP8u6HOVzTCOJzRSxQaA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=bP8R1nlDmxVKFP13l3eSnJLUjzbwTOBegTze2sdWhj6xTRfM58CWuWSYjPYdM2Ejd PAktFWu42hbCWqZpB+OeRis329GbBUOHsnu7pvdyBmop5/ierB487znIfG7XCvWhg2 IP3E/3S9/LJZCqkc/KKjce01o2sxB6yLO6r+O+j4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726651AbfJ0HIP (ORCPT ); Sun, 27 Oct 2019 03:08:15 -0400 Received: from mail.kernel.org ([198.145.29.99]:35338 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIP (ORCPT ); Sun, 27 Oct 2019 03:08:15 -0400 Received: from localhost (unknown [77.137.89.37]) (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 84CAC20578; Sun, 27 Oct 2019 07:08:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160094; bh=34jYWmEhvvKSPjTq5/etdx3pP8u6HOVzTCOJzRSxQaA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r6+votCgbe6wQmoCydEmICOfZsmMJvhxomFldi3O9fIDtv+WjyhFdLAalJfoNjYXO wPUbzlvWIv2JGq5lHh5gK+0ztUA7hCgX0EIZ7NDdCjjEUMsZiX6uoTMQXkbi/u6FNy RmfXJA0J/MjcAiq+4425VW7HM632SZk5tp4ltOQY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 31/43] RDMA/cm: Convert MRA MRAed field Date: Sun, 27 Oct 2019 09:06:09 +0200 Message-Id: <20191027070621.11711-32-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 cb4b16a47e00..11502ab48d35 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); + CM_SET(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); @@ -3007,7 +3007,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 (CM_GET(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: @@ -3040,21 +3040,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 (CM_GET(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 (CM_GET(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 (CM_GET(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 8a7c0a910618..bf94c3dc391e 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -421,16 +421,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 Sun Oct 27 07:06: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: 11214023 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2A3EC112B for ; Sun, 27 Oct 2019 07:08:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 07CAD21850 for ; Sun, 27 Oct 2019 07:08:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160099; bh=j20GVGcBfjE8eKjgpSpoTTS6EgqFjJfhvslLsAphC9Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=JkR8sU86OsK2I/LDYeoT58yda5u0vGY1B6eydFTvTdJW7fKtKaV+eRkmzyo9hnugW STT8mj47Sg6JPFmDIgOns8qj652laASdz0Zqs8pnsAN86OjlTdcFMyGpBwt9IyGpRO JzvvSJu5eESF8QdKakrRorapNMBPttPL012tuhKg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726654AbfJ0HIS (ORCPT ); Sun, 27 Oct 2019 03:08:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:35358 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIS (ORCPT ); Sun, 27 Oct 2019 03:08:18 -0400 Received: from localhost (unknown [77.137.89.37]) (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 10A8320578; Sun, 27 Oct 2019 07:08:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160097; bh=j20GVGcBfjE8eKjgpSpoTTS6EgqFjJfhvslLsAphC9Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k3lIuOVrCBIHTc2TqudguX3R0loEWtm+YCMfRC6mwHpTO33Bf3Bn0+IKEKsKHzzFG 11JsASR0xLa3Pzh2sE2YCV064HoXlUpXiEqdcNVQXdxqCOPx4YdrHGnxJcTHpigseQ S/6zqbjIQOqtnk/k2aQXKkjn3xAoaFiwJBuCYudw= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 32/43] RDMA/cm: Convert MRA service timeout Date: Sun, 27 Oct 2019 09:06:10 +0200 Message-Id: <20191027070621.11711-33-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 11502ab48d35..903bacb92a22 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, CM_SET(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); + CM_SET(MRA_SERVICE_TIMEOUT, mra_msg, service_timeout); if (private_data && private_data_len) memcpy(mra_msg->private_data, private_data, private_data_len); @@ -3033,8 +3033,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)) + + CM_GET(MRA_SERVICE_TIMEOUT, mra_msg); + timeout = cm_convert_to_ms(CM_GET(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 bf94c3dc391e..96a27876d2ae 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -421,18 +421,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 Sun Oct 27 07:06: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: 11214025 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 29AD1112C for ; Sun, 27 Oct 2019 07:08:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 070E921850 for ; Sun, 27 Oct 2019 07:08:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160103; bh=h5Kc2pvtY+Hxet/oucskAyvMNMCUfiwzJDjfnYcph9k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=N5nN54szBpogMoHAAZFv/IciOHuxyIAjcGY4l2YXcfHmBzijvBRobtjoxsWdL68zp Lu+B5qW+S+rhy3PdC8ZCK0TePcT2/jpld7uhzgHcXOsj1wt8zYSGGMZd8Wsl3BZ9Tq /8Mvet6WbK2Ig/moOI93ngjZq5Lach8CnJVC7fgE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726655AbfJ0HIW (ORCPT ); Sun, 27 Oct 2019 03:08:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:35384 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIW (ORCPT ); Sun, 27 Oct 2019 03:08:22 -0400 Received: from localhost (unknown [77.137.89.37]) (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 835D520578; Sun, 27 Oct 2019 07:08:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160101; bh=h5Kc2pvtY+Hxet/oucskAyvMNMCUfiwzJDjfnYcph9k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DEVelCG9b9d+nBOygT3l/6j3I2afdLIO7T8YlGdifP0jXc8j1pgl5H8KVRz57H+ql cQLMsHcvG+G2rpoiGTVbWIjE5KMjMOABQO9upi6b3itdNi540rMKdIxPISBRehZmyY 9+HS2PsSxQYtpv5qLsC1XR+DYNsJpuGJZ6i6A6ok= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 33/43] RDMA/cm: Update REJ struct to use new scheme Date: Sun, 27 Oct 2019 09:06:11 +0200 Message-Id: <20191027070621.11711-34-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 903bacb92a22..af32d1e68b11 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); + CM_SET(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); + CM_SET(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); + CM_SET(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); + CM_SET(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); + CM_SET(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); + CM_SET(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); + CM_SET(REJ_REJECTED_INFO_LENGTH, rej_msg, ari_length); memcpy(rej_msg->ari, ari, ari_length); } @@ -2815,7 +2815,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 = CM_GET(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; @@ -2846,7 +2846,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 (CM_GET(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 96a27876d2ae..6dc1a1086820 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -437,27 +437,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 Sun Oct 27 07:06: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: 11214027 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 404C9112C for ; Sun, 27 Oct 2019 07:08:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1CED920578 for ; Sun, 27 Oct 2019 07:08:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160106; bh=mp1v7oNHMJeEgqB8hznytKyxcgIVIpgnQsYScAoc5D8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=xEwfwBOnn3HW59xEgwL9lPcMHEc+/fxnl7sAd5FfkyTgQ0Qhvcsr8FuYvsL4yjc4H /NHgl39eWU7gde3haOZgjyvkdGRMdd21ZG2UBJERSY/+TkLCHyFr9ytIbYOzog9cfS scGISUY0YczWgKIZXmbWqhdCmvN7odD+gAzBpHdY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726658AbfJ0HIZ (ORCPT ); Sun, 27 Oct 2019 03:08:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:35406 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIZ (ORCPT ); Sun, 27 Oct 2019 03:08:25 -0400 Received: from localhost (unknown [77.137.89.37]) (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 081E721726; Sun, 27 Oct 2019 07:08:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160104; bh=mp1v7oNHMJeEgqB8hznytKyxcgIVIpgnQsYScAoc5D8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NXUxQe+s2zG+eX43nwolwONU9IVJDCAN4yMAnM8NO+7ZSyi/TxtNiXZsvK32MCtaP wgqj3UYGgAyp/JM+QYwks/xafIfqqC76SW5igCMD9dJCJ3zRzU4KOSMUdNz7b0WzeJ Ua3Ly0TlHaFfO6Vfc/2BKOVQInYllW6bkdWC1Dtk= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 34/43] RDMA/cm: Convert REP target ack delay field Date: Sun, 27 Oct 2019 09:06:12 +0200 Message-Id: <20191027070621.11711-35-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 af32d1e68b11..596be796f7bc 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; CM_SET(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); + CM_SET(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; @@ -2222,7 +2222,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->starting_psn = CM_GET(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 = CM_GET(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); @@ -2368,7 +2368,7 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv->responder_resources = rep_msg->initiator_depth; cm_id_priv->sq_psn = CM_GET(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 = CM_GET(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 6dc1a1086820..a3207f984c32 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -462,18 +462,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 Sun Oct 27 07:06: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: 11214041 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B222F112B for ; Sun, 27 Oct 2019 07:08:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9067321850 for ; Sun, 27 Oct 2019 07:08:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160130; bh=eQLT6tcdC+M3RuGLUj9JzvVIzztohg+oXRZCLBhCJd0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Gl42f54+4PK5px+IpB1J9GcYwCGgIibAsxXVkCtOspXXV+3hcVhPdWRa6h15YOJb9 SWtR+EZeBHQD7dP5N+/ZfJ6T/MimZbDANYVXCRqgHI7ej1nztgvQm78F69qzerwb+k q0cRisqoU+oGSEony55W5zUTRBuId4D0Wt3K0pAQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726678AbfJ0HIu (ORCPT ); Sun, 27 Oct 2019 03:08:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:35588 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIu (ORCPT ); Sun, 27 Oct 2019 03:08:50 -0400 Received: from localhost (unknown [77.137.89.37]) (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 D162220578; Sun, 27 Oct 2019 07:08:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160129; bh=eQLT6tcdC+M3RuGLUj9JzvVIzztohg+oXRZCLBhCJd0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NN08vOrn5IvMW8SAwxKd7TorCxAUHm3mIE0DNqQf+YI91GL7MFITf7BOHgXRJGZEW V05LWMyAgInGpSme/lxYkkUlblKRBWEKkCSvk7fHSremFMhVe8jLmfA8aWkgD51Hi3 kxhgfFSMvfhdropc+ZvqyQd5uV2dFKYCR3hEXnDQ= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 35/43] RDMA/cm: Convert REP failover accepted field Date: Sun, 27 Oct 2019 09:06:13 +0200 Message-Id: <20191027070621.11711-36-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 596be796f7bc..4b1f90ba4ec9 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; CM_SET(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_SET(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; @@ -2223,7 +2223,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 = CM_GET(REP_TARGET_ACK_DELAY, rep_msg); - param->failover_accepted = cm_rep_get_failover(rep_msg); + param->failover_accepted = CM_GET(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 a3207f984c32..fdc3cd9d2f88 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -462,17 +462,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 Sun Oct 27 07:06:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11214031 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 19F67112C for ; Sun, 27 Oct 2019 07:08:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EBB3721850 for ; Sun, 27 Oct 2019 07:08:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160113; bh=cHwPamzrQw+d3StvXR+8cgONXzv5W8kZHI45iRufR1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=KR1D3z9dJpQsOVD6zyYR/pDy4b44DchOV8LBhmaYRBZVOHSPdRy3LHCpFJcEvBtL3 +mfBEo+Ypp7QkSGB4Qk7Fe9gU3Na1Gld+ESAxmIhQMhUczH+oSItQpKo1MYWFQhlAr zvKMHZ8yMi73iIVtHfckBTphBCShVN2uyDJbIHQs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726663AbfJ0HIc (ORCPT ); Sun, 27 Oct 2019 03:08:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:35462 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIc (ORCPT ); Sun, 27 Oct 2019 03:08:32 -0400 Received: from localhost (unknown [77.137.89.37]) (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 31C9120578; Sun, 27 Oct 2019 07:08:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160111; bh=cHwPamzrQw+d3StvXR+8cgONXzv5W8kZHI45iRufR1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WXZXwVtRHa+lH4KD5j8shsSm8tRkcZMT7daIJso1kvYLEMqWVQ/hVbVLweKNYNUzh 6QjzplEJ/bwRbXp7A7veTc+17vsOpUetqHg86O3KEV5lrgK126h/G0SHm/ogzn8u3t HlKf7SI/79FALVhM3i1Cv0evi4OM5VEzWxMGPgZI= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 36/43] RDMA/cm: Convert REP flow control field Date: Sun, 27 Oct 2019 09:06:14 +0200 Message-Id: <20191027070621.11711-37-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 4b1f90ba4ec9..2c99bd99eac3 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); + CM_SET(REP_END_TO_END_FLOW_CONTROL, rep_msg, + param->flow_control); cm_rep_set_srq(rep_msg, param->srq); CM_SET(REP_LOCAL_QPN, rep_msg, param->qp_num); } else { @@ -2224,7 +2225,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 = CM_GET(REP_TARGET_ACK_DELAY, rep_msg); param->failover_accepted = CM_GET(REP_FAILOVER_ACCEPTED, rep_msg); - param->flow_control = cm_rep_get_flow_ctrl(rep_msg); + param->flow_control = CM_GET(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 fdc3cd9d2f88..d9b831810dc2 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -462,18 +462,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 Sun Oct 27 07:06:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11214033 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EEF40112C for ; Sun, 27 Oct 2019 07:08:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CCF0721850 for ; Sun, 27 Oct 2019 07:08:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160116; bh=VeKEmEUSEOgtKXUwBtqvkALxl5EeV8Jj2Jk0h1A4A8s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=FTKV7f5yFVXWX6yytc4PmntCf7ySedtT58m9LrfBJ+Luyzp6Eqs0cR32+LUzRYG0z v8PGl0XPvUnAKNXVdp7otxOW/zyKcfTBETyZnhB5nmKAfIdbTrh2oGZ4OAOjYB3CXP pcVoGAiH5wXCMm3UfXN7UR+pDLNj9q+1lEIhE3bA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726664AbfJ0HIg (ORCPT ); Sun, 27 Oct 2019 03:08:36 -0400 Received: from mail.kernel.org ([198.145.29.99]:35482 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIg (ORCPT ); Sun, 27 Oct 2019 03:08:36 -0400 Received: from localhost (unknown [77.137.89.37]) (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 AE54F20578; Sun, 27 Oct 2019 07:08:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160115; bh=VeKEmEUSEOgtKXUwBtqvkALxl5EeV8Jj2Jk0h1A4A8s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bOnpf/dL93H5NIQ1Y+ZUJJf3m0snBycju+FbmCylGugvpJOFQmVViBv9zok7QbH32 MQ9AslizmN9ls4BcnjQ+CPlpIFUMezrZGS41mi7SPSIg8YuQ8nYA7vwSAcQiDIKy1V bBsHv5n/TmnE/k+/+lBrkDz4r21OrG39FKe21lOc= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 37/43] RDMA/cm: Convert REP RNR retry count field Date: Sun, 27 Oct 2019 09:06:15 +0200 Message-Id: <20191027070621.11711-38-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 2c99bd99eac3..78d595c1d39b 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, CM_SET(REP_TARGET_ACK_DELAY, rep_msg, cm_id_priv->av.port->cm_dev->ack_delay); CM_SET(REP_FAILOVER_ACCEPTED, rep_msg, param->failover_accepted); - cm_rep_set_rnr_retry_count(rep_msg, param->rnr_retry_count); + CM_SET(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) { @@ -2226,7 +2226,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->target_ack_delay = CM_GET(REP_TARGET_ACK_DELAY, rep_msg); param->failover_accepted = CM_GET(REP_FAILOVER_ACCEPTED, rep_msg); param->flow_control = CM_GET(REP_END_TO_END_FLOW_CONTROL, rep_msg); - param->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); + param->rnr_retry_count = CM_GET(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; @@ -2368,7 +2368,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 = CM_GET(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 = CM_GET(REP_RNR_RETRY_COUNT, rep_msg); cm_id_priv->target_ack_delay = CM_GET(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 d9b831810dc2..c02bba29a27d 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -462,18 +462,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 Sun Oct 27 07:06:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11214035 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 71C24112B for ; Sun, 27 Oct 2019 07:08:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4E64D21726 for ; Sun, 27 Oct 2019 07:08:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160120; bh=AU9t3noQHIVz8bR53zJwoh07k82zztmtr/tyygAj3zQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=gQOTR17ZcmKdgQhNcsx/EbQQd52nocxhx9Y5UhWb3GrO2pk3nl1w/5SzO4UFn/aQY Fxw03MBVlOmDRxI4Pn3IL+oS8djaji8g0Qio88hRVSak4GVJSdWvYcgb2sasgjGk/j CJYjIckBf14NRdkpoMRwN6rq3qRfVDOMejJFyKYg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726674AbfJ0HIj (ORCPT ); Sun, 27 Oct 2019 03:08:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:35508 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIj (ORCPT ); Sun, 27 Oct 2019 03:08:39 -0400 Received: from localhost (unknown [77.137.89.37]) (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 3449420578; Sun, 27 Oct 2019 07:08:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160118; bh=AU9t3noQHIVz8bR53zJwoh07k82zztmtr/tyygAj3zQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KGP53OGZnAO2CyKC+Oe0u3yKsAbvvNdxJhrjkxIPb+aKH7X7dxVbHj2bWsXClw1rR zX7RSMI8Xjl1K8rwlBYX7/rKpJsvqk+DI+rcTQPbc7Hzk1is8NdlPw5N1HVcxWzIjR HTOo8WX7bRUzMoYqLzCd0CGE0CVMuc8yherXp1/o= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 38/43] RDMA/cm: Convert REP SRQ field Date: Sun, 27 Oct 2019 09:06:16 +0200 Message-Id: <20191027070621.11711-39-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 78d595c1d39b..035617f3b16c 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; CM_SET(REP_END_TO_END_FLOW_CONTROL, rep_msg, param->flow_control); - cm_rep_set_srq(rep_msg, param->srq); + CM_SET(REP_SRQ, rep_msg, param->srq); CM_SET(REP_LOCAL_QPN, rep_msg, param->qp_num); } else { - cm_rep_set_srq(rep_msg, 1); + CM_SET(REP_SRQ, rep_msg, 1); CM_SET(REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg, param->qp_num); } @@ -2227,7 +2227,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) param->failover_accepted = CM_GET(REP_FAILOVER_ACCEPTED, rep_msg); param->flow_control = CM_GET(REP_END_TO_END_FLOW_CONTROL, rep_msg); param->rnr_retry_count = CM_GET(REP_RNR_RETRY_COUNT, rep_msg); - param->srq = cm_rep_get_srq(rep_msg); + param->srq = CM_GET(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 c02bba29a27d..dfda88462818 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -462,17 +462,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 Sun Oct 27 07:06:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11214037 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8F886112C for ; Sun, 27 Oct 2019 07:08:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 62B2821850 for ; Sun, 27 Oct 2019 07:08:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160124; bh=PWWKxEG/5fAGPdxVK22kppOvcxaBQvkdEOWx97ntECA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=amIuiZjTpwp9n4sKjqQdehq6Bw1Qydpbd+btzk3e/YZa+4iFFebwhPO4necOgrA7c bHBP2Y7CNPO0ZxsiqovjsUGbOBnH2aZ9kZ10lMMB9JJsSDSZZQ881JuTWOgfFMXzFl xPhDdpyc2waAnrRHCOjbIqWB+qg/oywR3X3el6Ng= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726675AbfJ0HIn (ORCPT ); Sun, 27 Oct 2019 03:08:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:35532 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIn (ORCPT ); Sun, 27 Oct 2019 03:08:43 -0400 Received: from localhost (unknown [77.137.89.37]) (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 B7E2020578; Sun, 27 Oct 2019 07:08:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160122; bh=PWWKxEG/5fAGPdxVK22kppOvcxaBQvkdEOWx97ntECA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wMEfw8uL20Rl9UV4VkQ8bx47P9lieWKgWe22Gmi43wBeM3lX2Lr5ZvzMtL0qmfhYa Z5MZDJyixDEq9iOjtZB8lf5IsaCsPZCH4Z/gBtqC8lCf3nYtXJm+4IpD5coVrfu3Yf x8neOAuiBOgbVJLOFx8ZyUj+tXlmE/oy76G6SU8E= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 39/43] RDMA/cm: Delete unused CM LAP functions Date: Sun, 27 Oct 2019 09:06:17 +0200 Message-Id: <20191027070621.11711-40-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 035617f3b16c..25a20c04e07b 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3098,104 +3098,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; - CM_SET(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 dfda88462818..41193dc44fee 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -522,89 +522,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 Sun Oct 27 07:06:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11214039 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 94A7C112C for ; Sun, 27 Oct 2019 07:08:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6876C21850 for ; Sun, 27 Oct 2019 07:08:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160127; bh=XqusfRdj7uXgS/d8ah+wT4az8aIxjBWgl8p5V35JQ4U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=gX0aolT57IExvhiX9FhKrSeR+xOfeQhl35U2P+OYkduGfhVAWtRJqSmvNTuLdJ2BF qy9hATxALhyxWeqyXmAC9pxDwMqbxqjNUWUS7Vie1MCvhDA4dM1ZHWhqkfgT1gH/D7 gE2bb+Lh1GOcm1wTvL4VwgeALOUrK8wetU0KJu80= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726677AbfJ0HIr (ORCPT ); Sun, 27 Oct 2019 03:08:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:35556 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIq (ORCPT ); Sun, 27 Oct 2019 03:08:46 -0400 Received: from localhost (unknown [77.137.89.37]) (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 5390020578; Sun, 27 Oct 2019 07:08:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160126; bh=XqusfRdj7uXgS/d8ah+wT4az8aIxjBWgl8p5V35JQ4U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CfGFsWj8ZJHohoo32vN4uv50Yd9JmgrvNWtWVp9i7FLIVp7OYsUK6PWTXxMxk98hK tJ+tdWM3SrOVLO6j6rJHSjWHp5CZHVjMTXcwKpw8WYXGgpUxzyHmeWFyWL2WaVKkea 3+RfHR+OMgRv4bcZd1JO4tU1mq6zaAjdbstros0s= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 40/43] RDMA/cm: Convert LAP flow label field Date: Sun, 27 Oct 2019 09:06:18 +0200 Message-Id: <20191027070621.11711-41-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 25a20c04e07b..2fe1e8908445 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3121,7 +3121,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(CM_GET(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 41193dc44fee..fa475a59ed53 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -522,11 +522,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 Sun Oct 27 07:06:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11214047 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A9929112C for ; Sun, 27 Oct 2019 07:09:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 87F5E21850 for ; Sun, 27 Oct 2019 07:09:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160141; bh=sntNoeAN7rmWlijidlWpsDAHI1eK5aV26XXnf41sZ04=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=ynbvHksIvFRDpLZA0RTcfpob4f7uAEF8yWX0K395fmwk3c16qh2ygqcCv6l44Er8U biSXEdjsIg+ZJlTWJ91dnqdOjGQ4C1fgnmpfqQQsw1vauYtiMmopbap9dHwGxnvFSH 6ZcgMcxoVsZFEqd4tMjlxmHMDmtEjWqSxmBJe6rE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726683AbfJ0HJB (ORCPT ); Sun, 27 Oct 2019 03:09:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:35656 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HJB (ORCPT ); Sun, 27 Oct 2019 03:09:01 -0400 Received: from localhost (unknown [77.137.89.37]) (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 7C10A20578; Sun, 27 Oct 2019 07:08:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160140; bh=sntNoeAN7rmWlijidlWpsDAHI1eK5aV26XXnf41sZ04=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q7d1XDKZtcT25N+8NxJOmgo0gfV/Aev/0Gnjrk622brpYW7wYA38T+a3quRonwpJ9 m3gyrm2dz0UZ1bEqlUXtuYkt4TyG92qHtXQ7jZC3nZF4LAEU4GE951Q4iZZEF5gW2c 89L8TUuq4zd2I7Z0npoBDKw8jKsQzzv//+7to4CI= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 41/43] RDMA/cm: Convert LAP fields Date: Sun, 27 Oct 2019 09:06:19 +0200 Message-Id: <20191027070621.11711-42-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 2fe1e8908445..11dc6e2b7de2 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3124,16 +3124,17 @@ static void cm_format_path_from_lap(struct cm_id_private *cm_id_priv, path->flow_label = cpu_to_be32(CM_GET(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 = CM_GET(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 = CM_GET(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 = CM_GET(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 = + CM_GET(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 fa475a59ed53..0bf214a5f388 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -522,26 +522,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 Sun Oct 27 07:06:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11214043 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 39168112B for ; Sun, 27 Oct 2019 07:08:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 152FA21726 for ; Sun, 27 Oct 2019 07:08:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160135; bh=pHW4z/p1L6GPsG2QttewENEsJugkg4LShpraQdzeMP0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=dvLxbUIhiv7/Z+h4glQKZHSb78lGgMd3jL38aFfEqSI+Ag+dlef4JahJogzyujZYW gpOSEAaufHdtrKCg1YNPOoOudxrqtYE3D+wX3fM3OgE7RS4v0PDBTttiYE4v8EERze eW85Pjv3alknvhI8yMqeDYlnR8l40H2Rp7asG1yY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726680AbfJ0HIy (ORCPT ); Sun, 27 Oct 2019 03:08:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:35612 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HIy (ORCPT ); Sun, 27 Oct 2019 03:08:54 -0400 Received: from localhost (unknown [77.137.89.37]) (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 5639920578; Sun, 27 Oct 2019 07:08:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160133; bh=pHW4z/p1L6GPsG2QttewENEsJugkg4LShpraQdzeMP0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CAxydojCRPhaIaikfYmZbqDXokE/tpF6kEfeXZ50oYrwHInZfM39DSWcnaCI+I0Jt TWiqdlXkDcEJOyJa+VmCg4A7KKKGT838bMakNY5ptY7TDnRxcst+SktWVPVZgpeMj6 ZtxE8pKmHQZFWf2uLn66uDT/IR+TfHpddk1G+JlE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 42/43] RDMA/cm: Delete unused CM ARP functions Date: Sun, 27 Oct 2019 09:06:20 +0200 Message-Id: <20191027070621.11711-43-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 11dc6e2b7de2..bc0535608bb5 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3235,72 +3235,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 Sun Oct 27 07:06:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11214045 X-Patchwork-Delegate: jgg@ziepe.ca Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A3156112C for ; Sun, 27 Oct 2019 07:08:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8077521850 for ; Sun, 27 Oct 2019 07:08:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160138; bh=BYqbF93yt5ZAm5wQzE/hcfBMONjE9GzYsjcqAhD5tis=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=fNUmgAUl0Q3BXhN+OjvuaXaO73sPTy8BY+0LHc0k4Mo1hwTW3bh2AxgMvt1eUFI3J tK2g+67R8z/ojxqj6UvE9Ie0mKiOP6lYsOzHpnvkfrxUaCZ3bxheJBOJxC3s9sops/ K59WUaGZUnN1p3uJRqsSMH93fNhH65gMXcvYhXqQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726682AbfJ0HI6 (ORCPT ); Sun, 27 Oct 2019 03:08:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:35634 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725965AbfJ0HI5 (ORCPT ); Sun, 27 Oct 2019 03:08:57 -0400 Received: from localhost (unknown [77.137.89.37]) (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 E56A420578; Sun, 27 Oct 2019 07:08:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572160136; bh=BYqbF93yt5ZAm5wQzE/hcfBMONjE9GzYsjcqAhD5tis=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SwjBt4DxSqAP/zZdS8yASdO+egJWrKBcJcSsN9/PAGU4mNzraBUUj2ZfkyP4dtlQL Cty7Chp6VxlSESn/nBC0syR4jUChmBKiiSJr9nxg1zyjz/u1v3/EXs6L0LPLxtRlee i1jJHyO39c+l1aNbvOBlTwXUAiUun2UU++4ykeow= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list Subject: [PATCH rdma-next 43/43] RDMA/cm: Convert SIDR_REP to new scheme Date: Sun, 27 Oct 2019 09:06:21 +0200 Message-Id: <20191027070621.11711-44-leon@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027070621.11711-1-leon@kernel.org> References: <20191027070621.11711-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 bc0535608bb5..beb67eef5fb4 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3480,10 +3480,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)); + CM_SET(SIDR_REP_STATUS, sidr_rep_msg, param->status); + CM_SET(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); + CM_SET(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); @@ -3551,11 +3551,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 = CM_GET(SIDR_REP_STATUS, sidr_rep_msg); + param->qkey = CM_GET(SIDR_REP_Q_KEY, sidr_rep_msg); + param->qpn = CM_GET(SIDR_REP_QPN, sidr_rep_msg); param->info = &sidr_rep_msg->info; - param->info_len = sidr_rep_msg->info_length; + param->info_len = + CM_GET(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 0bf214a5f388..dba60f8dfafb 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -562,18 +562,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 */