[Bug 279245] igc(4) I226 (and I225) TX hangups
[email protected] Fri, 31 Jul 2026 09:43:59 +0000
| Newsgroups | gmane.os.freebsd.devel.net |
|---|---|
| Message-ID | <[email protected]/bugzilla/> |
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D279245 --- Comment #17 from [email protected] --- A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=3D9d30fd353dd3eacb095ce98cb9c91ec01= 5b9af64 commit 9d30fd353dd3eacb095ce98cb9c91ec015b9af64 Author: Michael Adler <[email protected]> AuthorDate: 2026-07-09 17:02:37 +0000 Commit: Kevin Bowling <[email protected]> CommitDate: 2026-07-31 09:33:54 +0000 igc: Disable ASPM L1.2 on I226 to prevent RX stalls I226 parts advertise support for the PCIe L1.2 link substate, but a hardware erratum makes the exit latency from that low-power state longer than the packet buffer can absorb under load. This stalls the inbound packet stream. Disabling ASPM system-wide (BIOS or OS ASPM policy) does not fix it. The L1.2 enable bit must be cleared directly in the device's own PCIe L1 PM extended capability. Add igc_is_device_id_i226() to identify affected parts and igc_disable_broken_aspm_l1_2() to clear the ASPM L1.2 enable bit on attach and after resume, since PCIe config space can be reset across a suspend/resume cycle. Adapted from the Linux igc driver: 0325143b59c6 igc: disable L1.2 PCI-E link substate to avoid performance issue 1468c1f97cf3 igc: fix disabling L1.2 PCI-E link substate on I226 on init Signed-off-by: Michael Adler <[email protected]> PR: 279245 Reviewed by: Jim Thompson MFC after: 1 week Pull-Request: https://github.com/freebsd/freebsd-src/pull/2318 sys/dev/igc/if_igc.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ sys/dev/igc/igc_base.c | 21 +++++++++++++++++++++ sys/dev/igc/igc_base.h | 1 + 3 files changed, 66 insertions(+) --=20 You are receiving this mail because: You are the assignee for the bug.=