linux/include/rdma
Maher Sanalla 1a8df82d20 RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject()
[ Upstream commit 81f8f7454a ]

Currently, the IB uverbs API calls uobj_get_uobj_read(), which in turn
uses the rdma_lookup_get_uobject() helper to retrieve user objects.
In case of failure, uobj_get_uobj_read() returns NULL, overriding the
error code from rdma_lookup_get_uobject(). The IB uverbs API then
translates this NULL to -EINVAL, masking the actual error and
complicating debugging. For example, applications calling ibv_modify_qp
that fails with EBUSY when retrieving the QP uobject will see the
overridden error code EINVAL instead, masking the actual error.

Furthermore, based on rdma-core commit:
"2a22f1ced5f3 ("Merge pull request #1568 from jakemoroni/master")"
Kernel's IB uverbs return values are either ignored and passed on as is
to application or overridden with other errnos in a few cases.

Thus, to improve error reporting and debuggability, propagate the
original error from rdma_lookup_get_uobject() instead of replacing it
with EINVAL.

Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
Link: https://patch.msgid.link/64f9d3711b183984e939962c2f83383904f97dfb.1740577869.git.leon@kernel.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-06-04 14:37:57 +02:00
..
ib.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
ib_addr.h RDMA/cma: Always set static rate to 0 for RoCE 2023-06-21 15:59:17 +02:00
ib_cache.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
ib_cm.h RDMA/cm: Remove unused cm_class 2020-08-18 15:43:07 -03:00
ib_hdrs.h IB/hfi1: Move a function from a header file into a .c file 2021-05-28 20:21:20 -03:00
ib_mad.h IB/cm: Simplify ib_cancel_mad() and ib_modify_mad() calls 2021-06-02 15:41:58 -03:00
ib_marshall.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
ib_pack.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
ib_pma.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
ib_sa.h RDMA/core/sa_query: Remove unused function 2021-08-19 14:30:42 -03:00
ib_smi.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
ib_sysfs.h RDMA: Change ops->init_port to ops->port_groups 2021-06-16 20:58:31 -03:00
ib_umem.h RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz 2023-12-13 18:36:40 +01:00
ib_umem_odp.h IB/core: Enable ODP sync without faulting 2020-10-01 16:44:05 -03:00
ib_verbs.h RDMA/core: Don't expose hw_counters outside of init net namespace 2025-04-10 14:32:00 +02:00
iba.h RDMA/cm: Add SET/GET implementations to hide IBA wire format 2020-01-25 15:05:59 -04:00
ibta_vol1_c12.h RDMA/cm: Add Enhanced Connection Establishment (ECE) bits 2020-05-27 16:05:05 -03:00
iw_cm.h RDMA/iwcm: Allow AFONLY binding for IPv6 addresses 2021-03-10 15:30:45 -04:00
iw_portmap.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
lag.h RDMA/core: Add LAG functionality 2020-05-02 20:19:54 -03:00
mr_pool.h Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
opa_addr.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
opa_port_info.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
opa_smi.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
opa_vnic.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
rdma_cm.h IB/cma: Introduce rdma_set_min_rnr_timer() 2021-04-12 19:51:48 -03:00
rdma_cm_ib.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
rdma_counter.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
rdma_netlink.h RDMA/netlink: Add __maybe_unused to static inline in C file 2021-11-25 09:49:07 +01:00
rdma_vt.h RDMA: Fix a typo 2021-03-26 14:07:36 -03:00
rdmavt_cq.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
rdmavt_mr.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
rdmavt_qp.h RDMA/rdmavt: Decouple QP and SGE lists allocations 2021-08-03 13:44:27 -03:00
restrack.h RDMA/restrack: Add support to get resource tracking for SRQ 2021-04-22 10:30:27 -03:00
rw.h RDMA: Support more than 255 rdma ports 2021-03-26 09:31:21 -03:00
signature.h RDMA: Make most headers compile stand alone 2019-07-25 13:58:47 -03:00
tid_rdma_defs.h IB/hfi1: Build TID RDMA WRITE request 2019-02-05 18:07:43 -05:00
uverbs_ioctl.h RDMA/uverbs: Fix -Wunused-function warning 2021-04-01 15:28:49 -03:00
uverbs_named_ioctl.h RDMA/uverbs: Make UVERBS_OBJECT_METHODS to consider line number 2021-04-13 19:36:35 -03:00
uverbs_std_types.h RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject() 2025-06-04 14:37:57 +02:00
uverbs_types.h RDMA/uverbs: Allow drivers to create a new HW object during rereg_mr 2020-12-07 14:06:23 -04:00