linux/include/rdma
Jason Gunthorpe 50d5c02ab8 RDMA/nldev: Fix locking when accessing mr->pd
Sashiko points out that, due to rereg_mr, the PD is actually variable and
all the touches in nldev are racy.

Use mr->device instead of mr->pd->device.

Getting the PD restrack ID is more tricky. To avoid disturbing all the
happy paths, add an rdma_restrack_sync() operation which is sort of like
flush_workqueue() or synchronize_irq(): after it returns, all the old
nldev touches to the mr are gone and everything sees the new PD. This
makes it safe to reach into the PD pointer.

Fixes: da5c850782 ("RDMA/nldev: add driver-specific resource tracking")
Link: https://patch.msgid.link/r/4-v1-29ebd2c229b5+fd5-ib_mr_pd_jgg@nvidia.com
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
History 2026-06-08 14:32:43 -03:00
..
frmr_pools.h RDMA/core: Add pinned handles to FRMR pools 2026-03-02 13:45:13 -05:00
ib.h uaccess: remove CONFIG_SET_FS 2022-02-25 09:36:06 +01:00
ib_addr.h RDMA/cma: Always set static rate to 0 for RoCE 2023-06-11 11:26:02 +03:00
ib_cache.h IB/cache: avoid kernel-doc warnings 2026-02-24 05:38:45 -05:00
ib_cm.h RDMA/cm: Correct typedef and bad line warnings 2025-11-12 04:39:12 -05:00
ib_hdrs.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ib_mad.h RDMA/sa_query: Support IB service records resolution 2025-08-13 06:15:56 -04:00
ib_marshall.h RDMA/core: Remove unused ib_copy_path_rec_from_user 2024-12-24 05:00:42 -05:00
ib_pack.h RDMA/core: Remove unused ib_ud_header_unpack 2024-12-24 05:00:42 -05:00
ib_pma.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
ib_sa.h RDMA/sa_query: Support IB service records resolution 2025-08-13 06:15:56 -04:00
ib_smi.h RDMA/mad: Delete duplicated init_query_mad functions 2022-01-05 15:18:36 -04:00
ib_sysfs.h RDMA: Change ops->init_port to ops->port_groups 2021-06-16 20:58:31 -03:00
ib_ucaps.h RDMA/core: Move ucaps into ib_uverbs_support.ko 2026-05-26 10:11:43 -03:00
ib_umem.h RDMA/umem: Make ib_umem_is_contiguous() safe on 32 bit 2026-06-05 12:36:33 -03:00
ib_umem_odp.h RDMA/core: Convert UMEM ODP DMA mapping to caching IOVA and page linkage 2025-05-12 06:06:51 -04:00
ib_verbs.h RDMA/nldev: Fix locking when accessing mr->pd 2026-06-08 14:32:43 -03:00
iba.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ibta_vol1_c12.h RDMA/cm: Add Enhanced Connection Establishment (ECE) bits 2020-05-27 16:05:05 -03:00
iter.h RDMA: Move DMA block iterator logic into dedicated files 2026-02-25 08:15:30 -05:00
iw_cm.h RDMA/iwcm: fix some kernel-doc issues in iw_cm.h 2026-02-24 05:39:13 -05: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/OPA: Update OPA link speed list 2026-03-11 15:17:28 -04:00
opa_smi.h RDMA/include: Replace license text with SPDX tags 2020-07-29 14:48:36 -03:00
rdma_cm.h RDMA/core: Check id_priv->restricted_node_type in cma_listen_on_dev() 2026-02-25 07:50:10 -05: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/core: Pass port to counter bind/unbind operations 2025-03-18 06:18:46 -04:00
rdma_netlink.h RDMA/nldev: Add dellink function pointer 2026-03-30 13:47:43 -04:00
rdma_vt.h RDMA/hfi1: Open-code rvt_set_ibdev_name() 2026-06-05 12:38:42 -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 IB/rdmavt: rdmavt_qp.h: clean up kernel-doc comments 2025-11-06 02:23:23 -05:00
restrack.h RDMA/restrack: fix kernel-doc indicator 2026-02-24 05:39:21 -05:00
rw.h RDMA/core: add rdma_rw_max_sge() helper for SQ sizing 2026-01-28 05:54:53 -05: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/core: Introduce generic buffer descriptor infrastructure for umem 2026-05-29 20:19:57 -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-03-13 08:26:37 -04:00
uverbs_types.h RDMA/core: Remove uverbs_async_event_release() 2026-05-26 10:09:37 -03:00