hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/infiniband/core/nldev.c
....@@ -502,7 +502,7 @@
502502
503503 /* In create_qp() port is not set yet */
504504 if (qp->port && nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, qp->port))
505
- return -EINVAL;
505
+ return -EMSGSIZE;
506506
507507 ret = nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_LQPN, qp->qp_num);
508508 if (ret)
....@@ -541,7 +541,7 @@
541541 struct rdma_cm_id *cm_id = &id_priv->id;
542542
543543 if (port && port != cm_id->port_num)
544
- return 0;
544
+ return -EAGAIN;
545545
546546 if (cm_id->port_num &&
547547 nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, cm_id->port_num))
....@@ -754,6 +754,8 @@
754754 int ret = 0;
755755
756756 table_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_QP);
757
+ if (!table_attr)
758
+ return -EMSGSIZE;
757759
758760 rt = &counter->device->res[RDMA_RESTRACK_QP];
759761 xa_lock(&rt->xa);
....@@ -2146,6 +2148,7 @@
21462148 },
21472149 [RDMA_NLDEV_CMD_SYS_SET] = {
21482150 .doit = nldev_set_sys_set_doit,
2151
+ .flags = RDMA_NL_ADMIN_PERM,
21492152 },
21502153 [RDMA_NLDEV_CMD_STAT_SET] = {
21512154 .doit = nldev_stat_set_doit,