<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/ofed, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2026-07-09T15:41:50Z</updated>
<entry>
<title>infiniband/core/ib_addr.c: fix typo</title>
<updated>2026-07-09T15:41:50Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2026-07-09T15:09:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3defe8195684c3ee4cf5295a58967e3face8dce1'/>
<id>urn:sha1:3defe8195684c3ee4cf5295a58967e3face8dce1</id>
<content type='text'>
We should exit the net epoch instead of acquiring one more entry.

Reported by:	Wafa Hamzah &lt;wafah@nvidia.com&gt;
Reviewed by:	jhb
Sponsored by:	Nvidia networking
Fixes:	4726b80d9379 ("OFED: Various changes from Linux 4.20")
Differential revision:	https://reviews.freebsd.org/D58127
</content>
</entry>
<entry>
<title>ofed/ib_uverbs: release rdma_user_mmap entry ref in rdma_umap_close()</title>
<updated>2026-07-07T11:25:23Z</updated>
<author>
<name>Ariel Ehrenberg</name>
<email>aehrenberg@nvidia.com</email>
</author>
<published>2026-06-08T10:56:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a7298669cd53a9fc8446c53db6872bc2f64c508d'/>
<id>urn:sha1:a7298669cd53a9fc8446c53db6872bc2f64c508d</id>
<content type='text'>
Import Linux upstream commit 3411f9f01b76bd88aa6e0e013847ab6479cb4f24.

rdma_umap_priv_init() takes a reference on the rdma_user_mmap entry for
every VMA it maps, but rdma_umap_close() never dropped it.  The entry
was therefore never freed and lingered in ucontext-&gt;mmap_xa, tripping
WARN_ON(!xa_empty(&amp;ucontext-&gt;mmap_xa)) at context teardown and leaking
the firmware UAR on every context close.

Reviewed by:	kib
Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt;
Sponsored by:	Nvidia networking
MFC after:	1 month
</content>
</entry>
<entry>
<title>mlx5: extend mlx5_ib_create_cq struct with fields from the current Linux ABI</title>
<updated>2026-07-07T11:24:11Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2026-06-02T21:59:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=716bb8d3d40250b0b2b40480dc062abfab5665ed'/>
<id>urn:sha1:716bb8d3d40250b0b2b40480dc062abfab5665ed</id>
<content type='text'>
This is backward ABI-compatible, because the only place in kernel that
uses the structure, namely the mlx5_ib_cq.c:mlx5_ib_create_cq()
function, copies in as much structure members as provided by userspace.

Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt;
Sponsored by:	Nvidia networking
MFC after:	1 month
</content>
</entry>
<entry>
<title>ibcore: Fix GID sysctl fallback formatting</title>
<updated>2026-07-06T10:15:02Z</updated>
<author>
<name>Slava Shwartsman</name>
<email>slavash@nvidia.com</email>
</author>
<published>2026-07-02T15:06:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b125b736eaf7da334b07dead671e48ecad3211b3'/>
<id>urn:sha1:b125b736eaf7da334b07dead671e48ecad3211b3</id>
<content type='text'>
When a GID table entry is empty or not yet present in the cache,
show_port_gid() falls back to printing a zero GID.  Use the existing
GID_PRINT_FMT/GID_PRINT_ARGS helpers instead of Linux's %pI6 format,
which FreeBSD printf treats as a pointer followed by "I6".
This makes empty GID sysctl entries consistently report
0000:0000:0000:0000:0000:0000:0000:0000.

Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt; (mlx5_ib)
Reviewed by:	jhb, kib
Sponsored by:	NVIDIA Networking
Fixes:	6a75471dbcf0 ("OFED: Various changes from Linux 4.19")
Differential Revision:	https://reviews.freebsd.org/D58042
</content>
</entry>
<entry>
<title>OFED: Calculate UDP source port based on flow label or lqpn/rqpn</title>
<updated>2026-06-24T19:30:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2026-06-24T19:30:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b6354f04081823cc0ccf2af573a59a826d7763c8'/>
<id>urn:sha1:b6354f04081823cc0ccf2af573a59a826d7763c8</id>
<content type='text'>
Calculate and set UDP source port based on the flow label. If flow label
is not defined in GRH then calculate it based on lqpn/rqpn.

Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt; (mlx5_ib)
Tested by:	John Baldwin &lt;jhb@FreeBSD.org&gt; (iw_cxgbe)
Obtained from:	Linux commit 18451db82ef7f943c60a7fce685f16172bda5106
Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>OFED: A few channges from Linux 5.0</title>
<updated>2026-06-24T19:30:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2026-06-24T19:30:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=45c0d87c57298599397204179c2c4fa0f580a5d9'/>
<id>urn:sha1:45c0d87c57298599397204179c2c4fa0f580a5d9</id>
<content type='text'>
The main point of these changes is the last commit adding a couple of
helper functions used in ROCE drivers.

