aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/infiniband/core/ucma.c
diff options
context:
space:
mode:
authorGuy Shapiro <guysh@mellanox.com>2015-10-22 15:20:10 +0300
committerDoug Ledford <dledford@redhat.com>2015-10-28 12:32:48 -0400
commitfa20105e09e97e81aadf02f722c31195e4a75c84 (patch)
treebb25c580d408a2c4a96abda8c49c2751e72bfe52 /drivers/infiniband/core/ucma.c
parentIB/cma: Separate port allocation to network namespaces (diff)
downloadwireguard-linux-fa20105e09e97e81aadf02f722c31195e4a75c84.tar.xz
wireguard-linux-fa20105e09e97e81aadf02f722c31195e4a75c84.zip
IB/cma: Add support for network namespaces
Add support for network namespaces in the ib_cma module. This is accomplished by: 1. Adding network namespace parameter for rdma_create_id. This parameter is used to populate the network namespace field in rdma_id_private. rdma_create_id keeps a reference on the network namespace. 2. Using the network namespace from the rdma_id instead of init_net inside of ib_cma, when listening on an ID and when looking for an ID for an incoming request. 3. Decrementing the reference count for the appropriate network namespace when calling rdma_destroy_id. In order to preserve the current behavior init_net is passed when calling from other modules. Signed-off-by: Guy Shapiro <guysh@mellanox.com> Signed-off-by: Haggai Eran <haggaie@mellanox.com> Signed-off-by: Yotam Kenneth <yotamke@mellanox.com> Signed-off-by: Shachar Raindel <raindel@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/core/ucma.c')
-rw-r--r--drivers/infiniband/core/ucma.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index 3a342dfaac15..e80c107450ab 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -472,7 +472,8 @@ static ssize_t ucma_create_id(struct ucma_file *file, const char __user *inbuf,
return -ENOMEM;
ctx->uid = cmd.uid;
- ctx->cm_id = rdma_create_id(ucma_event_handler, ctx, cmd.ps, qp_type);
+ ctx->cm_id = rdma_create_id(&init_net, ucma_event_handler, ctx, cmd.ps,
+ qp_type);
if (IS_ERR(ctx->cm_id)) {
ret = PTR_ERR(ctx->cm_id);
goto err1;