]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
RDMA/mlx5: Check CAP_NET_RAW in user namespace for flow create
authorParav Pandit <parav@nvidia.com>
Thu, 26 Jun 2025 18:58:05 +0000 (21:58 +0300)
committerLeon Romanovsky <leon@kernel.org>
Tue, 1 Jul 2025 09:21:33 +0000 (05:21 -0400)
Currently, the capability check is done in the default
init_user_ns user namespace. When a process runs in a
non default user namespace, such check fails. Due to this
when a process is running using Podman, it fails to create
the flow.

Since the RDMA device is a resource within a network namespace,
use the network namespace associated with the RDMA device to
determine its owning user namespace.

Fixes: 322694412400 ("IB/mlx5: Introduce driver create and destroy flow methods")
Signed-off-by: Parav Pandit <parav@nvidia.com>
Link: https://patch.msgid.link/a4dcd5e3ac6904ef50b19e56942ca6ab0728794c.1750963874.git.leon@kernel.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/mlx5/fs.c

index ebcc05f766e1c0fdf59ab8e642dda1c6a255b07f..58e058c067d3ec846c80cf749cba1b3c8d722bca 100644 (file)
@@ -2459,7 +2459,7 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_CREATE_FLOW)(
        struct mlx5_ib_dev *dev;
        u32 flags;
 
-       if (!capable(CAP_NET_RAW))
+       if (!rdma_uattrs_has_raw_cap(attrs))
                return -EPERM;
 
        fs_matcher = uverbs_attr_get_obj(attrs,