This contains changes from the following Linux commits:

a70c07397fd8 RDMA: Introduce and use GID attr helper to read RoCE L2 fields
8f9748602491 IB/cm: Reduce dependency on gid attribute ndev check
adb4a57a7a1d RDMA/cma: Use rdma_read_gid_attr_ndev_rcu to access netdev
b4fb4cc5ba83 RDMA/cma: Fix unbalanced cm_id reference count during address resolve
d5665a21250e RDMA/core: Add hash functions to calculate RoCEv2 flowlabel and UDP source port

Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt; (mlx5_ib)
Tested by:	John Baldwin &lt;jhb@FreeBSD.org&gt; (iw_cxgbe)
Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>OFED: Various changes from Linux 4.20</title>
<updated>2026-06-24T19:30:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2026-06-24T19:30:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4726b80d9379cdefd00ae77d0b91973bde573790'/>
<id>urn:sha1:4726b80d9379cdefd00ae77d0b91973bde573790</id>
<content type='text'>
This contains changes from the following Linux commits:

627212c9d49b RDMA/core: Replace open-coded variant of get_device
adee9f3f3bbb RDMA/core: Depend on device_add() to add device attributes
954a8e3aea87 RDMA/cma: Protect cma dev list with lock
722c7b2bfead RDMA/{cma, core}: Avoid callback on rdma_addr_cancel()
f9d08f1e1939 RDMA/core: Rate limit MAD error messages
e1f540c3ed0e RDMA/core: Define client_data_lock as rwlock instead of spinlock
2d65f49ff961 RDMA/core: Use simpler spin lock irq API from blocking context
4512acd0d34c RDMA/core: Remove context entries from list while unregistering device
f7b65d9bf2db RDMA/core: Use simplified list_for_each
93688ddbe1da RDMA/core: No need to protect kfree with spin lock and semaphore
50704e039ab1 RDMA/umem: Restore lockdep check while downgrading lock
eb93c82ed8c7 RDMA/core: Document QP @event_handler function
4269024639f6 RDMA/core: Document CM @event_handler function
77addc524473 RDMA/core: Rename rdma_copy_addr to rdma_copy_src_l2_addr
a362ea1d9e1a RDMA/core: Introduce and use rdma_set_src_addr() between IPv4 and IPv6
89c5691cdd95 RDMA/core: Let protocol specific function typecast sockaddr structure
caf1e3ae9fa6 RDMA/core Introduce and use rdma_find_ndev_for_src_ip_rcu
c31d4b2ddf07 RDMA/core: Protect against changing dst-&gt;dev during destination resolve
0e9d2c19bff1 RDMA/core: Consider net ns of gid attribute for RoCE
d6b1764a8c5a RDMA/core: Introduce rdma_read_gid_attr_ndev_rcu() to check GID attribute
6aaecd385685 RDMA/core: Simplify roce_resolve_route_from_path()
0965cc953a23 RDMA/core: Properly return the error code of rdma_set_src_addr_rcu
d4b4dd1b9706 RDMA/umem: Do not use current-&gt;tgid to track the mm_struct
c9990ab39b6e RDMA/umem: Move all the ODP related stuff out of ucontext and into per_mm
597ecc5a0954 RDMA/umem: Get rid of struct ib_umem.odp_data
41b4deeaa123 RDMA/umem: Make ib_umem_odp into a sub structure of ib_umem
b5231b019d76 RDMA/umem: Use ib_umem_odp in all function signatures connected to ODP
56ac9dd9177c RDMA/umem: Avoid synchronize_srcu in the ODP MR destruction path
be7a57b41ad8 RDMA/umem: Handle a half-complete start/end sequence
ca748c39ea3f RDMA/umem: Get rid of per_mm-&gt;notifier_count
f27a0d50a4bc RDMA/umem: Use umem-&gt;owning_mm inside ODP

Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt; (mlx5_ib)
Tested by:	John Baldwin &lt;jhb@FreeBSD.org&gt; (iw_cxgbe)
Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>OFED: Various changes from Linux 4.19</title>
<updated>2026-06-24T19:30:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2026-06-24T19:30:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6a75471dbcf0fb187cf7918ee1a918fd7c9d002d'/>
<id>urn:sha1:6a75471dbcf0fb187cf7918ee1a918fd7c9d002d</id>
<content type='text'>
Many of these changes deal with shifting from fetcing SGID attributes
via an index in drivers to including references to SGID attributes in
other structures passed to driver callbacks which can be used directly
avoiding the need for fetching attributes via lookup functions.  I had
to fixup the ROCE GID management code directly as the version in
FreeBSD is very different from Linux.

