aboutsummaryrefslogtreecommitdiff
path: root/source/Core/AddressResolverName.cpp
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-08-31 23:24:49 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-09-02 19:56:14 +0000
commit9d59ca793f7097575351d6de2fd61431233b5ed9 (patch)
tree0b5b5abc6b292879f984b93864391c3b58c10b6c /source/Core/AddressResolverName.cpp
parent231dfc99a08874c269593c2e491ce16a618f4ed6 (diff)
iflib: Do not hold the ifnet lock across registrationHEADmain
iflib_device_register() acquired IFNET_WLOCK to preserve lock order when ether_ifattach() was called with the context lock held. The context lock is now released around ether_ifattach(), making registration-wide ifnet serialization unnecessary. Keeping IFNET_WLOCK across driver attachment also allows synchronous interface event handlers to recurse on it. The rtnetlink interface-group dump does so through if_foreach_group() while handling the interface attachment event. Remove the outer lock and the corresponding failure-path unlock and relock transitions. Continue to drop the context lock around ether_ifattach() and taskqueue drains, and preserve context-lock coverage for driver attach and detach. Validated under WITNESS on 82576 and I226 controllers. Multiple VF attach and detach cycles, netmap control operations, and every iflib registration failure injection point completed without lock or cleanup errors. PR: 298121 Reported by: glebius, netchild, Yuichiro NAITO <naito.yuichiro@gmail.com> Reviewed by: gallatin, glebius Fixes: e0e12405285b ("netmap: fix LOR in iflib_netmap_register") Fixes: 2f8f892ca344 ("rtnetlink: Add FreeBSD-specific IFLAF_GROUP support") Fixes: 90e7dbe5e2ca ("iflib: Add registration failure injection points") MFC after: 2 weeks Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59294
Diffstat (limited to 'source/Core/AddressResolverName.cpp')
0 files changed, 0 insertions, 0 deletions