.. | .. |
---|
1842 | 1842 | attr->path_mtu = cmd->base.path_mtu; |
---|
1843 | 1843 | if (cmd->base.attr_mask & IB_QP_PATH_MIG_STATE) |
---|
1844 | 1844 | attr->path_mig_state = cmd->base.path_mig_state; |
---|
1845 | | - if (cmd->base.attr_mask & IB_QP_QKEY) |
---|
| 1845 | + if (cmd->base.attr_mask & IB_QP_QKEY) { |
---|
| 1846 | + if (cmd->base.qkey & IB_QP_SET_QKEY && !capable(CAP_NET_RAW)) { |
---|
| 1847 | + ret = -EPERM; |
---|
| 1848 | + goto release_qp; |
---|
| 1849 | + } |
---|
1846 | 1850 | attr->qkey = cmd->base.qkey; |
---|
| 1851 | + } |
---|
1847 | 1852 | if (cmd->base.attr_mask & IB_QP_RQ_PSN) |
---|
1848 | 1853 | attr->rq_psn = cmd->base.rq_psn; |
---|
1849 | 1854 | if (cmd->base.attr_mask & IB_QP_SQ_PSN) |
---|
.. | .. |
---|
3773 | 3778 | IB_USER_VERBS_EX_CMD_MODIFY_CQ, |
---|
3774 | 3779 | ib_uverbs_ex_modify_cq, |
---|
3775 | 3780 | UAPI_DEF_WRITE_I(struct ib_uverbs_ex_modify_cq), |
---|
3776 | | - UAPI_DEF_METHOD_NEEDS_FN(create_cq))), |
---|
| 3781 | + UAPI_DEF_METHOD_NEEDS_FN(modify_cq))), |
---|
3777 | 3782 | |
---|
3778 | 3783 | DECLARE_UVERBS_OBJECT( |
---|
3779 | 3784 | UVERBS_OBJECT_DEVICE, |
---|