Protect the PHB's list of PE. Probably not needed as long as it was
populated during PHB creation, but it feels right and will become
required once we can add/remove opencapi devices on hotplug.

Signed-off-by: Frederic Barrat <fbar...@linux.ibm.com>
---
 arch/powerpc/platforms/powernv/pci-ioda.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c 
b/arch/powerpc/platforms/powernv/pci-ioda.c
index 92767f006f20..3dbbf5365c1c 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -1080,8 +1080,9 @@ static struct pnv_ioda_pe *pnv_ioda_setup_dev_PE(struct 
pci_dev *dev)
        }
 
        /* Put PE to the list */
+       mutex_lock(&phb->ioda.pe_list_mutex);
        list_add_tail(&pe->list, &phb->ioda.pe_list);
-
+       mutex_unlock(&phb->ioda.pe_list_mutex);
        return pe;
 }
 
@@ -3513,7 +3514,10 @@ static void pnv_ioda_release_pe(struct pnv_ioda_pe *pe)
        struct pnv_phb *phb = pe->phb;
        struct pnv_ioda_pe *slave, *tmp;
 
+       mutex_lock(&phb->ioda.pe_list_mutex);
        list_del(&pe->list);
+       mutex_unlock(&phb->ioda.pe_list_mutex);
+
        switch (phb->type) {
        case PNV_PHB_IODA1:
                pnv_pci_ioda1_release_pe_dma(pe);
-- 
2.21.0

Reply via email to