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]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
