Re: [PATCH] PCI: endpoint: pci-epf-test: Roll back BAR mapping when subrange setup fails

From: Christian Bruel

Date: Tue Mar 17 2026 - 06:14:41 EST




On 3/17/26 10:59, Manivannan Sadhasivam wrote:
On Tue, Mar 17, 2026 at 10:13:52AM +0100, Christian Bruel wrote:


On 3/17/26 03:57, Koichiro Den wrote:
On Mon, Mar 16, 2026 at 05:19:26PM +0100, Niklas Cassel wrote:
On Mon, Mar 16, 2026 at 11:02:25PM +0900, Koichiro Den wrote:
When the BAR subrange mapping test on DWC-based platforms fails due to
insufficient free inbound iATU regions,
pci_epf_test_bar_subrange_setup() returns an error (-ENOSPC) but does
not restore the original BAR mapping. This causes subsequent test runs
to become confusing, since the failure may leave room for the next
subrange mapping test to pass.

Fix this by restoring the original BAR mapping when preparation of the
subrange mapping fails, so that no side effect remains regardless of the
test success or failure.

Fixes: 6c5e6101423b ("PCI: endpoint: pci-epf-test: Add BAR subrange mapping test support")
Reported-by: Christian Bruel <christian.bruel@xxxxxxxxxxx>
Closes: https://lore.kernel.org/linux-pci/b2b03ebe-9482-4a13-b22f-7b44da096eed@xxxxxxxxxxx/
Signed-off-by: Koichiro Den <den@xxxxxxxxxxxxx>
---
drivers/pci/endpoint/functions/pci-epf-test.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
index 14e61ebe1f11..f44c36f5cac5 100644
--- a/drivers/pci/endpoint/functions/pci-epf-test.c
+++ b/drivers/pci/endpoint/functions/pci-epf-test.c
@@ -898,16 +898,22 @@ static void pci_epf_test_bar_subrange_setup(struct pci_epf_test *epf_test,
bar->submap = submap;
bar->num_submap = nsub;
ret = pci_epc_set_bar(epc, epf->func_no, epf->vfunc_no, bar);
if (ret) {
dev_err(&epf->dev, "pci_epc_set_bar() failed: %d\n", ret);
bar->submap = old_submap;
bar->num_submap = old_nsub;
+ ret = pci_epc_set_bar(epc, epf->func_no, epf->vfunc_no, bar);
+ if (ret)
+ dev_warn(&epf->dev,
+ "failed to restore the original BAR mapping: %d\n",

Nit:
I would use a capitalized F:
"Failed to restore ..."

in order to match most other prints in this file.

Agree. Bjorn or Mani, please feel free to fix this up (i.e. s/failed/Failed/)
when applying, to avoid a respin for such a minor change.


Reviewed-by: Niklas Cassel <cassel@xxxxxxxxxx>

Thanks again for reviewing, Niklas.

Christian, if possible, it would be very helpful if you could take a look or
test this slightly polished version and add a Tested-by or Reviewed-by.

Tested-by: Christian Bruel <christian.bruel@xxxxxxxxxxx>

with the DISABLE BAR dependency
https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/commit/?h=endpoint&id=33642e9e36dc084e4fc9245a266c9843bc8303b9


Why is this dependency?

no not needed, sorry. will be handler in the stm32 part.


- Mani