| From c68e5a6c04ed0ea113e86d76418b463d9ead966e Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 2 Sep 2020 11:11:20 +0300 |
| Subject: RDMA/cma: Remove dead code for kernel rdmacm multicast |
| |
| From: Jason Gunthorpe <jgg@nvidia.com> |
| |
| [ Upstream commit 1bb5091def706732c749df9aae45fbca003696f2 ] |
| |
| There is no kernel user of RDMA CM multicast so this code managing the |
| multicast subscription of the kernel-only internal QP is dead. Remove it. |
| |
| This makes the bug fixes in the next patches much simpler. |
| |
| Link: https://lore.kernel.org/r/20200902081122.745412-7-leon@kernel.org |
| Signed-off-by: Leon Romanovsky <leonro@nvidia.com> |
| Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/infiniband/core/cma.c | 19 ++++--------------- |
| 1 file changed, 4 insertions(+), 15 deletions(-) |
| |
| diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c |
| index 9c3cb8549ac72..f737f347ae1fc 100644 |
| --- a/drivers/infiniband/core/cma.c |
| +++ b/drivers/infiniband/core/cma.c |
| @@ -4293,16 +4293,6 @@ static int cma_ib_mc_handler(int status, struct ib_sa_multicast *multicast) |
| else |
| pr_debug_ratelimited("RDMA CM: MULTICAST_ERROR: failed to join multicast. status %d\n", |
| status); |
| - mutex_lock(&id_priv->qp_mutex); |
| - if (!status && id_priv->id.qp) { |
| - status = ib_attach_mcast(id_priv->id.qp, &multicast->rec.mgid, |
| - be16_to_cpu(multicast->rec.mlid)); |
| - if (status) |
| - pr_debug_ratelimited("RDMA CM: MULTICAST_ERROR: failed to attach QP. status %d\n", |
| - status); |
| - } |
| - mutex_unlock(&id_priv->qp_mutex); |
| - |
| event.status = status; |
| event.param.ud.private_data = mc->context; |
| if (!status) { |
| @@ -4555,6 +4545,10 @@ int rdma_join_multicast(struct rdma_cm_id *id, struct sockaddr *addr, |
| struct cma_multicast *mc; |
| int ret; |
| |
| + /* Not supported for kernel QPs */ |
| + if (WARN_ON(id->qp)) |
| + return -EINVAL; |
| + |
| if (!id->device) |
| return -EINVAL; |
| |
| @@ -4609,11 +4603,6 @@ void rdma_leave_multicast(struct rdma_cm_id *id, struct sockaddr *addr) |
| list_del(&mc->list); |
| spin_unlock_irq(&id_priv->lock); |
| |
| - if (id->qp) |
| - ib_detach_mcast(id->qp, |
| - &mc->multicast.ib->rec.mgid, |
| - be16_to_cpu(mc->multicast.ib->rec.mlid)); |
| - |
| BUG_ON(id_priv->cma_dev->device != id->device); |
| |
| if (rdma_cap_ib_mcast(id->device, id->port_num)) { |
| -- |
| 2.25.1 |
| |