aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlya Nelkenbaum <ilyan@mellanox.com>2015-02-05 06:53:48 -0500
committerRoland Dreier <roland@purestorage.com>2015-02-17 15:34:52 -0500
commitc2be9dc0e0fa59cc43c2c7084fc42b430809a0fe (patch)
treeb110f2ddd783a48a4b00e8fae4c600c1989aa92d
parentbfa76d49576599a4b9f9b7a71f23d73d6dcff735 (diff)
IB/core: When marshaling ucma path from user-space, clear unused fields
When marshaling a user path to the kernel struct ib_sa_path, we need to zero smac and dmac and set the vlan id to the "no vlan" value. This is to ensure that Ethernet attributes are not used with InfiniBand QPs. Fixes: dd5f03beb4f7 ("IB/core: Ethernet L2 attributes in verbs/cm structures") Signed-off-by: Ilya Nelkenbaum <ilyan@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r--drivers/infiniband/core/ucma.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index 56a4b7ca7ee3..45d67e9228d7 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -1124,6 +1124,9 @@ static int ucma_set_ib_path(struct ucma_context *ctx,
1124 if (!optlen) 1124 if (!optlen)
1125 return -EINVAL; 1125 return -EINVAL;
1126 1126
1127 memset(&sa_path, 0, sizeof(sa_path));
1128 sa_path.vlan_id = 0xffff;
1129
1127 ib_sa_unpack_path(path_data->path_rec, &sa_path); 1130 ib_sa_unpack_path(path_data->path_rec, &sa_path);
1128 ret = rdma_set_ib_paths(ctx->cm_id, &sa_path, 1); 1131 ret = rdma_set_ib_paths(ctx->cm_id, &sa_path, 1);
1129 if (ret) 1132 if (ret)