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 <[email protected]>
Applied to pci/endpoint!
- 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
>
--
மணிவண்ணன் சதாசிவம்