Re: [RFC 02/11] powerpc/powernv/ioda: Protect PE list

From
Andrew Donnellan <hidden>
Date
2019-07-02 06:23:19
Reply to
Frederic Barrat, 2019-06-19
On 19/6/19 11:28 pm, Frederic Barrat wrote:
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 <redacted>
Reviewed-by: Andrew Donnellan <redacted>
quoted hunk ↗ jump to hunk
---
  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 3082912e2600..2c063b05bb64 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -1078,8 +1078,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;
  }
  
@@ -3501,7 +3502,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);
-- 
Andrew Donnellan              OzLabs, ADL Canberra
ajd@linux.ibm.com             IBM Australia Limited
Thread (15 messages) 15 messages, 2 authors, 2019-07-02
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help