From: Damien Le Moal Date: Fri, 4 Oct 2024 14:10:00 +0000 (+0900) Subject: PCI: dwc: endpoint: Clear outbound address on unmap X-Git-Tag: v6.13-rc1~66^2~11^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12dd12821f1eb2755643914df2cc900c5e8c9d12;p=thirdparty%2Fkernel%2Flinux.git PCI: dwc: endpoint: Clear outbound address on unmap Clear the address mapped (outbound_addr array) in dw_pcie_ep_unmap_addr(), to ensure that dw_pcie_find_index() does not match an ATU index that was already unmapped. This is in addition to clearing the ATU index bit in ob_window_map. Link: https://lore.kernel.org/linux-pci/20241004141000.5080-1-dlemoal@kernel.org Signed-off-by: Damien Le Moal [kwilczynski: commit log] Signed-off-by: Krzysztof WilczyƄski Reviewed-by: Manivannan Sadhasivam --- diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index 43ba5c6738df1..b07ace7dc92ed 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -280,6 +280,7 @@ static void dw_pcie_ep_unmap_addr(struct pci_epc *epc, u8 func_no, u8 vfunc_no, if (ret < 0) return; + ep->outbound_addr[atu_index] = 0; dw_pcie_disable_atu(pci, PCIE_ATU_REGION_DIR_OB, atu_index); clear_bit(atu_index, ep->ob_window_map); }