I also tweaked the change from commit
475c8de7bf2dc86d9806709a04e9c8f524d4ec32 to use a goto to reduce diffs
with upstream to minimize conflicts when merging upstream changes.

This contains changes from the following Linux commits:

a1a4caeebac9 IB/core: Do not set the gid type when reserving default entries
1c36cf912ad1 IB/core: Store default GID property per-table instead of per-entry
1dfce2945771 IB: Replace ib_query_gid/ib_get_cached_gid with rdma_query_gid
83f6f8d29dd3 IB/core: Make rdma_find_gid_by_filter support all protocols
c3d71b69a75c IB/core: Provide rdma_ versions of the gid cache API
77e786fcbe2e IB/core: Replace ib_query_gid with rdma_get_gid_attr
bf399c2cadfa IB/core: Introduce GID attribute get, put and hold APIs
f4df9a7c34d8 RDMA: Use GID from the ib_gid_attr during the add_gid() callback
b150c3862d21 IB/core: Introduce GID entry reference counts
47ec38666210 RDMA: Convert drivers to use sgid_attr instead of sgid_index
d97099fe53ed IB{cm, core}: Introduce and use ah_attr copy, move, replace APIs
947c99ecfcb4 IB/core: Tidy ib_resolve_eth_dmac
8d9ec9addd6c IB/core: Add a sgid_attr pointer to struct rdma_ah_attr
89af969a6653 RDMA: Convert drivers to use the AH's sgid_attr in post_wr paths
1a1f460ff151 RDMA: Hold the sgid_attr inside the struct ib_ah/qp
7492052a186b IB/mlx4: Use GID attribute from ah attribute
59d40813328f IB/core: Free GID table entry during GID deletion
881456789248 RDMA/cma: Consider net namespace while leaving multicast group
4ed13a5f2d60 IB/cm: Keep track of the sgid_attr that created the cm id
aa74f4878d61 IB: Make init_ah_attr_grh_fields set sgid_attr
f685c19529f0 IB: Make ib_init_ah_from_mcmember set sgid_attr
b7403217656d IB: Make ib_init_ah_attr_from_wc set sgid_attr
ea8c2d8f6014 RDMA/core: Remove unused ib cache functions
a8872d53e9b7 IB/cm: Use sgid_attr from the AV
398391071f25 IB/cm: Replace members of sa_path_rec with 'struct sgid_attr *'
815d456ef21a IB/cm: Pass the sgid_attr through various events
4eefd62c17a9 include/rdma/opa_addr.h: Fix an endianness issue
f8c2d2280cf6 RDMA/core: Remove set-but-not-used variables
28e39894ed4f RDMA/core: Remove ib_find_cached_gid() and ib_find_cached_gid_by_port()
07e7056aff6c IB/core: Simplify check for RoCE route resolve
40ddacf2dda9 RDMA/umem: Don't hold mmap_sem for too long
1215cb7c88ec RDMA/umem: Refactor exit paths in ib_umem_get
c012691508f5 IB/cm: Remove cma_multicast-&gt;igmp_joined
4b4671a0f269 IB/IPoIB: Simplify ib_post_(send|recv|srq_recv)() calls
1fec77bf8fcd RDMA/core: Simplify ib_post_(send|recv|srq_recv)() calls
bb039a870c05 IB/core: Allow ULPs to specify NULL as the third ib_post_(send|recv|srq_recv)() argument
643d213a9a03 RDMA/cma: Do not ignore net namespace for unbound cm_id
d274e45ce1ed RDMA/cma: Consider netdevice for RoCE ports
cee104334c98 IB/core: Introduce and use sgid_attr in CM requests
7150c3d5544b RDMA/core: Remove {create,destroy}_ah from mandatory verbs
854633165164 RDMA/core: Prefix _ib to IB/RoCE specific functions
7582df826734 RDMA/core: Avoid holding lock while initializing fields on stack
79d684f02647 RDMA/core: Simplify gid type check in cma_acquire_dev()
ca3a8ace2b12 RDMA/core: Return bool instead of int
05e0b86c413d RDMA/cma: Get rid of 1 bit boolean
e7ff98aefc9e RDMA/cma: Constify path record, ib_cm_event, listen_id pointers
2df7dba855e1 RDMA/core: Constify dst_addr argument
219d2e9dfda9 RDMA/cma: Simplify rdma_resolve_addr() error flow
26e551c5aec5 RDMA: Fix return code check in rdma_set_cq_moderation
58796e67d5d5 IB/ucm: Initialize sgid request GID attribute pointer
dd81b2c8a333 IB/core: Change filter function return type from int to bool
93065ac753e4 mm, oom: distinguish blockable mode for mmu notifiers
0d23ba6034b9 RDMA/ucma: check fd type in ucma_migrate_id()

