]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: pci_endpoint: Add BAR subrange mapping test case
authorKoichiro Den <den@valinux.co.jp>
Sat, 24 Jan 2026 14:50:12 +0000 (23:50 +0900)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 29 Jan 2026 23:42:37 +0000 (17:42 -0600)
Add BAR_SUBRANGE_TEST to the pci_endpoint kselftest suite.

The test uses the PCITEST_BAR_SUBRANGE ioctl and will skip when the
chosen BAR is disabled (-ENODATA), when the endpoint/controller does not
support subrange mapping (-EOPNOTSUPP), or when the BAR is reserved for
the test register space (-EBUSY).

Signed-off-by: Koichiro Den <den@valinux.co.jp>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260124145012.2794108-9-den@valinux.co.jp
tools/testing/selftests/pci_endpoint/pci_endpoint_test.c

index 23aac6f97061e0f1906da5e27d1a7e68b6b44ba6..eecb776c33af352390bd7b891fa5bd329501326d 100644 (file)
@@ -70,6 +70,23 @@ TEST_F(pci_ep_bar, BAR_TEST)
        EXPECT_FALSE(ret) TH_LOG("Test failed for BAR%d", variant->barno);
 }
 
+TEST_F(pci_ep_bar, BAR_SUBRANGE_TEST)
+{
+       int ret;
+
+       pci_ep_ioctl(PCITEST_SET_IRQTYPE, PCITEST_IRQ_TYPE_AUTO);
+       ASSERT_EQ(0, ret) TH_LOG("Can't set AUTO IRQ type");
+
+       pci_ep_ioctl(PCITEST_BAR_SUBRANGE, variant->barno);
+       if (ret == -ENODATA)
+               SKIP(return, "BAR is disabled");
+       if (ret == -EBUSY)
+               SKIP(return, "BAR is test register space");
+       if (ret == -EOPNOTSUPP)
+               SKIP(return, "Subrange map is not supported");
+       EXPECT_FALSE(ret) TH_LOG("Test failed for BAR%d", variant->barno);
+}
+
 FIXTURE(pci_ep_basic)
 {
        int fd;