* [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.