mirror of https://gitlab.com/qemu-project/qemu
vfio/iommufd: Return errno in iommufd_cdev_attach_ioas_hwpt()
In preparation to implement auto domains have the attach function return the errno it got during domain attach instead of a bool. -EINVAL is tracked to track domain incompatibilities, and decide whether to create a new IOMMU domain. Signed-off-by: Joao Martins <joao.m.martins@oracle.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
This commit is contained in:
parent
2d1bf25897
commit
b07dcb7d4f
|
@ -172,7 +172,7 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool iommufd_cdev_attach_ioas_hwpt(VFIODevice *vbasedev, uint32_t id,
|
static int iommufd_cdev_attach_ioas_hwpt(VFIODevice *vbasedev, uint32_t id,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
int iommufd = vbasedev->iommufd->fd;
|
int iommufd = vbasedev->iommufd->fd;
|
||||||
|
@ -187,12 +187,12 @@ static bool iommufd_cdev_attach_ioas_hwpt(VFIODevice *vbasedev, uint32_t id,
|
||||||
error_setg_errno(errp, errno,
|
error_setg_errno(errp, errno,
|
||||||
"[iommufd=%d] error attach %s (%d) to id=%d",
|
"[iommufd=%d] error attach %s (%d) to id=%d",
|
||||||
iommufd, vbasedev->name, vbasedev->fd, id);
|
iommufd, vbasedev->name, vbasedev->fd, id);
|
||||||
return false;
|
return -errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_iommufd_cdev_attach_ioas_hwpt(iommufd, vbasedev->name,
|
trace_iommufd_cdev_attach_ioas_hwpt(iommufd, vbasedev->name,
|
||||||
vbasedev->fd, id);
|
vbasedev->fd, id);
|
||||||
return true;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool iommufd_cdev_detach_ioas_hwpt(VFIODevice *vbasedev, Error **errp)
|
static bool iommufd_cdev_detach_ioas_hwpt(VFIODevice *vbasedev, Error **errp)
|
||||||
|
@ -216,7 +216,7 @@ static bool iommufd_cdev_attach_container(VFIODevice *vbasedev,
|
||||||
VFIOIOMMUFDContainer *container,
|
VFIOIOMMUFDContainer *container,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
return iommufd_cdev_attach_ioas_hwpt(vbasedev, container->ioas_id, errp);
|
return !iommufd_cdev_attach_ioas_hwpt(vbasedev, container->ioas_id, errp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void iommufd_cdev_detach_container(VFIODevice *vbasedev,
|
static void iommufd_cdev_detach_container(VFIODevice *vbasedev,
|
||||||
|
|
Loading…
Reference in New Issue