• Gavin Shan's avatar
    powerpc/eeh: Block PCI config access upon frozen PE · b6541db1
    Gavin Shan authored
    The problem was found when I tried to inject PCI config error by
    PHB3 PAPR error injection registers into Broadcom Austin 4-ports
    NIC adapter. The frozen PE was reported successfully and EEH core
    started to recover it. However, I run into fenced PHB when dumping
    PCI config space as EEH logs. I was told that PCI config requests
    should not be progagated to the adapter until PE reset is done
    successfully. Otherise, we would run out of PHB internal credits
    and trigger PCT (PCIE Completion Timeout), which leads to the
    fenced PHB.
    
    The patch introduces another PE flag EEH_PE_CFG_RESTRICTED, which
    is set during PE initialization time if the PE includes the specific
    PCI devices that need block PCI config access until PE reset is done.
    When the PE becomes frozen for the first time, EEH_PE_CFG_BLOCKED is
    set if the PE has flag EEH_PE_CFG_RESTRICTED. Then the PCI config
    access to the PE will be dropped by platform PCI accessors until
    PE reset is done successfully. The mechanism is shared by PowerNV
    platform owned PE or userland owned ones. It's not used on pSeries
    platform yet.
    Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    b6541db1
eeh_pe.c 22.2 KB