HomeFreeBSD

re(4): harden re_watchdog() recovery and log controller state

Description

re(4): harden re_watchdog() recovery and log controller state

Distinguish the two failure classes from the PR in a single log line
(ring indices, ISR/IMR, TXCFG, interrupt mode): lost interrupt vs
genuine DMA stall.

Bail out instead of re-initializing when the controller reads back
all-ones (fallen off the bus; reinit cannot help).

Re-assert the driver's existing ASPM-disabled policy before reinit,
since firmware/power transitions re-arming L0s/L1 is a documented
stall trigger.

Diagnostics-only on the recovered path; no fast-path change.

  • Field diagnostics running on an RTL8168H production fleet; the log format distinguishes lost-doorbell / DMA-stall / dead-controller without a debug build.

Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D58279
PR: kern/166724

Details

Provenance
jeremie_jourdin.orgAuthored on Jul 19 2026, 6:47 PM
adrianCommitted on Jul 19 2026, 6:47 PM
Reviewer
adrian
Differential Revision
Restricted Differential Revision
Parents
rGd11f124e932b: re(4): recover Tx completions whose MSI was swallowed in re_intr_msi()
Branches
Unknown
Tags
Unknown