]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
RDMA/mlx5: Check CAP_NET_RAW in user namespace for anchor create
authorParav Pandit <parav@nvidia.com>
Thu, 26 Jun 2025 18:58:06 +0000 (21:58 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 14:39:02 +0000 (16:39 +0200)
[ Upstream commit 14957e8125e767bfd40a3ac61b1d6b8e62ee0a98 ]

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 anchor.

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: 0c6ab0ca9a66 ("RDMA/mlx5: Expose steering anchor to userspace")
Signed-off-by: Parav Pandit <parav@nvidia.com>
Link: https://patch.msgid.link/c2376ca75e7658e2cbd1f619cf28fbe98c906419.1750963874.git.leon@kernel.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/mlx5/fs.c

index de8114ba9c1f6bc98f9cf4b2a88419a1ebaae91c..eabc37f2ac19b2f709d0ea363f39a581211b60c2 100644 (file)
@@ -2989,7 +2989,7 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_STEERING_ANCHOR_CREATE)(
        u32 ft_id;
        int err;
 
-       if (!capable(CAP_NET_RAW))
+       if (!rdma_dev_has_raw_cap(&dev->ib_dev))
                return -EPERM;
 
        err = uverbs_get_const(&ib_uapi_ft_type, attrs,