CC: [email protected]
TO: Christoph Hellwig <[email protected]>

tree:   git://git.infradead.org/users/hch/block.git alloc_disk
head:   60f08b2fdf176410f5dc53a88342cf5e38b61416
commit: 1450c7bf5dadeb743598e332f7c9d1ac17823bdc [35/41] mtd_blkdevs: use 
blk_mq_alloc_disk
:::::: branch date: 4 hours ago
:::::: commit date: 4 hours ago
config: x86_64-randconfig-m001-20210503 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/mtd/mtd_blkdevs.c:442 add_mtd_blktrans_dev() error: uninitialized 
symbol 'ret'.

vim +/ret +442 drivers/mtd/mtd_blkdevs.c

891b7c5fbf619d Jens Axboe        2018-10-16  309  
^1da177e4c3f41 Linus Torvalds    2005-04-16  310  int 
add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
^1da177e4c3f41 Linus Torvalds    2005-04-16  311  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  312        struct mtd_blktrans_ops 
*tr = new->tr;
71a928c0e52ced Chris Malley      2008-05-19  313        struct mtd_blktrans_dev 
*d;
^1da177e4c3f41 Linus Torvalds    2005-04-16  314        int last_devnum = -1;
^1da177e4c3f41 Linus Torvalds    2005-04-16  315        struct gendisk *gd;
a863862257b7dd Maxim Levitsky    2010-02-22  316        int ret;
^1da177e4c3f41 Linus Torvalds    2005-04-16  317  
b3561ea9462b33 Jean Delvare      2007-05-08  318        if 
(mutex_trylock(&mtd_table_mutex)) {
48b192686dd20c Ingo Molnar       2006-03-31  319                
mutex_unlock(&mtd_table_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  320                BUG();
^1da177e4c3f41 Linus Torvalds    2005-04-16  321        }
^1da177e4c3f41 Linus Torvalds    2005-04-16  322  
048d8719956666 Maxim Levitsky    2010-02-22  323        
mutex_lock(&blktrans_ref_mutex);
71a928c0e52ced Chris Malley      2008-05-19  324        list_for_each_entry(d, 
&tr->devs, list) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  325                if (new->devnum 
== -1) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  326                        /* Use 
first free number */
^1da177e4c3f41 Linus Torvalds    2005-04-16  327                        if 
(d->devnum != last_devnum+1) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  328                                
/* Found a free devnum. Plug it in here */
^1da177e4c3f41 Linus Torvalds    2005-04-16  329                                
new->devnum = last_devnum+1;
^1da177e4c3f41 Linus Torvalds    2005-04-16  330                                
list_add_tail(&new->list, &d->list);
^1da177e4c3f41 Linus Torvalds    2005-04-16  331                                
goto added;
^1da177e4c3f41 Linus Torvalds    2005-04-16  332                        }
^1da177e4c3f41 Linus Torvalds    2005-04-16  333                } else if 
(d->devnum == new->devnum) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  334                        /* 
Required number taken */
048d8719956666 Maxim Levitsky    2010-02-22  335                        
mutex_unlock(&blktrans_ref_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  336                        return 
-EBUSY;
^1da177e4c3f41 Linus Torvalds    2005-04-16  337                } else if 
(d->devnum > new->devnum) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  338                        /* 
Required number was free */
^1da177e4c3f41 Linus Torvalds    2005-04-16  339                        
list_add_tail(&new->list, &d->list);
^1da177e4c3f41 Linus Torvalds    2005-04-16  340                        goto 
added;
^1da177e4c3f41 Linus Torvalds    2005-04-16  341                }
^1da177e4c3f41 Linus Torvalds    2005-04-16  342                last_devnum = 
d->devnum;
^1da177e4c3f41 Linus Torvalds    2005-04-16  343        }
a863862257b7dd Maxim Levitsky    2010-02-22  344  
a863862257b7dd Maxim Levitsky    2010-02-22  345        ret = -EBUSY;
^1da177e4c3f41 Linus Torvalds    2005-04-16  346        if (new->devnum == -1)
^1da177e4c3f41 Linus Torvalds    2005-04-16  347                new->devnum = 
last_devnum+1;
^1da177e4c3f41 Linus Torvalds    2005-04-16  348  
4d3a8534bdbcf4 Ben Hutchings     2010-01-29  349        /* Check that the 
device and any partitions will get valid
4d3a8534bdbcf4 Ben Hutchings     2010-01-29  350         * minor numbers and 
that the disk naming code below can cope
4d3a8534bdbcf4 Ben Hutchings     2010-01-29  351         * with this number. */
4d3a8534bdbcf4 Ben Hutchings     2010-01-29  352        if (new->devnum > 
(MINORMASK >> tr->part_bits) ||
048d8719956666 Maxim Levitsky    2010-02-22  353            (tr->part_bits && 
new->devnum >= 27 * 26)) {
048d8719956666 Maxim Levitsky    2010-02-22  354                
mutex_unlock(&blktrans_ref_mutex);
1450c7bf5dadeb Christoph Hellwig 2021-04-29  355                return ret;
048d8719956666 Maxim Levitsky    2010-02-22  356        }
^1da177e4c3f41 Linus Torvalds    2005-04-16  357  
^1da177e4c3f41 Linus Torvalds    2005-04-16  358        
list_add_tail(&new->list, &tr->devs);
^1da177e4c3f41 Linus Torvalds    2005-04-16  359   added:
048d8719956666 Maxim Levitsky    2010-02-22  360        
mutex_unlock(&blktrans_ref_mutex);
048d8719956666 Maxim Levitsky    2010-02-22  361  
ce37ab42ad8b38 David Woodhouse   2007-12-03  362        mutex_init(&new->lock);
048d8719956666 Maxim Levitsky    2010-02-22  363        kref_init(&new->ref);
^1da177e4c3f41 Linus Torvalds    2005-04-16  364        if (!tr->writesect)
^1da177e4c3f41 Linus Torvalds    2005-04-16  365                new->readonly = 
1;
^1da177e4c3f41 Linus Torvalds    2005-04-16  366  
1450c7bf5dadeb Christoph Hellwig 2021-04-29  367        new->tag_set = 
kzalloc(sizeof(*new->tag_set), GFP_KERNEL);
1450c7bf5dadeb Christoph Hellwig 2021-04-29  368        if (!new->tag_set)
1450c7bf5dadeb Christoph Hellwig 2021-04-29  369                goto 
out_list_del;
a863862257b7dd Maxim Levitsky    2010-02-22  370  
1450c7bf5dadeb Christoph Hellwig 2021-04-29  371        ret = 
blk_mq_alloc_sq_tag_set(new->tag_set, &mtd_mq_ops, 2,
1450c7bf5dadeb Christoph Hellwig 2021-04-29  372                        
BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING);
1450c7bf5dadeb Christoph Hellwig 2021-04-29  373        if (ret)
1450c7bf5dadeb Christoph Hellwig 2021-04-29  374                goto 
out_kfree_tag_set;
1450c7bf5dadeb Christoph Hellwig 2021-04-29  375  
1450c7bf5dadeb Christoph Hellwig 2021-04-29  376        /* Create gendisk */
1450c7bf5dadeb Christoph Hellwig 2021-04-29  377        gd = 
blk_mq_alloc_disk(new->tag_set, new);
1450c7bf5dadeb Christoph Hellwig 2021-04-29  378        if (IS_ERR(gd)) {
1450c7bf5dadeb Christoph Hellwig 2021-04-29  379                ret = 
PTR_ERR(gd);
1450c7bf5dadeb Christoph Hellwig 2021-04-29  380                goto 
out_free_tag_set;
1450c7bf5dadeb Christoph Hellwig 2021-04-29  381        }
a863862257b7dd Maxim Levitsky    2010-02-22  382  
a863862257b7dd Maxim Levitsky    2010-02-22  383        new->disk = gd;
a863862257b7dd Maxim Levitsky    2010-02-22  384        gd->private_data = new;
^1da177e4c3f41 Linus Torvalds    2005-04-16  385        gd->major = tr->major;
^1da177e4c3f41 Linus Torvalds    2005-04-16  386        gd->first_minor = 
(new->devnum) << tr->part_bits;
1450c7bf5dadeb Christoph Hellwig 2021-04-29  387        gd->minors = 1 << 
tr->part_bits;
9329c5eb5b087d Ezequiel Garcia   2012-11-09  388        gd->fops = 
&mtd_block_ops;
^1da177e4c3f41 Linus Torvalds    2005-04-16  389  
65a8de36b48f1c Todd Poynor       2005-07-29  390        if (tr->part_bits)
65a8de36b48f1c Todd Poynor       2005-07-29  391                if (new->devnum 
< 26)
^1da177e4c3f41 Linus Torvalds    2005-04-16  392                        
snprintf(gd->disk_name, sizeof(gd->disk_name),
65a8de36b48f1c Todd Poynor       2005-07-29  393                                
 "%s%c", tr->name, 'a' + new->devnum);
