diff options
author | Antonios Motakis <a.motakis@virtualopensystems.com> | 2015-03-16 14:08:54 -0600 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2015-03-16 14:08:54 -0600 |
commit | 42ac9bd18d4fc28c36c7927847f0f6e90ecd7710 (patch) | |
tree | 7250c8a8186ac25d171533c71037968077ef1cf1 /drivers/vfio/vfio.c | |
parent | 7e992d692750b2938224eb43fee907181d92a602 (diff) | |
download | lwn-42ac9bd18d4fc28c36c7927847f0f6e90ecd7710.tar.gz lwn-42ac9bd18d4fc28c36c7927847f0f6e90ecd7710.zip |
vfio: initialize the virqfd workqueue in VFIO generic code
Now we have finally completely decoupled virqfd from VFIO_PCI. We can
initialize it from the VFIO generic code, in order to safely use it from
multiple independent VFIO bus drivers.
Signed-off-by: Antonios Motakis <a.motakis@virtualopensystems.com>
Signed-off-by: Baptiste Reynal <b.reynal@virtualopensystems.com>
Reviewed-by: Eric Auger <eric.auger@linaro.org>
Tested-by: Eric Auger <eric.auger@linaro.org>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'drivers/vfio/vfio.c')
-rw-r--r-- | drivers/vfio/vfio.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c index 4cde85501444..23ba12afe01f 100644 --- a/drivers/vfio/vfio.c +++ b/drivers/vfio/vfio.c @@ -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); |