diff options
| author | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-31 23:24:49 +0000 |
|---|---|---|
| committer | Kevin Bowling <kbowling@FreeBSD.org> | 2026-09-02 19:56:14 +0000 |
| commit | 9d59ca793f7097575351d6de2fd61431233b5ed9 (patch) | |
| tree | 0b5b5abc6b292879f984b93864391c3b58c10b6c /source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp | |
| parent | 231dfc99a08874c269593c2e491ce16a618f4ed6 (diff) | |
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/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp')
0 files changed, 0 insertions, 0 deletions
