diff options
author | 2023-07-17 15:12:15 -0300 | |
---|---|---|
committer | 2023-07-26 10:20:41 -0300 | |
commit | 6583c865dec5493beb4c72fd724eb9d43d8d7ebb (patch) | |
tree | bd59bd6893b066879bd10b58d8ced989a8fd97a0 /tools/testing/selftests/iommu/iommufd_utils.h | |
parent | iommufd/selftest: Return the real idev id from selftest mock_domain (diff) | |
download | linux-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.h | 21 |
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) { |