Commit 262af557dd75(powerpc/powernv: Enable M64 aperatus for PHB3)
introduces the concept of compound PE, and they are linked together to
master PE's slaves lish_head with the list field. While this field is
usually used to linked to the phb->ioda.pe_list to represents the PE is
used.

This patch introduces a field "compound" to link those compound PEs.

Signed-off-by: Wei Yang <weiy...@linux.vnet.ibm.com>
---
 arch/powerpc/platforms/powernv/pci-ioda.c |    8 ++++----
 arch/powerpc/platforms/powernv/pci.h      |    1 +
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c 
b/arch/powerpc/platforms/powernv/pci-ioda.c
index 920c252..843457b 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -344,7 +344,7 @@ done:
                } else {
                        pe->flags |= PNV_IODA_PE_SLAVE;
                        pe->master = master_pe;
-                       list_add_tail(&pe->list, &master_pe->slaves);
+                       list_add_tail(&pe->compound, &master_pe->slaves);
                }
        }
 
@@ -428,7 +428,7 @@ static void pnv_ioda_freeze_pe(struct pnv_phb *phb, int 
pe_no)
        if (!(pe->flags & PNV_IODA_PE_MASTER))
                return;
 
-       list_for_each_entry(slave, &pe->slaves, list) {
+       list_for_each_entry(slave, &pe->slaves, compound) {
                rc = opal_pci_eeh_freeze_set(phb->opal_id,
                                             slave->pe_number,
                                             OPAL_EEH_ACTION_SET_FREEZE_ALL);
@@ -464,7 +464,7 @@ static int pnv_ioda_unfreeze_pe(struct pnv_phb *phb, int 
pe_no, int opt)
                return 0;
 
        /* Clear frozen state for slave PEs */
-       list_for_each_entry(slave, &pe->slaves, list) {
+       list_for_each_entry(slave, &pe->slaves, compound) {
                rc = opal_pci_eeh_freeze_clear(phb->opal_id,
                                             slave->pe_number,
                                             opt);
@@ -516,7 +516,7 @@ static int pnv_ioda_get_pe_state(struct pnv_phb *phb, int 
pe_no)
        if (!(pe->flags & PNV_IODA_PE_MASTER))
                return state;
 
-       list_for_each_entry(slave, &pe->slaves, list) {
+       list_for_each_entry(slave, &pe->slaves, compound) {
                rc = opal_pci_eeh_freeze_status(phb->opal_id,
                                                slave->pe_number,
                                                &fstate,
diff --git a/arch/powerpc/platforms/powernv/pci.h 
b/arch/powerpc/platforms/powernv/pci.h
index 070ee88..540ab1e 100644
--- a/arch/powerpc/platforms/powernv/pci.h
+++ b/arch/powerpc/platforms/powernv/pci.h
@@ -73,6 +73,7 @@ struct pnv_ioda_pe {
        /* PEs in compound case */
        struct pnv_ioda_pe      *master;
        struct list_head        slaves;
+       struct list_head        compound;
 
        /* Link in list of PE#s */
        struct list_head        dma_link;
-- 
1.7.9.5

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to