fsi: core: Check error number after calling ida_simple_get
authorJiasheng Jiang <jiasheng@iscas.ac.cn>
Tue, 11 Jan 2022 07:34:11 +0000 (15:34 +0800)
committerJoel Stanley <joel@jms.id.au>
Wed, 28 Sep 2022 11:40:57 +0000 (21:10 +0930)
If allocation fails, the ida_simple_get() will return error number.
So master->idx could be error number and be used in dev_set_name().
Therefore, it should be better to check it and return error if fails,
like the ida_simple_get() in __fsi_get_new_minor().

Fixes: 09aecfab93b8 ("drivers/fsi: Add fsi master definition")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Reviewed-by: Eddie James <eajames@linux.ibm.com>
Link: https://lore.kernel.org/r/20220111073411.614138-1-jiasheng@iscas.ac.cn
Signed-off-by: Joel Stanley <joel@jms.id.au>
drivers/fsi/fsi-core.c

index 0d11a17..694e80c 100644 (file)
@@ -1314,6 +1314,9 @@ int fsi_master_register(struct fsi_master *master)
 
        mutex_init(&master->scan_lock);
        master->idx = ida_simple_get(&master_ida, 0, INT_MAX, GFP_KERNEL);
+       if (master->idx < 0)
+               return master->idx;
+
        dev_set_name(&master->dev, "fsi%d", master->idx);
        master->dev.class = &fsi_master_class;