diff mbox

[v2,11/11] IB/ucm: Add partial support for network namespaces

Message ID 1429520622-10303-12-git-send-email-haggaie@mellanox.com
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

Haggai Eran April 20, 2015, 9:03 a.m. UTC
From: Shachar Raindel <raindel@mellanox.com>

It is impossible to completely support network namespaces for UCM, as
we cannot identify the target IPoIB device. However, we add support
which will work if the user is following the IB-Spec Annex 11 (RDMA IP
CM Services) with the service ID and private data formatting.

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: Guy Shapiro <guysh@mellanox.com>
---
 drivers/infiniband/core/ucm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Ira Weiny April 20, 2015, 11:46 p.m. UTC | #1
On Mon, Apr 20, 2015 at 12:03:42PM +0300, Haggai Eran wrote:
> From: Shachar Raindel <raindel@mellanox.com>
> 
> It is impossible to completely support network namespaces for UCM, as
> we cannot identify the target IPoIB device.
>

As Jasons said it seems like the use of namespaces should be limited to the
RDMA CM layer.  If so I _think_ this patch would not be needed?

Ira


>
> However, we add support
> which will work if the user is following the IB-Spec Annex 11 (RDMA IP
> CM Services) with the service ID and private data formatting.
> 
> 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: Guy Shapiro <guysh@mellanox.com>
> ---
>  drivers/infiniband/core/ucm.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/infiniband/core/ucm.c b/drivers/infiniband/core/ucm.c
> index 9604ab068984..424421091dae 100644
> --- a/drivers/infiniband/core/ucm.c
> +++ b/drivers/infiniband/core/ucm.c
> @@ -45,6 +45,7 @@
>  #include <linux/idr.h>
>  #include <linux/mutex.h>
>  #include <linux/slab.h>
> +#include <linux/nsproxy.h>
>  
>  #include <asm/uaccess.h>
>  
> @@ -490,7 +491,7 @@ static ssize_t ib_ucm_create_id(struct ib_ucm_file *file,
>  	ctx->uid = cmd.uid;
>  	ctx->cm_id = ib_create_cm_id(file->device->ib_dev,
>  				     ib_ucm_event_handler, ctx,
> -				     &init_net);
> +				     current->nsproxy->net_ns);
>  	if (IS_ERR(ctx->cm_id)) {
>  		result = PTR_ERR(ctx->cm_id);
>  		goto err1;
> -- 
> 1.7.11.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/infiniband/core/ucm.c b/drivers/infiniband/core/ucm.c
index 9604ab068984..424421091dae 100644
--- a/drivers/infiniband/core/ucm.c
+++ b/drivers/infiniband/core/ucm.c
@@ -45,6 +45,7 @@ 
 #include <linux/idr.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
+#include <linux/nsproxy.h>
 
 #include <asm/uaccess.h>
 
@@ -490,7 +491,7 @@  static ssize_t ib_ucm_create_id(struct ib_ucm_file *file,
 	ctx->uid = cmd.uid;
 	ctx->cm_id = ib_create_cm_id(file->device->ib_dev,
 				     ib_ucm_event_handler, ctx,
-				     &init_net);
+				     current->nsproxy->net_ns);
 	if (IS_ERR(ctx->cm_id)) {
 		result = PTR_ERR(ctx->cm_id);
 		goto err1;