All of lore.kernel.org
 help / color / mirror / Atom feed
* [hch-block:blkdev_get 11/20] drivers/md/md.c:5765 md_alloc() error: uninitialized symbol 'error'.
@ 2021-03-04 13:19 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2021-03-04 13:19 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 10907 bytes --]

tree:   git://git.infradead.org/users/hch/block.git blkdev_get
head:   e23f079069b8993ed92b22dabbe067090baadfbe
commit: e338d98c9c7725f1ba2404e946971e506b27cd63 [11/20] md: do not return existing mddevs from mddev_find_or_alloc
config: i386-randconfig-m021-20210303 (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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/md/md.c:5765 md_alloc() error: uninitialized symbol 'error'.

vim +/error +5765 drivers/md/md.c

efeb53c0e57213 NeilBrown          2009-01-09  5651  static int md_alloc(dev_t dev, char *name)
^1da177e4c3f41 Linus Torvalds     2005-04-16  5652  {
039b7225e6e987 NeilBrown          2017-04-12  5653  	/*
039b7225e6e987 NeilBrown          2017-04-12  5654  	 * If dev is zero, name is the name of a device to allocate with
039b7225e6e987 NeilBrown          2017-04-12  5655  	 * an arbitrary minor number.  It will be "md_???"
039b7225e6e987 NeilBrown          2017-04-12  5656  	 * If dev is non-zero it must be a device number with a MAJOR of
039b7225e6e987 NeilBrown          2017-04-12  5657  	 * MD_MAJOR or mdp_major.  In this case, if "name" is NULL, then
039b7225e6e987 NeilBrown          2017-04-12  5658  	 * the device is being created by opening a node in /dev.
039b7225e6e987 NeilBrown          2017-04-12  5659  	 * If "name" is not NULL, the device is being created by
039b7225e6e987 NeilBrown          2017-04-12  5660  	 * writing to /sys/module/md_mod/parameters/new_array.
039b7225e6e987 NeilBrown          2017-04-12  5661  	 */
48c9c27b8bcd2a Arjan van de Ven   2006-03-27  5662  	static DEFINE_MUTEX(disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5663  	struct mddev *mddev;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5664  	struct gendisk *disk;
efeb53c0e57213 NeilBrown          2009-01-09  5665  	int partitioned;
efeb53c0e57213 NeilBrown          2009-01-09  5666  	int shift;
efeb53c0e57213 NeilBrown          2009-01-09  5667  	int unit;
3830c62fef49f8 Greg Kroah-Hartman 2007-12-17  5668  	int error;
                                                        ^^^^^^^^^

^1da177e4c3f41 Linus Torvalds     2005-04-16  5669  
e338d98c9c7725 Christoph Hellwig  2021-03-03  5670  	/*
e338d98c9c7725 Christoph Hellwig  2021-03-03  5671  	 * Wait for any previous instance of this device to be completely
e338d98c9c7725 Christoph Hellwig  2021-03-03  5672  	 * removed (mddev_delayed_delete).
d3374825ce57ba NeilBrown          2009-01-09  5673  	 */
e804ac780e2f01 Tejun Heo          2010-10-15  5674  	flush_workqueue(md_misc_wq);
d3374825ce57ba NeilBrown          2009-01-09  5675  
48c9c27b8bcd2a Arjan van de Ven   2006-03-27  5676  	mutex_lock(&disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5677  	mddev = mddev_alloc(dev);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5678  	if (IS_ERR(mddev)) {
e338d98c9c7725 Christoph Hellwig  2021-03-03  5679  		mutex_unlock(&disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5680  		return PTR_ERR(mddev);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5681  	}
e338d98c9c7725 Christoph Hellwig  2021-03-03  5682  
e338d98c9c7725 Christoph Hellwig  2021-03-03  5683  	partitioned = (MAJOR(mddev->unit) != MD_MAJOR);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5684  	shift = partitioned ? MdpMinorShift : 0;
e338d98c9c7725 Christoph Hellwig  2021-03-03  5685  	unit = MINOR(mddev->unit) >> shift;
efeb53c0e57213 NeilBrown          2009-01-09  5686  
039b7225e6e987 NeilBrown          2017-04-12  5687  	if (name && !dev) {
efeb53c0e57213 NeilBrown          2009-01-09  5688  		/* Need to ensure that 'name' is not a duplicate.
efeb53c0e57213 NeilBrown          2009-01-09  5689  		 */
fd01b88c75a718 NeilBrown          2011-10-11  5690  		struct mddev *mddev2;
efeb53c0e57213 NeilBrown          2009-01-09  5691  		spin_lock(&all_mddevs_lock);
efeb53c0e57213 NeilBrown          2009-01-09  5692  
efeb53c0e57213 NeilBrown          2009-01-09  5693  		list_for_each_entry(mddev2, &all_mddevs, all_mddevs)
efeb53c0e57213 NeilBrown          2009-01-09  5694  			if (mddev2->gendisk &&
efeb53c0e57213 NeilBrown          2009-01-09  5695  			    strcmp(mddev2->gendisk->disk_name, name) == 0) {
efeb53c0e57213 NeilBrown          2009-01-09  5696  				spin_unlock(&all_mddevs_lock);
0909dc448c98ed NeilBrown          2009-07-01  5697  				goto abort;
                                                                                ^^^^^^^^^^
Uninitialized on this path.


efeb53c0e57213 NeilBrown          2009-01-09  5698  			}
efeb53c0e57213 NeilBrown          2009-01-09  5699  		spin_unlock(&all_mddevs_lock);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5700  	}
039b7225e6e987 NeilBrown          2017-04-12  5701  	if (name && dev)
039b7225e6e987 NeilBrown          2017-04-12  5702  		/*
039b7225e6e987 NeilBrown          2017-04-12  5703  		 * Creating /dev/mdNNN via "newarray", so adjust hold_active.
039b7225e6e987 NeilBrown          2017-04-12  5704  		 */
039b7225e6e987 NeilBrown          2017-04-12  5705  		mddev->hold_active = UNTIL_STOP;
8b76539823d715 NeilBrown          2009-01-09  5706  
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5707  	error = mempool_init_kmalloc_pool(&mddev->md_io_pool, BIO_POOL_SIZE,
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5708  					  sizeof(struct md_io));
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5709  	if (error)
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5710  		goto abort;
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5711  
0909dc448c98ed NeilBrown          2009-07-01  5712  	error = -ENOMEM;
c62b37d96b6eb3 Christoph Hellwig  2020-07-01  5713  	mddev->queue = blk_alloc_queue(NUMA_NO_NODE);
0909dc448c98ed NeilBrown          2009-07-01  5714  	if (!mddev->queue)
0909dc448c98ed NeilBrown          2009-07-01  5715  		goto abort;
409c57f3801701 NeilBrown          2009-03-31  5716  
b1bd055d397e09 Martin K. Petersen 2012-01-11  5717  	blk_set_stacking_limits(&mddev->queue->limits);
8b76539823d715 NeilBrown          2009-01-09  5718  
^1da177e4c3f41 Linus Torvalds     2005-04-16  5719  	disk = alloc_disk(1 << shift);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5720  	if (!disk) {
8b76539823d715 NeilBrown          2009-01-09  5721  		blk_cleanup_queue(mddev->queue);
8b76539823d715 NeilBrown          2009-01-09  5722  		mddev->queue = NULL;
0909dc448c98ed NeilBrown          2009-07-01  5723  		goto abort;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5724  	}
efeb53c0e57213 NeilBrown          2009-01-09  5725  	disk->major = MAJOR(mddev->unit);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5726  	disk->first_minor = unit << shift;
efeb53c0e57213 NeilBrown          2009-01-09  5727  	if (name)
efeb53c0e57213 NeilBrown          2009-01-09  5728  		strcpy(disk->disk_name, name);
efeb53c0e57213 NeilBrown          2009-01-09  5729  	else if (partitioned)
^1da177e4c3f41 Linus Torvalds     2005-04-16  5730  		sprintf(disk->disk_name, "md_d%d", unit);
ce7b0f46bbf4bf Greg Kroah-Hartman 2005-06-20  5731  	else
^1da177e4c3f41 Linus Torvalds     2005-04-16  5732  		sprintf(disk->disk_name, "md%d", unit);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5733  	disk->fops = &md_fops;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5734  	disk->private_data = mddev;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5735  	disk->queue = mddev->queue;
56883a7ec85f5b Jens Axboe         2016-03-30  5736  	blk_queue_write_cache(mddev->queue, true, true);
92850bbd712287 NeilBrown          2008-10-21  5737  	/* Allow extended partitions.  This makes the
d3374825ce57ba NeilBrown          2009-01-09  5738  	 * 'mdp' device redundant, but we can't really
92850bbd712287 NeilBrown          2008-10-21  5739  	 * remove it now.
92850bbd712287 NeilBrown          2008-10-21  5740  	 */
92850bbd712287 NeilBrown          2008-10-21  5741  	disk->flags |= GENHD_FL_EXT_DEVT;
a564e23f0f9975 Christoph Hellwig  2020-07-08  5742  	disk->events |= DISK_EVENT_MEDIA_CHANGE;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5743  	mddev->gendisk = disk;
b0140891a8cea3 NeilBrown          2011-05-10  5744  	/* As soon as we call add_disk(), another thread could get
b0140891a8cea3 NeilBrown          2011-05-10  5745  	 * through to md_open, so make sure it doesn't get too far
b0140891a8cea3 NeilBrown          2011-05-10  5746  	 */
b0140891a8cea3 NeilBrown          2011-05-10  5747  	mutex_lock(&mddev->open_mutex);
b0140891a8cea3 NeilBrown          2011-05-10  5748  	add_disk(disk);
b0140891a8cea3 NeilBrown          2011-05-10  5749  
28dec870aaf704 Kent Overstreet    2018-06-07  5750  	error = kobject_add(&mddev->kobj, &disk_to_dev(disk)->kobj, "%s", "md");
0909dc448c98ed NeilBrown          2009-07-01  5751  	if (error) {
0909dc448c98ed NeilBrown          2009-07-01  5752  		/* This isn't possible, but as kobject_init_and_add is marked
0909dc448c98ed NeilBrown          2009-07-01  5753  		 * __must_check, we must do something with the result
0909dc448c98ed NeilBrown          2009-07-01  5754  		 */
9d48739ef19aa8 NeilBrown          2016-11-02  5755  		pr_debug("md: cannot register %s/md - name in use\n",
5e55e2f5fc95b3 NeilBrown          2007-03-26  5756  			 disk->disk_name);
0909dc448c98ed NeilBrown          2009-07-01  5757  		error = 0;
0909dc448c98ed NeilBrown          2009-07-01  5758  	}
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5759  	if (mddev->kobj.sd &&
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5760  	    sysfs_create_group(&mddev->kobj, &md_bitmap_group))
9d48739ef19aa8 NeilBrown          2016-11-02  5761  		pr_debug("pointless warning\n");
b0140891a8cea3 NeilBrown          2011-05-10  5762  	mutex_unlock(&mddev->open_mutex);
0909dc448c98ed NeilBrown          2009-07-01  5763   abort:
0909dc448c98ed NeilBrown          2009-07-01  5764  	mutex_unlock(&disks_mutex);
00bcb4ac7ee7e5 NeilBrown          2010-06-01 @5765  	if (!error && mddev->kobj.sd) {
                                                             ^^^^

3830c62fef49f8 Greg Kroah-Hartman 2007-12-17  5766  		kobject_uevent(&mddev->kobj, KOBJ_ADD);
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5767  		mddev->sysfs_state = sysfs_get_dirent_safe(mddev->kobj.sd, "array_state");
e1a86dbbbd6a77 Junxiao Bi         2020-07-14  5768  		mddev->sysfs_level = sysfs_get_dirent_safe(mddev->kobj.sd, "level");
b62b75905d571c NeilBrown          2008-10-21  5769  	}
d3374825ce57ba NeilBrown          2009-01-09  5770  	mddev_put(mddev);
0909dc448c98ed NeilBrown          2009-07-01  5771  	return error;
efeb53c0e57213 NeilBrown          2009-01-09  5772  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39859 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [hch-block:blkdev_get 11/20] drivers/md/md.c:5765 md_alloc() error: uninitialized symbol 'error'.
@ 2021-03-04 13:19 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2021-03-04 13:19 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 10907 bytes --]

tree:   git://git.infradead.org/users/hch/block.git blkdev_get
head:   e23f079069b8993ed92b22dabbe067090baadfbe
commit: e338d98c9c7725f1ba2404e946971e506b27cd63 [11/20] md: do not return existing mddevs from mddev_find_or_alloc
config: i386-randconfig-m021-20210303 (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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/md/md.c:5765 md_alloc() error: uninitialized symbol 'error'.

vim +/error +5765 drivers/md/md.c

efeb53c0e57213 NeilBrown          2009-01-09  5651  static int md_alloc(dev_t dev, char *name)
^1da177e4c3f41 Linus Torvalds     2005-04-16  5652  {
039b7225e6e987 NeilBrown          2017-04-12  5653  	/*
039b7225e6e987 NeilBrown          2017-04-12  5654  	 * If dev is zero, name is the name of a device to allocate with
039b7225e6e987 NeilBrown          2017-04-12  5655  	 * an arbitrary minor number.  It will be "md_???"
039b7225e6e987 NeilBrown          2017-04-12  5656  	 * If dev is non-zero it must be a device number with a MAJOR of
039b7225e6e987 NeilBrown          2017-04-12  5657  	 * MD_MAJOR or mdp_major.  In this case, if "name" is NULL, then
039b7225e6e987 NeilBrown          2017-04-12  5658  	 * the device is being created by opening a node in /dev.
039b7225e6e987 NeilBrown          2017-04-12  5659  	 * If "name" is not NULL, the device is being created by
039b7225e6e987 NeilBrown          2017-04-12  5660  	 * writing to /sys/module/md_mod/parameters/new_array.
039b7225e6e987 NeilBrown          2017-04-12  5661  	 */
48c9c27b8bcd2a Arjan van de Ven   2006-03-27  5662  	static DEFINE_MUTEX(disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5663  	struct mddev *mddev;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5664  	struct gendisk *disk;
efeb53c0e57213 NeilBrown          2009-01-09  5665  	int partitioned;
efeb53c0e57213 NeilBrown          2009-01-09  5666  	int shift;
efeb53c0e57213 NeilBrown          2009-01-09  5667  	int unit;
3830c62fef49f8 Greg Kroah-Hartman 2007-12-17  5668  	int error;
                                                        ^^^^^^^^^

^1da177e4c3f41 Linus Torvalds     2005-04-16  5669  
e338d98c9c7725 Christoph Hellwig  2021-03-03  5670  	/*
e338d98c9c7725 Christoph Hellwig  2021-03-03  5671  	 * Wait for any previous instance of this device to be completely
e338d98c9c7725 Christoph Hellwig  2021-03-03  5672  	 * removed (mddev_delayed_delete).
d3374825ce57ba NeilBrown          2009-01-09  5673  	 */
e804ac780e2f01 Tejun Heo          2010-10-15  5674  	flush_workqueue(md_misc_wq);
d3374825ce57ba NeilBrown          2009-01-09  5675  
48c9c27b8bcd2a Arjan van de Ven   2006-03-27  5676  	mutex_lock(&disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5677  	mddev = mddev_alloc(dev);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5678  	if (IS_ERR(mddev)) {
e338d98c9c7725 Christoph Hellwig  2021-03-03  5679  		mutex_unlock(&disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5680  		return PTR_ERR(mddev);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5681  	}
e338d98c9c7725 Christoph Hellwig  2021-03-03  5682  
e338d98c9c7725 Christoph Hellwig  2021-03-03  5683  	partitioned = (MAJOR(mddev->unit) != MD_MAJOR);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5684  	shift = partitioned ? MdpMinorShift : 0;
e338d98c9c7725 Christoph Hellwig  2021-03-03  5685  	unit = MINOR(mddev->unit) >> shift;
efeb53c0e57213 NeilBrown          2009-01-09  5686  
039b7225e6e987 NeilBrown          2017-04-12  5687  	if (name && !dev) {
efeb53c0e57213 NeilBrown          2009-01-09  5688  		/* Need to ensure that 'name' is not a duplicate.
efeb53c0e57213 NeilBrown          2009-01-09  5689  		 */
fd01b88c75a718 NeilBrown          2011-10-11  5690  		struct mddev *mddev2;
efeb53c0e57213 NeilBrown          2009-01-09  5691  		spin_lock(&all_mddevs_lock);
efeb53c0e57213 NeilBrown          2009-01-09  5692  
efeb53c0e57213 NeilBrown          2009-01-09  5693  		list_for_each_entry(mddev2, &all_mddevs, all_mddevs)
efeb53c0e57213 NeilBrown          2009-01-09  5694  			if (mddev2->gendisk &&
efeb53c0e57213 NeilBrown          2009-01-09  5695  			    strcmp(mddev2->gendisk->disk_name, name) == 0) {
efeb53c0e57213 NeilBrown          2009-01-09  5696  				spin_unlock(&all_mddevs_lock);
0909dc448c98ed NeilBrown          2009-07-01  5697  				goto abort;
                                                                                ^^^^^^^^^^
Uninitialized on this path.


efeb53c0e57213 NeilBrown          2009-01-09  5698  			}
efeb53c0e57213 NeilBrown          2009-01-09  5699  		spin_unlock(&all_mddevs_lock);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5700  	}
039b7225e6e987 NeilBrown          2017-04-12  5701  	if (name && dev)
039b7225e6e987 NeilBrown          2017-04-12  5702  		/*
039b7225e6e987 NeilBrown          2017-04-12  5703  		 * Creating /dev/mdNNN via "newarray", so adjust hold_active.
039b7225e6e987 NeilBrown          2017-04-12  5704  		 */
039b7225e6e987 NeilBrown          2017-04-12  5705  		mddev->hold_active = UNTIL_STOP;
8b76539823d715 NeilBrown          2009-01-09  5706  
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5707  	error = mempool_init_kmalloc_pool(&mddev->md_io_pool, BIO_POOL_SIZE,
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5708  					  sizeof(struct md_io));
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5709  	if (error)
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5710  		goto abort;
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5711  
0909dc448c98ed NeilBrown          2009-07-01  5712  	error = -ENOMEM;
c62b37d96b6eb3 Christoph Hellwig  2020-07-01  5713  	mddev->queue = blk_alloc_queue(NUMA_NO_NODE);
0909dc448c98ed NeilBrown          2009-07-01  5714  	if (!mddev->queue)
0909dc448c98ed NeilBrown          2009-07-01  5715  		goto abort;
409c57f3801701 NeilBrown          2009-03-31  5716  
b1bd055d397e09 Martin K. Petersen 2012-01-11  5717  	blk_set_stacking_limits(&mddev->queue->limits);
8b76539823d715 NeilBrown          2009-01-09  5718  
^1da177e4c3f41 Linus Torvalds     2005-04-16  5719  	disk = alloc_disk(1 << shift);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5720  	if (!disk) {
8b76539823d715 NeilBrown          2009-01-09  5721  		blk_cleanup_queue(mddev->queue);
8b76539823d715 NeilBrown          2009-01-09  5722  		mddev->queue = NULL;
0909dc448c98ed NeilBrown          2009-07-01  5723  		goto abort;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5724  	}
efeb53c0e57213 NeilBrown          2009-01-09  5725  	disk->major = MAJOR(mddev->unit);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5726  	disk->first_minor = unit << shift;
efeb53c0e57213 NeilBrown          2009-01-09  5727  	if (name)
efeb53c0e57213 NeilBrown          2009-01-09  5728  		strcpy(disk->disk_name, name);
efeb53c0e57213 NeilBrown          2009-01-09  5729  	else if (partitioned)
^1da177e4c3f41 Linus Torvalds     2005-04-16  5730  		sprintf(disk->disk_name, "md_d%d", unit);
ce7b0f46bbf4bf Greg Kroah-Hartman 2005-06-20  5731  	else
^1da177e4c3f41 Linus Torvalds     2005-04-16  5732  		sprintf(disk->disk_name, "md%d", unit);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5733  	disk->fops = &md_fops;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5734  	disk->private_data = mddev;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5735  	disk->queue = mddev->queue;
56883a7ec85f5b Jens Axboe         2016-03-30  5736  	blk_queue_write_cache(mddev->queue, true, true);
92850bbd712287 NeilBrown          2008-10-21  5737  	/* Allow extended partitions.  This makes the
d3374825ce57ba NeilBrown          2009-01-09  5738  	 * 'mdp' device redundant, but we can't really
92850bbd712287 NeilBrown          2008-10-21  5739  	 * remove it now.
92850bbd712287 NeilBrown          2008-10-21  5740  	 */
92850bbd712287 NeilBrown          2008-10-21  5741  	disk->flags |= GENHD_FL_EXT_DEVT;
a564e23f0f9975 Christoph Hellwig  2020-07-08  5742  	disk->events |= DISK_EVENT_MEDIA_CHANGE;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5743  	mddev->gendisk = disk;
b0140891a8cea3 NeilBrown          2011-05-10  5744  	/* As soon as we call add_disk(), another thread could get
b0140891a8cea3 NeilBrown          2011-05-10  5745  	 * through to md_open, so make sure it doesn't get too far
b0140891a8cea3 NeilBrown          2011-05-10  5746  	 */
b0140891a8cea3 NeilBrown          2011-05-10  5747  	mutex_lock(&mddev->open_mutex);
b0140891a8cea3 NeilBrown          2011-05-10  5748  	add_disk(disk);
b0140891a8cea3 NeilBrown          2011-05-10  5749  
28dec870aaf704 Kent Overstreet    2018-06-07  5750  	error = kobject_add(&mddev->kobj, &disk_to_dev(disk)->kobj, "%s", "md");
0909dc448c98ed NeilBrown          2009-07-01  5751  	if (error) {
0909dc448c98ed NeilBrown          2009-07-01  5752  		/* This isn't possible, but as kobject_init_and_add is marked
0909dc448c98ed NeilBrown          2009-07-01  5753  		 * __must_check, we must do something with the result
0909dc448c98ed NeilBrown          2009-07-01  5754  		 */
9d48739ef19aa8 NeilBrown          2016-11-02  5755  		pr_debug("md: cannot register %s/md - name in use\n",
5e55e2f5fc95b3 NeilBrown          2007-03-26  5756  			 disk->disk_name);
0909dc448c98ed NeilBrown          2009-07-01  5757  		error = 0;
0909dc448c98ed NeilBrown          2009-07-01  5758  	}
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5759  	if (mddev->kobj.sd &&
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5760  	    sysfs_create_group(&mddev->kobj, &md_bitmap_group))
9d48739ef19aa8 NeilBrown          2016-11-02  5761  		pr_debug("pointless warning\n");
b0140891a8cea3 NeilBrown          2011-05-10  5762  	mutex_unlock(&mddev->open_mutex);
0909dc448c98ed NeilBrown          2009-07-01  5763   abort:
0909dc448c98ed NeilBrown          2009-07-01  5764  	mutex_unlock(&disks_mutex);
00bcb4ac7ee7e5 NeilBrown          2010-06-01 @5765  	if (!error && mddev->kobj.sd) {
                                                             ^^^^

3830c62fef49f8 Greg Kroah-Hartman 2007-12-17  5766  		kobject_uevent(&mddev->kobj, KOBJ_ADD);
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5767  		mddev->sysfs_state = sysfs_get_dirent_safe(mddev->kobj.sd, "array_state");
e1a86dbbbd6a77 Junxiao Bi         2020-07-14  5768  		mddev->sysfs_level = sysfs_get_dirent_safe(mddev->kobj.sd, "level");
b62b75905d571c NeilBrown          2008-10-21  5769  	}
d3374825ce57ba NeilBrown          2009-01-09  5770  	mddev_put(mddev);
0909dc448c98ed NeilBrown          2009-07-01  5771  	return error;
efeb53c0e57213 NeilBrown          2009-01-09  5772  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39859 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [hch-block:blkdev_get 11/20] drivers/md/md.c:5765 md_alloc() error: uninitialized symbol 'error'.
@ 2021-03-03 20:27 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2021-03-03 20:27 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 11434 bytes --]

CC: kbuild-all(a)lists.01.org
TO: Christoph Hellwig <hch@lst.de>

tree:   git://git.infradead.org/users/hch/block.git blkdev_get
head:   e23f079069b8993ed92b22dabbe067090baadfbe
commit: e338d98c9c7725f1ba2404e946971e506b27cd63 [11/20] md: do not return existing mddevs from mddev_find_or_alloc
:::::: branch date: 3 hours ago
:::::: commit date: 3 hours ago
config: i386-randconfig-m021-20210303 (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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/md/md.c:5765 md_alloc() error: uninitialized symbol 'error'.

Old smatch warnings:
drivers/md/md.c:4258 chunk_size_show() warn: should 'mddev->new_chunk_sectors << 9' be a 64 bit type?
drivers/md/md.c:4259 chunk_size_show() warn: should 'mddev->chunk_sectors << 9' be a 64 bit type?
drivers/md/md.c:4260 chunk_size_show() warn: should 'mddev->chunk_sectors << 9' be a 64 bit type?

vim +/error +5765 drivers/md/md.c

a415c0f1062791 NeilBrown          2017-06-05  5650  
efeb53c0e57213 NeilBrown          2009-01-09  5651  static int md_alloc(dev_t dev, char *name)
^1da177e4c3f41 Linus Torvalds     2005-04-16  5652  {
039b7225e6e987 NeilBrown          2017-04-12  5653  	/*
039b7225e6e987 NeilBrown          2017-04-12  5654  	 * If dev is zero, name is the name of a device to allocate with
039b7225e6e987 NeilBrown          2017-04-12  5655  	 * an arbitrary minor number.  It will be "md_???"
039b7225e6e987 NeilBrown          2017-04-12  5656  	 * If dev is non-zero it must be a device number with a MAJOR of
039b7225e6e987 NeilBrown          2017-04-12  5657  	 * MD_MAJOR or mdp_major.  In this case, if "name" is NULL, then
039b7225e6e987 NeilBrown          2017-04-12  5658  	 * the device is being created by opening a node in /dev.
039b7225e6e987 NeilBrown          2017-04-12  5659  	 * If "name" is not NULL, the device is being created by
039b7225e6e987 NeilBrown          2017-04-12  5660  	 * writing to /sys/module/md_mod/parameters/new_array.
039b7225e6e987 NeilBrown          2017-04-12  5661  	 */
48c9c27b8bcd2a Arjan van de Ven   2006-03-27  5662  	static DEFINE_MUTEX(disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5663  	struct mddev *mddev;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5664  	struct gendisk *disk;
efeb53c0e57213 NeilBrown          2009-01-09  5665  	int partitioned;
efeb53c0e57213 NeilBrown          2009-01-09  5666  	int shift;
efeb53c0e57213 NeilBrown          2009-01-09  5667  	int unit;
3830c62fef49f8 Greg Kroah-Hartman 2007-12-17  5668  	int error;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5669  
e338d98c9c7725 Christoph Hellwig  2021-03-03  5670  	/*
e338d98c9c7725 Christoph Hellwig  2021-03-03  5671  	 * Wait for any previous instance of this device to be completely
e338d98c9c7725 Christoph Hellwig  2021-03-03  5672  	 * removed (mddev_delayed_delete).
d3374825ce57ba NeilBrown          2009-01-09  5673  	 */
e804ac780e2f01 Tejun Heo          2010-10-15  5674  	flush_workqueue(md_misc_wq);
d3374825ce57ba NeilBrown          2009-01-09  5675  
48c9c27b8bcd2a Arjan van de Ven   2006-03-27  5676  	mutex_lock(&disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5677  	mddev = mddev_alloc(dev);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5678  	if (IS_ERR(mddev)) {
e338d98c9c7725 Christoph Hellwig  2021-03-03  5679  		mutex_unlock(&disks_mutex);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5680  		return PTR_ERR(mddev);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5681  	}
e338d98c9c7725 Christoph Hellwig  2021-03-03  5682  
e338d98c9c7725 Christoph Hellwig  2021-03-03  5683  	partitioned = (MAJOR(mddev->unit) != MD_MAJOR);
e338d98c9c7725 Christoph Hellwig  2021-03-03  5684  	shift = partitioned ? MdpMinorShift : 0;
e338d98c9c7725 Christoph Hellwig  2021-03-03  5685  	unit = MINOR(mddev->unit) >> shift;
efeb53c0e57213 NeilBrown          2009-01-09  5686  
039b7225e6e987 NeilBrown          2017-04-12  5687  	if (name && !dev) {
efeb53c0e57213 NeilBrown          2009-01-09  5688  		/* Need to ensure that 'name' is not a duplicate.
efeb53c0e57213 NeilBrown          2009-01-09  5689  		 */
fd01b88c75a718 NeilBrown          2011-10-11  5690  		struct mddev *mddev2;
efeb53c0e57213 NeilBrown          2009-01-09  5691  		spin_lock(&all_mddevs_lock);
efeb53c0e57213 NeilBrown          2009-01-09  5692  
efeb53c0e57213 NeilBrown          2009-01-09  5693  		list_for_each_entry(mddev2, &all_mddevs, all_mddevs)
efeb53c0e57213 NeilBrown          2009-01-09  5694  			if (mddev2->gendisk &&
efeb53c0e57213 NeilBrown          2009-01-09  5695  			    strcmp(mddev2->gendisk->disk_name, name) == 0) {
efeb53c0e57213 NeilBrown          2009-01-09  5696  				spin_unlock(&all_mddevs_lock);
0909dc448c98ed NeilBrown          2009-07-01  5697  				goto abort;
efeb53c0e57213 NeilBrown          2009-01-09  5698  			}
efeb53c0e57213 NeilBrown          2009-01-09  5699  		spin_unlock(&all_mddevs_lock);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5700  	}
039b7225e6e987 NeilBrown          2017-04-12  5701  	if (name && dev)
039b7225e6e987 NeilBrown          2017-04-12  5702  		/*
039b7225e6e987 NeilBrown          2017-04-12  5703  		 * Creating /dev/mdNNN via "newarray", so adjust hold_active.
039b7225e6e987 NeilBrown          2017-04-12  5704  		 */
039b7225e6e987 NeilBrown          2017-04-12  5705  		mddev->hold_active = UNTIL_STOP;
8b76539823d715 NeilBrown          2009-01-09  5706  
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5707  	error = mempool_init_kmalloc_pool(&mddev->md_io_pool, BIO_POOL_SIZE,
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5708  					  sizeof(struct md_io));
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5709  	if (error)
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5710  		goto abort;
41d2d848e5c092 Artur Paszkiewicz  2020-07-03  5711  
0909dc448c98ed NeilBrown          2009-07-01  5712  	error = -ENOMEM;
c62b37d96b6eb3 Christoph Hellwig  2020-07-01  5713  	mddev->queue = blk_alloc_queue(NUMA_NO_NODE);
0909dc448c98ed NeilBrown          2009-07-01  5714  	if (!mddev->queue)
0909dc448c98ed NeilBrown          2009-07-01  5715  		goto abort;
409c57f3801701 NeilBrown          2009-03-31  5716  
b1bd055d397e09 Martin K. Petersen 2012-01-11  5717  	blk_set_stacking_limits(&mddev->queue->limits);
8b76539823d715 NeilBrown          2009-01-09  5718  
^1da177e4c3f41 Linus Torvalds     2005-04-16  5719  	disk = alloc_disk(1 << shift);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5720  	if (!disk) {
8b76539823d715 NeilBrown          2009-01-09  5721  		blk_cleanup_queue(mddev->queue);
8b76539823d715 NeilBrown          2009-01-09  5722  		mddev->queue = NULL;
0909dc448c98ed NeilBrown          2009-07-01  5723  		goto abort;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5724  	}
efeb53c0e57213 NeilBrown          2009-01-09  5725  	disk->major = MAJOR(mddev->unit);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5726  	disk->first_minor = unit << shift;
efeb53c0e57213 NeilBrown          2009-01-09  5727  	if (name)
efeb53c0e57213 NeilBrown          2009-01-09  5728  		strcpy(disk->disk_name, name);
efeb53c0e57213 NeilBrown          2009-01-09  5729  	else if (partitioned)
^1da177e4c3f41 Linus Torvalds     2005-04-16  5730  		sprintf(disk->disk_name, "md_d%d", unit);
ce7b0f46bbf4bf Greg Kroah-Hartman 2005-06-20  5731  	else
^1da177e4c3f41 Linus Torvalds     2005-04-16  5732  		sprintf(disk->disk_name, "md%d", unit);
^1da177e4c3f41 Linus Torvalds     2005-04-16  5733  	disk->fops = &md_fops;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5734  	disk->private_data = mddev;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5735  	disk->queue = mddev->queue;
56883a7ec85f5b Jens Axboe         2016-03-30  5736  	blk_queue_write_cache(mddev->queue, true, true);
92850bbd712287 NeilBrown          2008-10-21  5737  	/* Allow extended partitions.  This makes the
d3374825ce57ba NeilBrown          2009-01-09  5738  	 * 'mdp' device redundant, but we can't really
92850bbd712287 NeilBrown          2008-10-21  5739  	 * remove it now.
92850bbd712287 NeilBrown          2008-10-21  5740  	 */
92850bbd712287 NeilBrown          2008-10-21  5741  	disk->flags |= GENHD_FL_EXT_DEVT;
a564e23f0f9975 Christoph Hellwig  2020-07-08  5742  	disk->events |= DISK_EVENT_MEDIA_CHANGE;
^1da177e4c3f41 Linus Torvalds     2005-04-16  5743  	mddev->gendisk = disk;
b0140891a8cea3 NeilBrown          2011-05-10  5744  	/* As soon as we call add_disk(), another thread could get
b0140891a8cea3 NeilBrown          2011-05-10  5745  	 * through to md_open, so make sure it doesn't get too far
b0140891a8cea3 NeilBrown          2011-05-10  5746  	 */
b0140891a8cea3 NeilBrown          2011-05-10  5747  	mutex_lock(&mddev->open_mutex);
b0140891a8cea3 NeilBrown          2011-05-10  5748  	add_disk(disk);
b0140891a8cea3 NeilBrown          2011-05-10  5749  
28dec870aaf704 Kent Overstreet    2018-06-07  5750  	error = kobject_add(&mddev->kobj, &disk_to_dev(disk)->kobj, "%s", "md");
0909dc448c98ed NeilBrown          2009-07-01  5751  	if (error) {
0909dc448c98ed NeilBrown          2009-07-01  5752  		/* This isn't possible, but as kobject_init_and_add is marked
0909dc448c98ed NeilBrown          2009-07-01  5753  		 * __must_check, we must do something with the result
0909dc448c98ed NeilBrown          2009-07-01  5754  		 */
9d48739ef19aa8 NeilBrown          2016-11-02  5755  		pr_debug("md: cannot register %s/md - name in use\n",
5e55e2f5fc95b3 NeilBrown          2007-03-26  5756  			 disk->disk_name);
0909dc448c98ed NeilBrown          2009-07-01  5757  		error = 0;
0909dc448c98ed NeilBrown          2009-07-01  5758  	}
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5759  	if (mddev->kobj.sd &&
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5760  	    sysfs_create_group(&mddev->kobj, &md_bitmap_group))
9d48739ef19aa8 NeilBrown          2016-11-02  5761  		pr_debug("pointless warning\n");
b0140891a8cea3 NeilBrown          2011-05-10  5762  	mutex_unlock(&mddev->open_mutex);
0909dc448c98ed NeilBrown          2009-07-01  5763   abort:
0909dc448c98ed NeilBrown          2009-07-01  5764  	mutex_unlock(&disks_mutex);
00bcb4ac7ee7e5 NeilBrown          2010-06-01 @5765  	if (!error && mddev->kobj.sd) {
3830c62fef49f8 Greg Kroah-Hartman 2007-12-17  5766  		kobject_uevent(&mddev->kobj, KOBJ_ADD);
00bcb4ac7ee7e5 NeilBrown          2010-06-01  5767  		mddev->sysfs_state = sysfs_get_dirent_safe(mddev->kobj.sd, "array_state");
e1a86dbbbd6a77 Junxiao Bi         2020-07-14  5768  		mddev->sysfs_level = sysfs_get_dirent_safe(mddev->kobj.sd, "level");
b62b75905d571c NeilBrown          2008-10-21  5769  	}
d3374825ce57ba NeilBrown          2009-01-09  5770  	mddev_put(mddev);
0909dc448c98ed NeilBrown          2009-07-01  5771  	return error;
efeb53c0e57213 NeilBrown          2009-01-09  5772  }
efeb53c0e57213 NeilBrown          2009-01-09  5773  

:::::: The code at line 5765 was first introduced by commit
:::::: 00bcb4ac7ee7e557a491b614219142cea0ef16f4 md: reduce dependence on sysfs.

:::::: TO: NeilBrown <neilb@suse.de>
:::::: CC: NeilBrown <neilb@suse.de>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39859 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-04 13:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-04 13:19 [hch-block:blkdev_get 11/20] drivers/md/md.c:5765 md_alloc() error: uninitialized symbol 'error' Dan Carpenter
2021-03-04 13:19 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2021-03-03 20:27 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.