Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

PCI: dwc: ep: Return after clearing BAR-match inbound mapping

dw_pcie_ep_clear_ib_maps() first checks whether the inbound mapping for a
BAR is in BAR Match Mode (tracked via ep_func->bar_to_atu[bar]). Once
found, the iATU region is disabled and the bookkeeping is cleared.

BAR Match Mode and Address Match Mode mappings are mutually exclusive for a
given BAR, so there is nothing left for the Address Match Mode teardown
path to do after the BAR Match Mode mapping has been removed.

Return early after clearing the BAR Match Mode mapping to avoid running the
Address Match Mode teardown path. This makes the helper's intention
explicit and helps detect incorrect use of pci_epc_set_bar().

Suggested-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Koichiro Den <den@valinux.co.jp>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Link: https://patch.msgid.link/20260202145407.503348-2-den@valinux.co.jp

authored by

Koichiro Den and committed by
Bjorn Helgaas
88a71941 5ddb6696

+1
+1
drivers/pci/controller/dwc/pcie-designware-ep.c
··· 165 165 dw_pcie_disable_atu(pci, PCIE_ATU_REGION_DIR_IB, atu_index); 166 166 clear_bit(atu_index, ep->ib_window_map); 167 167 ep_func->bar_to_atu[bar] = 0; 168 + return; 168 169 } 169 170 170 171 /* Tear down all Address Match Mode mappings, if any. */