From: Chengguang Xu <cgxu...@gmx.com>

[ Upstream commit de9a7f6f5f1967d275311cca9163b4a3ffe9b0ae ]

Actually, total amount of available minor number
for a single major is MINORMASK + 1. So expand
minor range when registering chrdev region.

Signed-off-by: Chengguang Xu <cgxu...@gmx.com>
Acked-by: Wu Hao <hao...@intel.com>
Acked-by: Alan Tull <at...@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/fpga/dfl.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c
index c25217cde5ca..4b66aaa32b5a 100644
--- a/drivers/fpga/dfl.c
+++ b/drivers/fpga/dfl.c
@@ -322,7 +322,7 @@ static void dfl_chardev_uinit(void)
        for (i = 0; i < DFL_FPGA_DEVT_MAX; i++)
                if (MAJOR(dfl_chrdevs[i].devt)) {
                        unregister_chrdev_region(dfl_chrdevs[i].devt,
-                                                MINORMASK);
+                                                MINORMASK + 1);
                        dfl_chrdevs[i].devt = MKDEV(0, 0);
                }
 }
@@ -332,8 +332,8 @@ static int dfl_chardev_init(void)
        int i, ret;
 
        for (i = 0; i < DFL_FPGA_DEVT_MAX; i++) {
-               ret = alloc_chrdev_region(&dfl_chrdevs[i].devt, 0, MINORMASK,
-                                         dfl_chrdevs[i].name);
+               ret = alloc_chrdev_region(&dfl_chrdevs[i].devt, 0,
+                                         MINORMASK + 1, dfl_chrdevs[i].name);
                if (ret)
                        goto exit;
        }
-- 
2.20.1

Reply via email to