aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/core/uverbs_cmd.c3
-rw-r--r--drivers/infiniband/core/verbs.c1
-rw-r--r--include/rdma/ib_verbs.h2
3 files changed, 5 insertions, 1 deletions
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 4d27e4c3fe34..7d801e6252f1 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -1399,6 +1399,9 @@ ssize_t ib_uverbs_create_qp(struct ib_uverbs_file *file,
1399 if (copy_from_user(&cmd, buf, sizeof cmd)) 1399 if (copy_from_user(&cmd, buf, sizeof cmd))
1400 return -EFAULT; 1400 return -EFAULT;
1401 1401
1402 if (cmd.qp_type == IB_QPT_RAW_PACKET && !capable(CAP_NET_RAW))
1403 return -EPERM;
1404
1402 INIT_UDATA(&udata, buf + sizeof cmd, 1405 INIT_UDATA(&udata, buf + sizeof cmd,
1403 (unsigned long) cmd.response + sizeof resp, 1406 (unsigned long) cmd.response + sizeof resp,
1404 in_len - sizeof cmd, out_len - sizeof resp); 1407 in_len - sizeof cmd, out_len - sizeof resp);
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index 575b78045aaf..140f9a5d492f 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -479,6 +479,7 @@ static const struct {
479 [IB_QPT_UD] = (IB_QP_PKEY_INDEX | 479 [IB_QPT_UD] = (IB_QP_PKEY_INDEX |
480 IB_QP_PORT | 480 IB_QP_PORT |
481 IB_QP_QKEY), 481 IB_QP_QKEY),
482 [IB_QPT_RAW_PACKET] = IB_QP_PORT,
482 [IB_QPT_UC] = (IB_QP_PKEY_INDEX | 483 [IB_QPT_UC] = (IB_QP_PKEY_INDEX |
483 IB_QP_PORT | 484 IB_QP_PORT |
484 IB_QP_ACCESS_FLAGS), 485 IB_QP_ACCESS_FLAGS),
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index c3cca5a4dacd..a3fa3232b8a0 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -605,7 +605,7 @@ enum ib_qp_type {
605 IB_QPT_UD, 605 IB_QPT_UD,
606 IB_QPT_RAW_IPV6, 606 IB_QPT_RAW_IPV6,
607 IB_QPT_RAW_ETHERTYPE, 607 IB_QPT_RAW_ETHERTYPE,
608 /* Save 8 for RAW_PACKET */ 608 IB_QPT_RAW_PACKET = 8,
609 IB_QPT_XRC_INI = 9, 609 IB_QPT_XRC_INI = 9,
610 IB_QPT_XRC_TGT, 610 IB_QPT_XRC_TGT,
611 IB_QPT_MAX 611 IB_QPT_MAX