Part of cee104334c98 was previously merged into FreeBSD.  Namely, SGID
index fields had been added to the two param structures instead and
roce_get_net_dev_by_cm_event was implemented using SGID indices.

Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt; (mlx5_ib)
Tested by:	John Baldwin &lt;jhb@FreeBSD.org&gt; (iw_cxgbe)
Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>OFED: Malloc API cleanups from Linux 4.18</title>
<updated>2026-06-24T19:30:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2026-06-24T19:30:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f08a98090229a7d13a8ff2e320696458f6b7c126'/>
<id>urn:sha1:f08a98090229a7d13a8ff2e320696458f6b7c126</id>
<content type='text'>
This contains changes from the following Linux commits:

acafe7e30216 treewide: Use struct_size() for kmalloc()-family
fad953ce0b22 treewide: Use array_size() in vzalloc()
6396bb221514 treewide: kzalloc() -&gt; kcalloc()
6da2ec56059c treewide: kmalloc() -&gt; kmalloc_array()

Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt; (mlx5_ib)
Tested by:	John Baldwin &lt;jhb@FreeBSD.org&gt; (iw_cxgbe)
Sponsored by:	Chelsio Communications
</content>
</entry>
<entry>
<title>OFED: Various changes from Linux 4.18</title>
<updated>2026-06-24T19:30:56Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2026-06-24T19:30:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cd567a22e28a68aebf12cc320d83648b5b68c274'/>
<id>urn:sha1:cd567a22e28a68aebf12cc320d83648b5b68c274</id>
<content type='text'>
This contains changes from the following Linux commits:

e822ff213fe6 IB/cm: Store and restore ah_attr during CM message processing
0e225dcb7681 IB/cm: Store and restore ah_attr during LAP msg processing
a5c57d327272 IB/cm: Avoid AV ah_attr overwriting during LAP message handling
724631a9c6e9 IB/core: Introduce and use rdma_gid_table()
25e62655c793 IB/core: Reduce the places that use zgid
08bb558ac11a IB/core: Make testing MR flags for writability a static inline function

Commit 0e225dcb7681 was partially merged previously as
cm_init_av_for_lap() already existed in FreeBSD matching the version
from the Linux commit.

Tested by:	Wafa Hamzah &lt;wafah@nvidia.com&gt; (mlx5_ib)
Tested by:	John Baldwin &lt;jhb@FreeBSD.org&gt; (iw_cxgbe)
Sponsored by:	Chelsio Communications
</content>
</entry>
</feed>
