PCI: endpoint: Fix for concurrent memory allocation in OB address region
authorKishon Vijay Abraham I <kishon@ti.com>
Mon, 24 Feb 2020 09:53:36 +0000 (15:23 +0530)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 24 Feb 2020 10:13:48 +0000 (10:13 +0000)
commit04e046ca57ebed3943422dee10eec9e73aec081e
tree507d2a04ccefe9eb00f775f9fd408ba966a0f57e
parent3d3248dbd018502f654064c78efcd2e165ab3486
PCI: endpoint: Fix for concurrent memory allocation in OB address region

pci-epc-mem uses a bitmap to manage the Endpoint outbound (OB) address
region. This address region will be shared by multiple endpoint
functions (in the case of multi function endpoint) and it has to be
protected from concurrent access to avoid updating an inconsistent state.

Use a mutex to protect bitmap updates to prevent the memory
allocation API from returning incorrect addresses.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: stable@vger.kernel.org # v4.14+
drivers/pci/endpoint/pci-epc-mem.c
include/linux/pci-epc.h