On Fri, Jul 05, 2019 at 05:15:59PM +0000, Jason Gunthorpe wrote: > On Fri, Jul 05, 2019 at 07:21:57PM +0300, Leon Romanovsky wrote: > > From: Danit Goldberg <danitg@xxxxxxxxxxxx> > > > > Tag matching with rendezvous offload for RC transport is controlled > > by FW and before this change, it was advertised to user as supported > > without any relation to FW. > > > > Separate tag matching for rendezvous and eager protocols, so users > > will see real capabilities. > > > > Cc: <stable@xxxxxxxxxxxxxxx> # 4.13 > > Fixes: eb761894351d ("IB/mlx5: Fill XRQ capabilities") > > Signed-off-by: Danit Goldberg <danitg@xxxxxxxxxxxx> > > Reviewed-by: Yishai Hadas <yishaih@xxxxxxxxxxxx> > > Reviewed-by: Artemy Kovalyov <artemyko@xxxxxxxxxxxx> > > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > drivers/infiniband/hw/mlx5/main.c | 8 ++++++-- > > include/rdma/ib_verbs.h | 4 ++-- > > 2 files changed, 8 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c > > index 07a05b0b9e42..c2a5780cb394 100644 > > +++ b/drivers/infiniband/hw/mlx5/main.c > > @@ -1046,15 +1046,19 @@ static int mlx5_ib_query_device(struct ib_device *ibdev, > > } > > > > if (MLX5_CAP_GEN(mdev, tag_matching)) { > > - props->tm_caps.max_rndv_hdr_size = MLX5_TM_MAX_RNDV_MSG_SIZE; > > props->tm_caps.max_num_tags = > > (1 << MLX5_CAP_GEN(mdev, log_tag_matching_list_sz)) - 1; > > - props->tm_caps.flags = IB_TM_CAP_RC; > > props->tm_caps.max_ops = > > 1 << MLX5_CAP_GEN(mdev, log_max_qp_sz); > > props->tm_caps.max_sge = MLX5_TM_MAX_SGE; > > } > > > > + if (MLX5_CAP_GEN(mdev, tag_matching) && > > + MLX5_CAP_GEN(mdev, rndv_offload_rc)) { > > + props->tm_caps.flags = IB_TM_CAP_RNDV_RC; > > + props->tm_caps.max_rndv_hdr_size = MLX5_TM_MAX_RNDV_MSG_SIZE; > > + } > > + > > if (MLX5_CAP_GEN(dev->mdev, cq_moderation)) { > > props->cq_caps.max_cq_moderation_count = > > MLX5_MAX_CQ_COUNT; > > diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h > > index 30eb68f36109..c5f8a9f17063 100644 > > +++ b/include/rdma/ib_verbs.h > > @@ -308,8 +308,8 @@ struct ib_rss_caps { > > }; > > > > enum ib_tm_cap_flags { > > - /* Support tag matching on RC transport */ > > - IB_TM_CAP_RC = 1 << 0, > > + /* Support tag matching with rendezvous offload for RC transport */ > > + IB_TM_CAP_RNDV_RC = 1 << 0, > > }; > > This is in the wrong header, right? It predates our all-to-uapi headers approach and moving to UAPI this struct is definitely too much for a fix which should go to stable@. Thanks > > Jason