Skip to content
  • Gavin Shan's avatar
    powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail() · 25980013
    Gavin Shan authored
    The config space of some PCI devices can't be accessed when their
    PEs are in frozen state. Otherwise, fenced PHB might be seen.
    Those PEs are identified with flag EEH_PE_CFG_RESTRICTED, meaing
    EEH_PE_CFG_BLOCKED is set automatically when the PE is put to
    frozen state (EEH_PE_ISOLATED). eeh_slot_error_detail() restores
    PCI device BARs with eeh_pe_restore_bars(), which then calls
    eeh_ops->restore_config() to reinitialize the PCI device in
    (OPAL) firmware. eeh_ops->restore_config() produces PCI config
    access that causes fenced PHB. The problem was reported on below
    adapter:
    
       0001:01:00.0 0200: 14e4:168e (rev 10)
       0001:01:00.0 Ethernet controller: Broadcom Corporation \
                    NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)
    
    This fixes the issue by skipping eeh_pe_restore_bars() in
    eeh_slot_error_detail() when EEH_PE_CFG_BLOCKED is set for the PE.
    
    Fixes: b6541db1
    
     ("powerpc/eeh: Block PCI config access upon frozen PE")
    Cc: stable@vger.kernel.org # v4.0+
    Reported-by: default avatarManvanthara B. Puttashankar <mputtash@in.ibm.com>
    Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    25980013