Re: [PATCH 12/14] iommufd: Add IOMMU_HWPT_ALLOC

Nicolin Chen
2023-03-06T01:43:16Z

On Fri, Feb 24, 2023 at 08:27:57PM -0400, Jason Gunthorpe wrote:

> +int iommufd_hwpt_alloc(struct iommufd_ucmd *ucmd)
> +{
> + struct iommu_hwpt_alloc *cmd = ucmd->cmd;
> + struct iommufd_hw_pagetable *hwpt;
> + struct iommufd_device *idev;
> + struct iommufd_ioas *ioas;
> + int rc;
> +
> + if (cmd->flags)
> + return -EOPNOTSUPP;
> +
> + idev = iommufd_get_device(ucmd, cmd->dev_id);
> + if (IS_ERR(idev))
> + return PTR_ERR(idev);
> +
> + ioas = iommufd_get_ioas(ucmd, cmd->pt_id);
> + if (IS_ERR(ioas)) {
> + rc = PTR_ERR(idev);

PTR_ERR(ioas)

> + goto out_put_idev;
> + }
> +
> + mutex_lock(&ioas->mutex);
> + hwpt = iommufd_hw_pagetable_alloc(ucmd->ictx, ioas, idev, false);
> + mutex_unlock(&ioas->mutex);
> + if (IS_ERR(hwpt)) {
> + rc = PTR_ERR(idev);

PTR_ERR(hwpt)

Thanks
Nic