summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChengguang Xu <cgxu519@gmx.com>2019-02-12 00:59:29 -0500
committerAlex Williamson <alex.williamson@redhat.com>2019-02-12 15:20:56 -0500
commit8bcb64a51065e957e170ada58cbbd766be6a9619 (patch)
tree0f3439a7d5eade2b87f2ef1adfeec4666fcac9f7
parent3c8d7ef89bb8bd7d00910fa14d4dab14a8e0cf5a (diff)
vfio: expand minor range when registering chrdev region
Actually, total amount of available minor number for a single major is MINORMARK + 1. So expand minor range when registering chrdev region. Signed-off-by: Chengguang Xu <cgxu519@gmx.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
-rw-r--r--drivers/vfio/vfio.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
index 64833879f75d..a3030cdf3c18 100644
--- a/drivers/vfio/vfio.c
+++ b/drivers/vfio/vfio.c
@@ -2219,12 +2219,12 @@ static int __init vfio_init(void)
2219 2219
2220 vfio.class->devnode = vfio_devnode; 2220 vfio.class->devnode = vfio_devnode;
2221 2221
2222 ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK, "vfio"); 2222 ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK + 1, "vfio");
2223 if (ret) 2223 if (ret)
2224 goto err_alloc_chrdev; 2224 goto err_alloc_chrdev;
2225 2225
2226 cdev_init(&vfio.group_cdev, &vfio_group_fops); 2226 cdev_init(&vfio.group_cdev, &vfio_group_fops);
2227 ret = cdev_add(&vfio.group_cdev, vfio.group_devt, MINORMASK); 2227 ret = cdev_add(&vfio.group_cdev, vfio.group_devt, MINORMASK + 1);
2228 if (ret) 2228 if (ret)
2229 goto err_cdev_add; 2229 goto err_cdev_add;
2230 2230
@@ -2236,7 +2236,7 @@ static int __init vfio_init(void)
2236 return 0; 2236 return 0;
2237 2237
2238err_cdev_add: 2238err_cdev_add:
2239 unregister_chrdev_region(vfio.group_devt, MINORMASK); 2239 unregister_chrdev_region(vfio.group_devt, MINORMASK + 1);
2240err_alloc_chrdev: 2240err_alloc_chrdev:
2241 class_destroy(vfio.class); 2241 class_destroy(vfio.class);
2242 vfio.class = NULL; 2242 vfio.class = NULL;
@@ -2254,7 +2254,7 @@ static void __exit vfio_cleanup(void)
2254#endif 2254#endif
2255 idr_destroy(&vfio.group_idr); 2255 idr_destroy(&vfio.group_idr);
2256 cdev_del(&vfio.group_cdev); 2256 cdev_del(&vfio.group_cdev);
2257 unregister_chrdev_region(vfio.group_devt, MINORMASK); 2257 unregister_chrdev_region(vfio.group_devt, MINORMASK + 1);
2258 class_destroy(vfio.class); 2258 class_destroy(vfio.class);
2259 vfio.class = NULL; 2259 vfio.class = NULL;
2260 misc_deregister(&vfio_dev); 2260 misc_deregister(&vfio_dev);