|
@@ -1553,6 +1553,11 @@ static int __init vfio_init(void)
|
|
|
if (ret)
|
|
|
goto err_cdev_add;
|
|
|
|
|
|
+ /* Start the virqfd cleanup handler used by some VFIO bus drivers */
|
|
|
+ ret = vfio_virqfd_init();
|
|
|
+ if (ret)
|
|
|
+ goto err_virqfd;
|
|
|
+
|
|
|
pr_info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
|
|
|
|
|
|
/*
|
|
@@ -1565,6 +1570,8 @@ static int __init vfio_init(void)
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
+err_virqfd:
|
|
|
+ cdev_del(&vfio.group_cdev);
|
|
|
err_cdev_add:
|
|
|
unregister_chrdev_region(vfio.group_devt, MINORMASK);
|
|
|
err_alloc_chrdev:
|
|
@@ -1579,6 +1586,7 @@ static void __exit vfio_cleanup(void)
|
|
|
{
|
|
|
WARN_ON(!list_empty(&vfio.group_list));
|
|
|
|
|
|
+ vfio_virqfd_exit();
|
|
|
idr_destroy(&vfio.group_idr);
|
|
|
cdev_del(&vfio.group_cdev);
|
|
|
unregister_chrdev_region(vfio.group_devt, MINORMASK);
|