• Gavin Shan's avatar
    powerpc/eeh: Retrieve PHB from global list · 1a5c2e63
    Gavin Shan authored
    Currently, the existing PHBs are retrieved from the FDT (Flat
    Device Tree) based on the name of FDT node. Specificly, those
    FDT nodes whose names have prefix "pci" are regarded as PHBs.
    That's inappropriate because some PCI bridges possibilly have
    names leading with "pci". It caused EEH is enabled on same
    PCI devices for towice.
    
    The patch fixes the above issue. Besides, the PHBs are expected
    to be figured out from FDT before enable EEH on them. Therefore,
    it's resonable to retrieve the PHBs from the global linked list
    traced by variable "hose_list" insteading poking them from FDT.
    
    For the EEH implementation on pSeries platform, RTAS is critical
    because all low-level functions are implemented based on RTAS.
    Therefore, we should make sure "/rtas" OF node is available and
    ready before to enable EEH core. However, it actually introduced
    duplicate since the previous pSeries platform dependent initialization
    function already do the check. Besides, we want to make eeh core
    platform independent, so RTAS related staff should be removed there.
    The patch removes the duplicate check on "/rtas" OF node for eeh
    core.
    Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    1a5c2e63
eeh.c 34.6 KB