From: Sean Hefty Date: Wed, 29 May 2013 17:09:08 +0000 (-0700) Subject: RDMA/cma: Allow enabling reuseaddr in any state X-Git-Tag: next-20130628~70^2~27 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c8dea2f9f078395ebac7c92aeb919f02ff3fca88;p=karo-tx-linux.git RDMA/cma: Allow enabling reuseaddr in any state The rdma_cm only allows setting reuseaddr if the corresponding rdma_cm_id is in the idle state. Allow setting this value in other states. This brings the behavior more inline with sockets. Signed-off-by: Sean Hefty Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 34fbc2f60a09..fde428bd2dad 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -2097,7 +2097,7 @@ int rdma_set_reuseaddr(struct rdma_cm_id *id, int reuse) id_priv = container_of(id, struct rdma_id_private, id); spin_lock_irqsave(&id_priv->lock, flags); - if (id_priv->state == RDMA_CM_IDLE) { + if (reuse || id_priv->state == RDMA_CM_IDLE) { id_priv->reuseaddr = reuse; ret = 0; } else {