]> www.infradead.org Git - users/hch/misc.git/commitdiff
selftests: pci_endpoint: Skip disabled BARs
authorNiklas Cassel <cassel@kernel.org>
Thu, 23 Jan 2025 12:01:49 +0000 (13:01 +0100)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Sat, 8 Mar 2025 14:35:57 +0000 (14:35 +0000)
Currently BARs that have been disabled by the endpoint controller driver
will result in a test FAIL.

Returning FAIL for a BAR that is disabled seems overly pessimistic.

There are EPC that disables one or more BARs intentionally.

One reason for this is that there are certain EPCs that are hardwired to
expose internal PCIe controller registers over a certain BAR, so the EPC
driver disables such a BAR, such that the host will not overwrite random
registers during testing.

Such a BAR will be disabled by the EPC driver's init function, and the
BAR will be marked as BAR_RESERVED, such that it will be unavailable to
endpoint function drivers.

Let's return FAIL only for BARs that are actually enabled and failed the
test, and let's return skip for BARs that are not even enabled.

Signed-off-by: Niklas Cassel <cassel@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20250123120147.3603409-4-cassel@kernel.org
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
tools/testing/selftests/pci_endpoint/pci_endpoint_test.c

index c267b822c1081d84d3a60db86a8a7be78a2eb9dc..576c590b277b10d545b2a96587df41772cfd3e88 100644 (file)
@@ -65,6 +65,8 @@ TEST_F(pci_ep_bar, BAR_TEST)
        int ret;
 
        pci_ep_ioctl(PCITEST_BAR, variant->barno);
+       if (ret == -ENODATA)
+               SKIP(return, "BAR is disabled");
        EXPECT_FALSE(ret) TH_LOG("Test failed for BAR%d", variant->barno);
 }