Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

RDMA/counter: Check CAP_NET_RAW check in user namespace for RDMA counters

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.

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: 1bd8e0a9d0fd ("RDMA/counter: Allow manual mode configuration support")
Signed-off-by: Parav Pandit <parav@nvidia.com>
Link: https://patch.msgid.link/68e2064e72e94558a576fdbbb987681a64f6fea8.1750963874.git.leon@kernel.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>

authored by

Parav Pandit and committed by
Leon Romanovsky
44972819 28ea058a

+1 -1
+1 -1
drivers/infiniband/core/counters.c
··· 461 461 return NULL; 462 462 463 463 qp = container_of(res, struct ib_qp, res); 464 - if (qp->qp_type == IB_QPT_RAW_PACKET && !capable(CAP_NET_RAW)) 464 + if (qp->qp_type == IB_QPT_RAW_PACKET && !rdma_dev_has_raw_cap(dev)) 465 465 goto err; 466 466 467 467 return qp;