Re: [PATCH v2] PCI: Mask Replay Timer Timeout for Realtek RTS525A

From: Max Lee

Date: Thu Jul 02 2026 - 03:10:42 EST


On Thu, Jul 02, 2026 at 07:10:46AM +0200, Lukas Wunner wrote:
> It would be good to have full dmesg output for analysis because this
> is all a little murky.

Thanks Mani, Bjorn and Lukas for the detailed analysis.

I collected full boot dmesg and lspci -vv from the affected system.

The system is:

HP ZBook Power 16 inch G11 Mobile Workstation PC
BIOS: W97 Ver. 01.09.01, 03/02/2026
Kernel: 6.17.0-1012-oem

The topology is a direct Root Port -> Endpoint connection, with no switch
in between:

0000:00:1c.6-[58]----00.0 Realtek RTS525A PCI Express Card Reader

The log shows that OS-native AER is in control:

acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug SHPCHotplug PME
AER PCIeCapability LTR DPC]
pcieport 0000:00:1c.6: AER: enabled with IRQ 127

I did not find GHES/HEST/Firmware First AER messages in dmesg/journal for
this boot.

The storm starts after the PCIe port driver enables AER on 0000:00:1c.6
and immediately after rtsx_pci enables the endpoint:

[ 0.798443] pcieport 0000:00:1c.6: AER: enabled with IRQ 127
[ 1.057380] rtsx_pci 0000:58:00.0: enabling device (0000 -> 0002)
[ 1.057399] pcieport 0000:00:1c.6: AER: Correctable error message
received from 0000:58:00.0
[ 1.057405] rtsx_pci 0000:58:00.0: PCIe Bus Error:
severity=Correctable, type=Data Link Layer, (Transmitter ID)
[ 1.057408] rtsx_pci 0000:58:00.0: device [10ec:525a] error
status/mask=00001000/00006000
[ 1.057411] rtsx_pci 0000:58:00.0: [12] Timeout

Ratelimiting is present, but the interrupt/callback volume is still very
large:

[ 6.058155] aer_ratelimit: 120541 callbacks suppressed
[ 11.059227] aer_ratelimit: 120906 callbacks suppressed

/proc/interrupts later showed IRQ 127 for 0000:00:1c.6
(PCIe PME, aerdrv, PCIe bwctrl) at 940777 interrupts, while the
endpoint's own rtsx_pci MSI had only 6 interrupts.

Both the endpoint and the immediate upstream port expose AER capability.
On this unpatched boot, Replay Timer Timeout is not masked on either side.

Endpoint 0000:58:00.0:

Capabilities: [100 v2] Advanced Error Reporting
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+

Root Port 0000:00:1c.6:

Capabilities: [100 v1] Advanced Error Reporting
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
RootCmd: CERptEn+ NFERptEn+ FERptEn+
ErrorSrc: ERR_COR: 5800 ERR_FATAL/NONFATAL: 0000

So for this system, the endpoint does expose AER, and the observed storm
does not require handling the no-endpoint-AER case.

I agree that the v2 wording is imprecise. pci_mask_replay_timer_timeout()
does not necessarily mask a Root Port; it masks the immediate upstream
Downstream Port leading to pdev, which may be a Root Port or a Switch
Downstream Port. If I send v3, I will fix the commit log and code comment
to use that wording instead of "parent root port".

I can also include the full dmesg and lspci output if useful.

Thanks,
Max