summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core/ucma.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-02-22 22:04:41 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-02-22 22:04:41 +0000
commit61b80086a525c8a6081257ae40da5dee2bcaee16 (patch)
tree675da35e4c03be3a5ca17bf6430e5b51dfed6296 /drivers/infiniband/core/ucma.c
parenta5f17d1f4c2831b9b9bf8b1a537cdbac995d6e13 (diff)
parent230f984662d7e0e4a9597c665fd4f53130666e7d (diff)
downloadlinux-61b80086a525c8a6081257ae40da5dee2bcaee16.tar.bz2
Merge branch 'entry-macro-cleanup' of git://sources.calxeda.com/kernel/linux into for-armsoc
Diffstat (limited to 'drivers/infiniband/core/ucma.c')
-rw-r--r--drivers/infiniband/core/ucma.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index b37b0c02a7b9..5034a87cc72d 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -808,9 +808,12 @@ static ssize_t ucma_accept(struct ucma_file *file, const char __user *inbuf,
return PTR_ERR(ctx);
if (cmd.conn_param.valid) {
- ctx->uid = cmd.uid;
ucma_copy_conn_param(&conn_param, &cmd.conn_param);
+ mutex_lock(&file->mut);
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);