]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
vfio: expand minor range when registering chrdev region
authorChengguang Xu <cgxu519@gmx.com>
Tue, 12 Feb 2019 05:59:29 +0000 (13:59 +0800)
committerAlex Williamson <alex.williamson@redhat.com>
Tue, 12 Feb 2019 20:20:56 +0000 (13:20 -0700)
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>
drivers/vfio/vfio.c

index 64833879f75d3cf2d0739f03e4ca4b587c639cca..a3030cdf3c182c6f276db2b8f78624377e245c4e 100644 (file)
@@ -2219,12 +2219,12 @@ static int __init vfio_init(void)
 
        vfio.class->devnode = vfio_devnode;
 
-       ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK, "vfio");
+       ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK + 1, "vfio");
        if (ret)
                goto err_alloc_chrdev;
 
        cdev_init(&vfio.group_cdev, &vfio_group_fops);
-       ret = cdev_add(&vfio.group_cdev, vfio.group_devt, MINORMASK);
+       ret = cdev_add(&vfio.group_cdev, vfio.group_devt, MINORMASK + 1);
        if (ret)
                goto err_cdev_add;
 
@@ -2236,7 +2236,7 @@ static int __init vfio_init(void)
        return 0;
 
 err_cdev_add:
-       unregister_chrdev_region(vfio.group_devt, MINORMASK);
+       unregister_chrdev_region(vfio.group_devt, MINORMASK + 1);
 err_alloc_chrdev:
        class_destroy(vfio.class);
        vfio.class = NULL;
@@ -2254,7 +2254,7 @@ static void __exit vfio_cleanup(void)
 #endif
        idr_destroy(&vfio.group_idr);
        cdev_del(&vfio.group_cdev);
-       unregister_chrdev_region(vfio.group_devt, MINORMASK);
+       unregister_chrdev_region(vfio.group_devt, MINORMASK + 1);
        class_destroy(vfio.class);
        vfio.class = NULL;
        misc_deregister(&vfio_dev);