• Hidetoshi Seto's avatar
    PCI: pcie, aer: report all error before recovery · b1c089b7
    Hidetoshi Seto authored
    This patch is required not to lost error records by action invoked on
    error recovery, such as slot reset etc.
    
    Following sample (real machine + dummy record injected by aer-inject)
    shows that record of 28:00.1 could not be retrieved by recovery of 28:00.0:
    
    - Before:
    
    pcieport-driver 0000:00:02.0: AER: Multiple Uncorrected (Non-Fatal) error received: id=2801
    e1000e 0000:28:00.0: PCIE Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, id=2800(Receiver ID)
    e1000e 0000:28:00.0:   device [8086:1096] error status/mask=00001000/00100000
    e1000e 0000:28:00.0:    [12] Poisoned TLP           (First)
    e1000e 0000:28:00.0:   TLP Header: 00000000 00000001 00000002 00000003
    e1000e 0000:28:00.0: broadcast error_detected message
    e1000e 0000:28:00.0: broadcast slot_reset message
    e1000e 0000:28:00.0: setting latency timer to 64
    e1000e 0000:28:00.0: restoring config space at offset 0x1 (was 0x100547, writing 0x100147)
    e1000e 0000:28:00.0: PME# disabled
    e1000e 0000:28:00.0: PME# disabled
    e1000e 0000:28:00.1: setting latency timer to 64
    e1000e 0000:28:00.1: restoring config space at offset 0x1 (was 0x100547, writing 0x100147)
    e1000e 0000:28:00.1: PME# disabled
    e1000e 0000:28:00.1: PME# disabled
    e1000e 0000:28:00.0: broadcast resume message
    e1000e 0000:28:00.0: AER driver successfully recovered
    e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
    
    - After:
    
    pcieport-driver 0000:00:02.0: AER: Multiple Uncorrected (Non-Fatal) error received: id=2801
    e1000e 0000:28:00.0: PCIE Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, id=2800(Receiver ID)
    e1000e 0000:28:00.0:   device [8086:1096] error status/mask=00001000/00100000
    e1000e 0000:28:00.0:    [12] Poisoned TLP           (First)
    e1000e 0000:28:00.0:   TLP Header: 00000000 00000001 00000002 00000003
    e1000e 0000:28:00.1: PCIE Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, id=2801(Receiver ID)
    e1000e 0000:28:00.1:   device [8086:1096] error status/mask=00081000/00100000
    e1000e 0000:28:00.1:    [12] Poisoned TLP           (First)
    e1000e 0000:28:00.1:    [19] ECRC
    e1000e 0000:28:00.1:   TLP Header: 00000000 00000001 00000002 00000003
    e1000e 0000:28:00.1:   Error of this Agent(2801) is reported first
    e1000e 0000:28:00.0: broadcast error_detected message
    e1000e 0000:28:00.0: broadcast slot_reset message
    e1000e 0000:28:00.0: setting latency timer to 64
    e1000e 0000:28:00.0: restoring config space at offset 0x1 (was 0x100547, writing 0x100147)
    e1000e 0000:28:00.0: PME# disabled
    e1000e 0000:28:00.0: PME# disabled
    e1000e 0000:28:00.1: setting latency timer to 64
    e1000e 0000:28:00.1: restoring config space at offset 0x1 (was 0x100547, writing 0x100147)
    e1000e 0000:28:00.1: PME# disabled
    e1000e 0000:28:00.1: PME# disabled
    e1000e 0000:28:00.0: broadcast resume message
    e1000e 0000:28:00.0: AER driver successfully recovered
    e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
    Signed-off-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    b1c089b7
aerdrv_core.c 22.9 KB