aboutsummaryrefslogtreecommitdiff
path: root/tools/testing/selftests/iommu/iommufd_utils.h
diff options
context:
space:
mode:
authorGravatar Jason Gunthorpe <jgg@nvidia.com> 2023-07-17 15:12:15 -0300
committerGravatar Jason Gunthorpe <jgg@nvidia.com> 2023-07-26 10:20:41 -0300
commit6583c865dec5493beb4c72fd724eb9d43d8d7ebb (patch)
treebd59bd6893b066879bd10b58d8ced989a8fd97a0 /tools/testing/selftests/iommu/iommufd_utils.h
parentiommufd/selftest: Return the real idev id from selftest mock_domain (diff)
downloadlinux-6583c865dec5493beb4c72fd724eb9d43d8d7ebb.tar.gz
linux-6583c865dec5493beb4c72fd724eb9d43d8d7ebb.tar.bz2
linux-6583c865dec5493beb4c72fd724eb9d43d8d7ebb.zip
iommufd/selftest: Add a selftest for IOMMU_HWPT_ALLOC
Test the basic flow. Link: https://lore.kernel.org/r/19-v8-6659224517ea+532-iommufd_alloc_jgg@nvidia.com Reviewed-by: Kevin Tian <kevin.tian@intel.com> Tested-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'tools/testing/selftests/iommu/iommufd_utils.h')
-rw-r--r--tools/testing/selftests/iommu/iommufd_utils.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/testing/selftests/iommu/iommufd_utils.h b/tools/testing/selftests/iommu/iommufd_utils.h
index 62e01412a767..53b4d3f2d9fc 100644
--- a/tools/testing/selftests/iommu/iommufd_utils.h
+++ b/tools/testing/selftests/iommu/iommufd_utils.h
@@ -98,6 +98,27 @@ static int _test_cmd_mock_domain_replace(int fd, __u32 stdev_id, __u32 pt_id,
EXPECT_ERRNO(_errno, _test_cmd_mock_domain_replace(self->fd, stdev_id, \
pt_id, NULL))
+static int _test_cmd_hwpt_alloc(int fd, __u32 device_id, __u32 pt_id,
+ __u32 *hwpt_id)
+{
+ struct iommu_hwpt_alloc cmd = {
+ .size = sizeof(cmd),
+ .dev_id = device_id,
+ .pt_id = pt_id,
+ };
+ int ret;
+
+ ret = ioctl(fd, IOMMU_HWPT_ALLOC, &cmd);
+ if (ret)
+ return ret;
+ if (hwpt_id)
+ *hwpt_id = cmd.out_hwpt_id;
+ return 0;
+}
+
+#define test_cmd_hwpt_alloc(device_id, pt_id, hwpt_id) \
+ ASSERT_EQ(0, _test_cmd_hwpt_alloc(self->fd, device_id, pt_id, hwpt_id))
+
static int _test_cmd_create_access(int fd, unsigned int ioas_id,
__u32 *access_id, unsigned int flags)
{