vfio: Split virqfd into a separate module for vfio bus drivers

An unintended consequence of commit 42ac9bd18d ("vfio: initialize
the virqfd workqueue in VFIO generic code") is that the vfio module
is renamed to vfio_core so that it can include both vfio and virqfd.
That's a user visible change that may break module loading scritps
and it imposes eventfd support as a dependency on the core vfio code,
which it's really not.  virqfd is intended to be provided as a service
to vfio bus drivers, so instead of wrapping it into vfio.ko, we can
make it a stand-alone module toggled by vfio bus drivers.  This has
the additional benefit of removing initialization and exit from the
core vfio code.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
このコミットが含まれているのは:
Alex Williamson
2015-03-17 08:33:38 -06:00
コミット 71be3423a6
7個のファイルの変更25行の追加14行の削除

ファイルの表示

@@ -1552,11 +1552,6 @@ 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");
/*
@@ -1569,8 +1564,6 @@ 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:
@@ -1585,7 +1578,6 @@ 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);