From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 13908C43603 for ; Thu, 12 Dec 2019 09:39:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DAD7A22527 for ; Thu, 12 Dec 2019 09:39:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143588; bh=hY2TOofrphCS8ZDM9L8nIENdjtuB0sUUwpoGkFFxwkw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=XoiCZOMvI1It6ntxSDakxkEzLCCNWfS4Z6hqcdFVmvJWJ/AggVvo+pZvHobyvkCPS L+gFb2uVM5ZOn4iz5fGGIkOkGbpSJT4Jmr+DJbI2DuOuOkd3c4BsPGX/SrmOrgzM+g FzZxxtRaHSmakxP0rWXjNov15lhoNfb38mzoW99M= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728382AbfLLJjs (ORCPT ); Thu, 12 Dec 2019 04:39:48 -0500 Received: from mail.kernel.org ([198.145.29.99]:40154 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728349AbfLLJjs (ORCPT ); Thu, 12 Dec 2019 04:39:48 -0500 Received: from localhost (unknown [193.47.165.251]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C9A402173E; Thu, 12 Dec 2019 09:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576143587; bh=hY2TOofrphCS8ZDM9L8nIENdjtuB0sUUwpoGkFFxwkw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RuwKoURwvrJ4sqO2C1V2xw7X1B0gzvO1qAqqKyeVGpkyHJNtiUZNfY7kkSCJ4q0nU 6pZFyipRzOFZKpkmIPrL9J0G7XdDIZV7wyYeIOO+AgDSFQJ7vkGag9M9OkitCM6jUR quTnmsM4iupDufn5E2OlR5KmHWOjC8CR2ePqas3s= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , RDMA mailing list , Bart Van Assche , Sean Hefty Subject: [PATCH rdma-rc v2 22/48] RDMA/cm: Convert starting PSN to be u32 variable Date: Thu, 12 Dec 2019 11:38:04 +0200 Message-Id: <20191212093830.316934-23-leon@kernel.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191212093830.316934-1-leon@kernel.org> References: <20191212093830.316934-1-leon@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Remove extra conversion between be32<->u32 for starting PSN by using newly created IBA_GET/IBA_SET macros. Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 24 ++++++++++++------------ drivers/infiniband/core/cm_msgs.h | 24 ------------------------ 2 files changed, 12 insertions(+), 36 deletions(-) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index c60ec7967744..e9123f3b8f43 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -253,8 +253,8 @@ struct cm_id_private { u32 local_qpn; u32 remote_qpn; enum ib_qp_type qp_type; - __be32 sq_psn; - __be32 rq_psn; + u32 sq_psn; + u32 rq_psn; int timeout_ms; enum ib_mtu path_mtu; __be16 pkey; @@ -1285,7 +1285,7 @@ static void cm_format_req(struct cm_req_msg *req_msg, param->remote_cm_response_timeout); cm_req_set_qp_type(req_msg, param->qp_type); IBA_SET(CM_REQ_END_TO_END_FLOW_CONTROL, req_msg, param->flow_control); - cm_req_set_starting_psn(req_msg, cpu_to_be32(param->starting_psn)); + IBA_SET(CM_REQ_STARTING_PSN, req_msg, param->starting_psn); cm_req_set_local_resp_timeout(req_msg, param->local_cm_response_timeout); req_msg->pkey = param->primary_path->pkey; @@ -1459,7 +1459,7 @@ int ib_send_cm_req(struct ib_cm_id *cm_id, cm_id_priv->msg->context[1] = (void *) (unsigned long) IB_CM_REQ_SENT; cm_id_priv->local_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); - cm_id_priv->rq_psn = cm_req_get_starting_psn(req_msg); + cm_id_priv->rq_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); spin_lock_irqsave(&cm_id_priv->lock, flags); ret = ib_post_send_mad(cm_id_priv->msg, NULL); @@ -1694,7 +1694,7 @@ static void cm_format_req_event(struct cm_work *work, param->remote_qkey = be32_to_cpu(req_msg->local_qkey); param->remote_qpn = IBA_GET(CM_REQ_LOCAL_QPN, req_msg); param->qp_type = cm_req_get_qp_type(req_msg); - param->starting_psn = be32_to_cpu(cm_req_get_starting_psn(req_msg)); + param->starting_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); param->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); param->initiator_depth = IBA_GET(CM_REQ_RESPONDED_RESOURCES, req_msg); param->local_cm_response_timeout = @@ -2034,7 +2034,7 @@ static int cm_req_handler(struct cm_work *work) cm_id_priv->responder_resources = IBA_GET(CM_REQ_INITIATOR_DEPTH, req_msg); cm_id_priv->path_mtu = cm_req_get_path_mtu(req_msg); cm_id_priv->pkey = req_msg->pkey; - cm_id_priv->sq_psn = cm_req_get_starting_psn(req_msg); + cm_id_priv->sq_psn = IBA_GET(CM_REQ_STARTING_PSN, req_msg); cm_id_priv->retry_count = cm_req_get_retry_count(req_msg); cm_id_priv->rnr_retry_count = cm_req_get_rnr_retry_count(req_msg); cm_id_priv->qp_type = cm_req_get_qp_type(req_msg); @@ -2061,7 +2061,7 @@ static void cm_format_rep(struct cm_rep_msg *rep_msg, cm_format_mad_hdr(&rep_msg->hdr, CM_REP_ATTR_ID, cm_id_priv->tid); rep_msg->local_comm_id = cm_id_priv->id.local_id; rep_msg->remote_comm_id = cm_id_priv->id.remote_id; - cm_rep_set_starting_psn(rep_msg, cpu_to_be32(param->starting_psn)); + IBA_SET(CM_REP_STARTING_PSN, rep_msg, param->starting_psn); rep_msg->resp_resources = param->responder_resources; cm_rep_set_target_ack_delay(rep_msg, cm_id_priv->av.port->cm_dev->ack_delay); @@ -2127,7 +2127,7 @@ int ib_send_cm_rep(struct ib_cm_id *cm_id, cm_id_priv->msg = msg; cm_id_priv->initiator_depth = param->initiator_depth; cm_id_priv->responder_resources = param->responder_resources; - cm_id_priv->rq_psn = cm_rep_get_starting_psn(rep_msg); + cm_id_priv->rq_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); WARN_ONCE(param->qp_num & 0xFF000000, "IBTA declares QPN to be 24 bits, but it is 0x%X\n", param->qp_num); @@ -2218,7 +2218,7 @@ static void cm_format_rep_event(struct cm_work *work, enum ib_qp_type qp_type) IBA_GET(CM_REP_LOCAL_EE_CONTEXT_NUMBER, rep_msg); else param->remote_qpn = IBA_GET(CM_REP_LOCAL_QPN, rep_msg); - param->starting_psn = be32_to_cpu(cm_rep_get_starting_psn(rep_msg)); + param->starting_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); param->responder_resources = rep_msg->initiator_depth; param->initiator_depth = rep_msg->resp_resources; param->target_ack_delay = cm_rep_get_target_ack_delay(rep_msg); @@ -2365,7 +2365,7 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv->remote_qpn = IBA_GET(CM_REP_LOCAL_QPN, rep_msg); cm_id_priv->initiator_depth = rep_msg->resp_resources; cm_id_priv->responder_resources = rep_msg->initiator_depth; - cm_id_priv->sq_psn = cm_rep_get_starting_psn(rep_msg); + cm_id_priv->sq_psn = IBA_GET(CM_REP_STARTING_PSN, rep_msg); cm_id_priv->rnr_retry_count = cm_rep_get_rnr_retry_count(rep_msg); cm_id_priv->target_ack_delay = cm_rep_get_target_ack_delay(rep_msg); cm_id_priv->av.timeout = @@ -4154,7 +4154,7 @@ static int cm_init_qp_rtr_attr(struct cm_id_private *cm_id_priv, qp_attr->ah_attr = cm_id_priv->av.ah_attr; qp_attr->path_mtu = cm_id_priv->path_mtu; qp_attr->dest_qp_num = cm_id_priv->remote_qpn; - qp_attr->rq_psn = be32_to_cpu(cm_id_priv->rq_psn); + qp_attr->rq_psn = cm_id_priv->rq_psn; if (cm_id_priv->qp_type == IB_QPT_RC || cm_id_priv->qp_type == IB_QPT_XRC_TGT) { *qp_attr_mask |= IB_QP_MAX_DEST_RD_ATOMIC | @@ -4203,7 +4203,7 @@ static int cm_init_qp_rts_attr(struct cm_id_private *cm_id_priv, case IB_CM_ESTABLISHED: if (cm_id_priv->id.lap_state == IB_CM_LAP_UNINIT) { *qp_attr_mask = IB_QP_STATE | IB_QP_SQ_PSN; - qp_attr->sq_psn = be32_to_cpu(cm_id_priv->sq_psn); + qp_attr->sq_psn = cm_id_priv->sq_psn; switch (cm_id_priv->qp_type) { case IB_QPT_RC: case IB_QPT_XRC_INI: diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h index fc05a42e125d..47f66c1793a7 100644 --- a/drivers/infiniband/core/cm_msgs.h +++ b/drivers/infiniband/core/cm_msgs.h @@ -70,18 +70,6 @@ struct cm_req_msg { } __packed; -static inline __be32 cm_req_get_starting_psn(struct cm_req_msg *req_msg) -{ - return cpu_to_be32(be32_to_cpu(req_msg->offset44) >> 8); -} - -static inline void cm_req_set_starting_psn(struct cm_req_msg *req_msg, - __be32 starting_psn) -{ - req_msg->offset44 = cpu_to_be32((be32_to_cpu(starting_psn) << 8) | - (be32_to_cpu(req_msg->offset44) & 0x000000FF)); -} - static inline u8 cm_req_get_local_resp_timeout(struct cm_req_msg *req_msg) { return (u8) ((be32_to_cpu(req_msg->offset44) & 0xF8) >> 3); @@ -379,18 +367,6 @@ struct cm_rep_msg { } __packed; -static inline __be32 cm_rep_get_starting_psn(struct cm_rep_msg *rep_msg) -{ - return cpu_to_be32(be32_to_cpu(rep_msg->offset20) >> 8); -} - -static inline void cm_rep_set_starting_psn(struct cm_rep_msg *rep_msg, - __be32 starting_psn) -{ - rep_msg->offset20 = cpu_to_be32((be32_to_cpu(starting_psn) << 8) | - (be32_to_cpu(rep_msg->offset20) & 0x000000FF)); -} - static inline u8 cm_rep_get_target_ack_delay(struct cm_rep_msg *rep_msg) { return (u8) (rep_msg->offset26 >> 3); -- 2.20.1