65a8de36b48f1c Todd Poynor       2005-07-29  394                else
65a8de36b48f1c Todd Poynor       2005-07-29  395                        
snprintf(gd->disk_name, sizeof(gd->disk_name),
65a8de36b48f1c Todd Poynor       2005-07-29  396                                
 "%s%c%c", tr->name,
65a8de36b48f1c Todd Poynor       2005-07-29  397                                
 'a' - 1 + new->devnum / 26,
65a8de36b48f1c Todd Poynor       2005-07-29  398                                
 'a' + new->devnum % 26);
65a8de36b48f1c Todd Poynor       2005-07-29  399        else
65a8de36b48f1c Todd Poynor       2005-07-29  400                
snprintf(gd->disk_name, sizeof(gd->disk_name),
65a8de36b48f1c Todd Poynor       2005-07-29  401                         
"%s%d", tr->name, new->devnum);
^1da177e4c3f41 Linus Torvalds    2005-04-16  402  
2ce401d56b36a7 Peng Fan          2015-09-11  403        set_capacity(gd, 
((u64)new->size * tr->blksize) >> 9);
^1da177e4c3f41 Linus Torvalds    2005-04-16  404  
a863862257b7dd Maxim Levitsky    2010-02-22  405        /* Create the request 
queue */
a863862257b7dd Maxim Levitsky    2010-02-22  406        
spin_lock_init(&new->queue_lock);
891b7c5fbf619d Jens Axboe        2018-10-16  407        
INIT_LIST_HEAD(&new->rq_list);
a863862257b7dd Maxim Levitsky    2010-02-22  408  
566c0d6a74169d Roman Peniaev     2014-03-08  409        if (tr->flush)
fec3ff5d1eef8d Jens Axboe        2016-03-30  410                
blk_queue_write_cache(new->rq, true, false);
566c0d6a74169d Roman Peniaev     2014-03-08  411  
a863862257b7dd Maxim Levitsky    2010-02-22  412        
blk_queue_logical_block_size(new->rq, tr->blksize);
a863862257b7dd Maxim Levitsky    2010-02-22  413  
8b904b5b6b58b9 Bart Van Assche   2018-03-07  414        
blk_queue_flag_set(QUEUE_FLAG_NONROT, new->rq);
8b904b5b6b58b9 Bart Van Assche   2018-03-07  415        
blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, new->rq);
16f7eca5871ad0 Dan McGee         2011-09-28  416  
115ee88c15b558 Jarkko Lavinen    2011-02-14  417        if (tr->discard) {
8b904b5b6b58b9 Bart Van Assche   2018-03-07  418                
blk_queue_flag_set(QUEUE_FLAG_DISCARD, new->rq);
2bb4cd5cc472b1 Jens Axboe        2015-07-14  419                
blk_queue_max_discard_sectors(new->rq, UINT_MAX);
115ee88c15b558 Jarkko Lavinen    2011-02-14  420        }
a863862257b7dd Maxim Levitsky    2010-02-22  421  
a863862257b7dd Maxim Levitsky    2010-02-22  422        gd->queue = new->rq;
a863862257b7dd Maxim Levitsky    2010-02-22  423  
^1da177e4c3f41 Linus Torvalds    2005-04-16  424        if (new->readonly)
^1da177e4c3f41 Linus Torvalds    2005-04-16  425                set_disk_ro(gd, 
1);
^1da177e4c3f41 Linus Torvalds    2005-04-16  426  
fef912bf860e8e Hannes Reinecke   2018-09-28  427        
device_add_disk(&new->mtd->dev, gd, NULL);
026ec57886b67c Maxim Levitsky    2010-02-22  428  
133fa8c7d70d16 Maxim Levitsky    2010-02-26  429        if 
(new->disk_attributes) {
133fa8c7d70d16 Maxim Levitsky    2010-02-26  430                ret = 
sysfs_create_group(&disk_to_dev(gd)->kobj,
026ec57886b67c Maxim Levitsky    2010-02-22  431                                
        new->disk_attributes);
133fa8c7d70d16 Maxim Levitsky    2010-02-26  432                WARN_ON(ret);
133fa8c7d70d16 Maxim Levitsky    2010-02-26  433        }
^1da177e4c3f41 Linus Torvalds    2005-04-16  434        return 0;
1450c7bf5dadeb Christoph Hellwig 2021-04-29  435  
1450c7bf5dadeb Christoph Hellwig 2021-04-29  436  out_free_tag_set:
1450c7bf5dadeb Christoph Hellwig 2021-04-29  437        
blk_mq_free_tag_set(new->tag_set);
1450c7bf5dadeb Christoph Hellwig 2021-04-29  438  out_kfree_tag_set:
891b7c5fbf619d Jens Axboe        2018-10-16  439        kfree(new->tag_set);
1450c7bf5dadeb Christoph Hellwig 2021-04-29  440  out_list_del:
a863862257b7dd Maxim Levitsky    2010-02-22  441        list_del(&new->list);
a863862257b7dd Maxim Levitsky    2010-02-22 @442        return ret;
^1da177e4c3f41 Linus Torvalds    2005-04-16  443  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  444  

:::::: The code at line 442 was first introduced by commit
:::::: a863862257b7dd08d855bafcb0aedd9ad848ed91 mtd: blktrans: remove 
mtd_blkcore_priv, switch to per device queue and thread

:::::: TO: Maxim Levitsky <[email protected]>
:::::: CC: David Woodhouse <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to