Page MenuHomeFreeBSD

initialize the STATE_LOCK in iflib_register
ClosedPublic

Authored by jacob.e.keller_intel.com on Thu, Sep 5, 10:32 PM.

Details

Summary

r347197 contained an MFC for r332389, adding the STATE_LOCK to the iflib
core driver. Unfortunately, the commit accidentally missed adding the
STATE_LOCK_INIT.

Without this, if you build a STABLE-11 kernel with INVARIANTS enabled,
any mtx_lock of the state lock will result in a panic:

panic: mtx_lock() of spin mutex (null) @ /usr/src/sys/net/iflib.c:5522

It actually ends up looking like a panic due to taking a spin mutex when
we could be interrupted. However, the real cause is because the lock
class was never initialized.

Initialize the STATE_LOCK properly during iflib_register to fix this.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

This is specifically a fix for 11-STABLE. It's already fixed in CURRENT and STABLE-12. It looks like it was an accidental miss in MFC for STABLE-11 a few months ago.

erj accepted this revision.Mon, Sep 9, 6:03 PM
This revision is now accepted and ready to land.Mon, Sep 9, 6:03 PM
This revision was automatically updated to reflect the committed changes.