On Thu, Jan 23, 2025 at 01:01:49PM +0100, Niklas Cassel wrote: > 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@xxxxxxxxxx> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> I was thinking about doing something similar since some of the BAR tests are failing on my Qcom setup. And you beat me to it :) - Mani > --- > tools/testing/selftests/pci_endpoint/pci_endpoint_test.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c b/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c > index c267b822c108..576c590b277b 100644 > --- a/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c > +++ b/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c > @@ -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); > } > > -- > 2.48.1 > -- மணிவண்ணன் சதாசிவம்