diff options
author | Chengguang Xu <cgxu519@gmx.com> | 2019-02-12 00:59:29 -0500 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2019-02-12 15:20:56 -0500 |
commit | 8bcb64a51065e957e170ada58cbbd766be6a9619 (patch) | |
tree | 0f3439a7d5eade2b87f2ef1adfeec4666fcac9f7 | |
parent | 3c8d7ef89bb8bd7d00910fa14d4dab14a8e0cf5a (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.c | 8 |
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 | ||
2238 | err_cdev_add: | 2238 | err_cdev_add: |
2239 | unregister_chrdev_region(vfio.group_devt, MINORMASK); | 2239 | unregister_chrdev_region(vfio.group_devt, MINORMASK + 1); |
2240 | err_alloc_chrdev: | 2240 | err_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); |