On Tue, Oct 27, 2020 at 03:19:36PM +0200, Leon Romanovsky wrote: > > +int rdma_connect_locked(struct rdma_cm_id *id, > > + struct rdma_conn_param *conn_param) > > { > > struct rdma_id_private *id_priv = > > container_of(id, struct rdma_id_private, id); > > int ret; > > > > - mutex_lock(&id_priv->handler_mutex); > > if (!cma_comp_exch(id_priv, RDMA_CM_ROUTE_RESOLVED, RDMA_CM_CONNECT)) { > > ret = -EINVAL; > > goto err_unlock; > > Not a big deal, but his label is not correct anymore. Oh, yep diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 193c8902b9db26..f58d19881524dc 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -4053,10 +4053,8 @@ int rdma_connect_locked(struct rdma_cm_id *id, container_of(id, struct rdma_id_private, id); int ret; - if (!cma_comp_exch(id_priv, RDMA_CM_ROUTE_RESOLVED, RDMA_CM_CONNECT)) { - ret = -EINVAL; - goto err_unlock; - } + if (!cma_comp_exch(id_priv, RDMA_CM_ROUTE_RESOLVED, RDMA_CM_CONNECT)) + return -EINVAL; if (!id->qp) { id_priv->qp_num = conn_param->qp_num; @@ -4078,7 +4076,6 @@ int rdma_connect_locked(struct rdma_cm_id *id, return 0; err_state: cma_comp_exch(id_priv, RDMA_CM_CONNECT, RDMA_CM_ROUTE_RESOLVED); -err_unlock: return ret; } EXPORT_SYMBOL(rdma_connect_locked);