Page MenuHomeFreeBSD

iflib: Remove redundant VLAN events deregistration
ClosedPublic

Authored by piotr.pietruszewski_intel.com on Sep 19 2019, 9:20 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jan 23, 4:58 PM
Unknown Object (File)
Wed, Jan 14, 5:33 PM
Unknown Object (File)
Fri, Jan 9, 10:52 PM
Unknown Object (File)
Tue, Dec 30, 2:42 PM
Unknown Object (File)
Dec 12 2025, 8:50 PM
Unknown Object (File)
Nov 30 2025, 10:15 AM
Unknown Object (File)
Nov 29 2025, 2:11 AM
Unknown Object (File)
Nov 26 2025, 3:57 PM
Subscribers

Details

Summary

r351152 introduced iflib_deregister() function calling
EVENTHANDLER_DEREGISTER() to unregister VLAN events. This patch removes
duplicate of EVENTHANDLER_DEREGISTER() calls placed in
iflib_device_deregister() as this function is now calling
iflib_deregister(). This is to avoid deregistering same event twice.

This patch also adds check in iflib_vlan_register() to prevent
registering VLAN while being in detach.

Patch co-authored by Krzysztof Galazka <krzysztof.galazka@intel.com>,
erj <erj@FreeBSD.org> and Jacob Keller <jacob.e.keller@intel.com>.

Signed-off-by: Piotr Pietruszewski <piotr.pietruszewski@intel.com>

Test Plan

Before applying this patch, kernel panic should be observed after issuing:

for i in {1..10}; do kldunload if_ix; kldload if_ix; done

Usually, less than 10 cycles are needed to trigger the panic. After applying
the patch, panic should be gone.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 26563
Build 24951: arc lint + arc unit