From: Damien Le Moal Date: Thu, 17 Oct 2024 01:58:39 +0000 (+0900) Subject: PCI: rockchip-ep: Improve rockchip_pcie_ep_map_addr() X-Git-Tag: microblaze-v6.16~472^2~5^2~9 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=d8dbd21cfafd653b02ec187e59e0bcfaebd9a884;p=linux-2.6-microblaze.git PCI: rockchip-ep: Improve rockchip_pcie_ep_map_addr() Add a check to verify that the outbound region to be used for mapping an address is not already in use. Link: https://lore.kernel.org/r/20241017015849.190271-5-dlemoal@kernel.org Signed-off-by: Damien Le Moal Signed-off-by: Krzysztof WilczyƄski Signed-off-by: Bjorn Helgaas Reviewed-by: Manivannan Sadhasivam --- diff --git a/drivers/pci/controller/pcie-rockchip-ep.c b/drivers/pci/controller/pcie-rockchip-ep.c index b4db5459727f..24ee1df17a49 100644 --- a/drivers/pci/controller/pcie-rockchip-ep.c +++ b/drivers/pci/controller/pcie-rockchip-ep.c @@ -246,6 +246,9 @@ static int rockchip_pcie_ep_map_addr(struct pci_epc *epc, u8 fn, u8 vfn, struct rockchip_pcie *pcie = &ep->rockchip; u32 r = rockchip_ob_region(addr); + if (test_bit(r, &ep->ob_region_map)) + return -EBUSY; + rockchip_pcie_prog_ep_ob_atu(pcie, fn, r, addr, pci_addr, size); set_bit(r, &ep->ob_region_map);