Hi Vlad,

Please, ignore this patch. 

I will send another patch with a fix for the same issue, which is also approved 
by Sean Hefty and submitted upstream.


-----Original Message-----
From: ewg-boun...@lists.openfabrics.org 
[mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of Tatyana Nikolova
Sent: Thursday, August 02, 2012 7:32 PM
To: v...@dev.mellanox.co.il
Cc: ewg@lists.openfabrics.org
Subject: [ewg] [PATCH] RDMA/ucma.c: Fix for ucma context uid=0, causing iWarp 
RDMA applications to fail in connection establishment

Fix for ucma context uid=0, causing iWarp RDMA applications to fail in 
connection establishment.

If the context uid is not set before calling rdma_accept(), the 
RDMA_CM_EVENT_ESTABLISHED event generated asynchronously by successfull 
rdma_accept ends up with zero ucma context uid, resulting in segfault at 
librdmacm.so 

Signed-off-by: Tatyana Nikolova <tatyana.e.nikol...@intel.com>
---
 drivers/infiniband/core/ucma.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index 8002ae6..6cc40de 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -803,9 +803,8 @@ static ssize_t ucma_accept(struct ucma_file *file, const 
char __user *inbuf,
        if (cmd.conn_param.valid) {
                ucma_copy_conn_param(&conn_param, &cmd.conn_param);
                mutex_lock(&file->mut);
+               ctx->uid = cmd.uid;
                ret = rdma_accept(ctx->cm_id, &conn_param);
-               if (!ret)
-                       ctx->uid = cmd.uid;
                mutex_unlock(&file->mut);
        } else
                ret = rdma_accept(ctx->cm_id, NULL);
-- 
1.7.4.2

_______________________________________________
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
_______________________________________________
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to