RDMA/mlx5: Block delay drop to unprivileged users
authorMaor Gottlieb <maorg@mellanox.com>
Sun, 22 Mar 2020 12:49:06 +0000 (14:49 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 25 Mar 2020 12:56:30 +0000 (09:56 -0300)
It has been discovered that this feature can globally block the RX port,
so it should be allowed for highly privileged users only.

Fixes: 03404e8ae652("IB/mlx5: Add support to dropless RQ")
Link: https://lore.kernel.org/r/20200322124906.1173790-1-leon@kernel.org
Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx5/qp.c

index c2967982f02c6863cddf4364a743932421230056..8fe149e808af1f3ed32dc4b9fcf74899758fe84b 100644 (file)
@@ -6205,6 +6205,10 @@ struct ib_wq *mlx5_ib_create_wq(struct ib_pd *pd,
        if (udata->outlen && udata->outlen < min_resp_len)
                return ERR_PTR(-EINVAL);
 
+       if (!capable(CAP_SYS_RAWIO) &&
+           init_attr->create_flags & IB_WQ_FLAGS_DELAY_DROP)
+               return ERR_PTR(-EPERM);
+
        dev = to_mdev(pd->device);
        switch (init_attr->wq_type) {
        case IB_WQT_RQ: