iommufd/selftest: Cover IOMMU_FAULT_QUEUE_ALLOC in iommufd_fail_nth
authorNicolin Chen <nicolinc@nvidia.com>
Tue, 3 Dec 2024 08:02:55 +0000 (00:02 -0800)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 3 Dec 2024 16:15:00 +0000 (12:15 -0400)
This was missing in the series introducing the fault object. Thus, add it.

Link: https://patch.msgid.link/r/d61b9b7f73276cc8f1aef9602bd35c486917506e.1733212723.git.nicolinc@nvidia.com
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
tools/testing/selftests/iommu/iommufd_fail_nth.c

index 22f6fd5f0f7414d45edbc2ce36ad3a4fb83959f3..64b1f8e1b0cf1f250e2f88f84913207e527ef0cb 100644 (file)
@@ -615,7 +615,12 @@ TEST_FAIL_NTH(basic_fail_nth, access_pin_domain)
 /* device.c */
 TEST_FAIL_NTH(basic_fail_nth, device)
 {
+       struct iommu_hwpt_selftest data = {
+               .iotlb = IOMMU_TEST_IOTLB_DEFAULT,
+       };
        struct iommu_test_hw_info info;
+       uint32_t fault_id, fault_fd;
+       uint32_t fault_hwpt_id;
        uint32_t ioas_id;
        uint32_t ioas_id2;
        uint32_t stdev_id;
@@ -678,6 +683,15 @@ TEST_FAIL_NTH(basic_fail_nth, device)
        if (_test_cmd_vdevice_alloc(self->fd, viommu_id, idev_id, 0, &vdev_id))
                return -1;
 
+       if (_test_ioctl_fault_alloc(self->fd, &fault_id, &fault_fd))
+               return -1;
+       close(fault_fd);
+
+       if (_test_cmd_hwpt_alloc(self->fd, idev_id, hwpt_id, fault_id,
+                                IOMMU_HWPT_FAULT_ID_VALID, &fault_hwpt_id,
+                                IOMMU_HWPT_DATA_SELFTEST, &data, sizeof(data)))
+               return -1;
+
        return 0;
 }