Commit 1bb5091d authored by Jason Gunthorpe's avatar Jason Gunthorpe

RDMA/cma: Remove dead code for kernel rdmacm multicast

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.orgSigned-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 7e85bcda
...@@ -4337,16 +4337,6 @@ static int cma_ib_mc_handler(int status, struct ib_sa_multicast *multicast) ...@@ -4337,16 +4337,6 @@ static int cma_ib_mc_handler(int status, struct ib_sa_multicast *multicast)
else else
pr_debug_ratelimited("RDMA CM: MULTICAST_ERROR: failed to join multicast. status %d\n", pr_debug_ratelimited("RDMA CM: MULTICAST_ERROR: failed to join multicast. status %d\n",
status); 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.status = status;
event.param.ud.private_data = mc->context; event.param.ud.private_data = mc->context;
if (!status) { if (!status) {
...@@ -4600,6 +4590,10 @@ int rdma_join_multicast(struct rdma_cm_id *id, struct sockaddr *addr, ...@@ -4600,6 +4590,10 @@ int rdma_join_multicast(struct rdma_cm_id *id, struct sockaddr *addr,
struct cma_multicast *mc; struct cma_multicast *mc;
int ret; int ret;
/* Not supported for kernel QPs */
if (WARN_ON(id->qp))
return -EINVAL;
/* ULP is calling this wrong. */ /* ULP is calling this wrong. */
if (!id->device || (READ_ONCE(id_priv->state) != RDMA_CM_ADDR_BOUND && if (!id->device || (READ_ONCE(id_priv->state) != RDMA_CM_ADDR_BOUND &&
READ_ONCE(id_priv->state) != RDMA_CM_ADDR_RESOLVED)) READ_ONCE(id_priv->state) != RDMA_CM_ADDR_RESOLVED))
...@@ -4651,11 +4645,6 @@ void rdma_leave_multicast(struct rdma_cm_id *id, struct sockaddr *addr) ...@@ -4651,11 +4645,6 @@ void rdma_leave_multicast(struct rdma_cm_id *id, struct sockaddr *addr)
list_del(&mc->list); list_del(&mc->list);
spin_unlock_irq(&id_priv->lock); 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); BUG_ON(id_priv->cma_dev->device != id->device);
if (rdma_cap_ib_mcast(id->device, id->port_num)) { if (rdma_cap_ib_mcast(id->device, id->port_num)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment