Page MenuHomeFreeBSD

e1000: defer sysctl-driven reinit to the admin task
ClosedPublic

Authored by guest-seuros on Mon, Aug 3, 11:27 PM.
Referenced Files
Unknown Object (File)
Fri, Aug 21, 8:48 PM
Unknown Object (File)
Fri, Aug 21, 11:37 AM
Unknown Object (File)
Fri, Aug 21, 6:33 AM
Unknown Object (File)
Wed, Aug 19, 11:01 AM
Unknown Object (File)
Wed, Aug 19, 5:20 AM
Unknown Object (File)
Tue, Aug 18, 4:56 PM
Unknown Object (File)
Sun, Aug 16, 12:47 PM
Unknown Object (File)
Sun, Aug 16, 12:52 AM
Subscribers

Details

Summary

panic: Lock iflib ctx lock not exclusively locked @

/usr/src/sys/dev/e1000/e1000_ich8lan.c:1906

The assertion is compiled out without INVARIANTS, where the same write
instead resets the MAC and takes the ICH software flag while the queues
stay live and an ioctl or the admin task may be running.

Requesting the reset through iflib and let the admin task perform the
stop/init under the context lock, matching what the VF and SR-IOV paths
already do.

MFC: 1 week

Test Plan

Reproduced the panic on an Intel I218-V (ich8lan) by writing
dev.em.0.eee_control; with the change the same write completes and the
interface reinitializes cleanly.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 75353
Build 72236: arc lint + arc unit

Event Timeline

Owners added a reviewer: Restricted Owners Package.Mon, Aug 3, 11:27 PM
kbowling requested changes to this revision.Tue, Aug 4, 9:05 PM

Can you do the same for media_change and if_resume?

This revision now requires changes to proceed.Tue, Aug 4, 9:05 PM
This revision was not accepted when it landed; it landed in state Needs Revision.Wed, Aug 5, 4:43 AM
This revision was automatically updated to reflect the committed changes.