Page MenuHomeFreeBSD

axge: fix spurious link down from MII, frozen TX
Needs ReviewPublic

Authored by rkitover_gmail.com on Tue, Mar 3, 1:11 PM.
Referenced Files
Unknown Object (File)
Sun, Mar 8, 2:04 PM
Unknown Object (File)
Sun, Mar 8, 1:57 PM
Unknown Object (File)
Sun, Mar 8, 8:25 AM
Unknown Object (File)
Thu, Mar 5, 1:50 AM
Unknown Object (File)
Thu, Mar 5, 1:34 AM
Unknown Object (File)
Thu, Mar 5, 12:29 AM
Unknown Object (File)
Wed, Mar 4, 11:14 PM
Unknown Object (File)
Wed, Mar 4, 11:05 PM
Subscribers

Details

Reviewers
adrian
Group Reviewers
USB
network
Summary

A race condition in the MII layer causes spurious link down events, see:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252165

. In statchg, on link down, check if the PHY reports the link as
actually down using the BMSR register, if not, force the status of the
link to back up and restart TX. Do the same in a MII linkchg handler.

On actual link up, restart TX in case it went idle and down.

I have tested this patch with two of my USB-C hubs with this Ethernet
interface, and it gives me a stable permanent connection with no
interruptions to my internet connections.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 71152
Build 68035: arc lint + arc unit

Event Timeline

Add Differential Review URL

Add Differential Review URL to commit message.