Page MenuHomeFreeBSD

e1000: improve and correct link interrupt handling
ClosedPublic

Authored by marius on Oct 7 2019, 7:58 PM.
Tags
None
Referenced Files
F108186673: D21924.diff
Wed, Jan 22, 9:49 AM
Unknown Object (File)
Fri, Jan 17, 3:35 PM
Unknown Object (File)
Dec 9 2024, 4:58 AM
Unknown Object (File)
Dec 7 2024, 8:54 PM
Unknown Object (File)
Nov 23 2024, 3:58 AM
Unknown Object (File)
Nov 20 2024, 1:19 AM
Unknown Object (File)
Nov 19 2024, 10:21 PM
Unknown Object (File)
Sep 30 2024, 5:10 AM
Subscribers

Details

Summary
  • In em_intr(), just call em_handle_link() instead of duplicating it.
  • In em_msix_link(), properly handle IGB-class devices after the iflib(4) conversion again by only setting EM_MSIX_LINK for the EM-class 82574 and by re-arming link interrupts unconditionally, i. e. not only in case of spurious interrupts. This fixes the interface link state change detection for the IGB-class. [1]
  • In em_if_update_admin_status(), only re-arm the link state change interrupt for 82574 and also only if such a device uses MSI-X, i. e. takes advantage of autoclearing. In case of INTx and MSI as well as for LEM- and IGB-class devices, re-arming isn't appropriate here and setting EM_MSIX_LINK isn't either. While at it, consistently take advantage of the hw variable.

PR: 236724 [1]

This revision is intended to obsolete D21769.

Test Plan

This change has been tested to correctly indicate the interface link status for LEM-, EM- and IGB-class devices, both with INTx/MSI and MSI-X for the latter two.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 26914