Re: [PATCH] bcache: Use #ifdef instead of boolean variable

From: kernel test robot
Date: Fri Oct 09 2020 - 15:15:27 EST


Hi Alex,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on next-20201009]
[cannot apply to linus/master v5.9-rc8 v5.9-rc7 v5.9-rc6 v5.9-rc8]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Alex-Dewar/bcache-Use-ifdef-instead-of-boolean-variable/20201010-023635
base: d67bc7812221606e1886620a357b13f906814af7
config: xtensa-allyesconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/bb05520ea94f191cdee74e5b7829d0442a05eb86
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Alex-Dewar/bcache-Use-ifdef-instead-of-boolean-variable/20201010-023635
git checkout bb05520ea94f191cdee74e5b7829d0442a05eb86
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

drivers/md/bcache/super.c: In function 'register_bcache':
>> drivers/md/bcache/super.c:2563:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
2563 | struct async_reg_args *args =
| ^~~~~~

vim +2563 drivers/md/bcache/super.c

9e23ccf8f0a22e Coly Li 2020-05-27 2497
cafe563591446c Kent Overstreet 2013-03-23 2498 static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
cafe563591446c Kent Overstreet 2013-03-23 2499 const char *buffer, size_t size)
cafe563591446c Kent Overstreet 2013-03-23 2500 {
50246693f81fe8 Christoph Hellwig 2020-01-24 2501 const char *err;
29cda393bcaad1 Coly Li 2020-01-24 2502 char *path = NULL;
50246693f81fe8 Christoph Hellwig 2020-01-24 2503 struct cache_sb *sb;
cfa0c56db9c087 Christoph Hellwig 2020-01-24 2504 struct cache_sb_disk *sb_disk;
fc8f19cc5dce18 Christoph Hellwig 2020-01-24 2505 struct block_device *bdev;
50246693f81fe8 Christoph Hellwig 2020-01-24 2506 ssize_t ret;
cafe563591446c Kent Overstreet 2013-03-23 2507
50246693f81fe8 Christoph Hellwig 2020-01-24 2508 ret = -EBUSY;
29cda393bcaad1 Coly Li 2020-01-24 2509 err = "failed to reference bcache module";
cafe563591446c Kent Overstreet 2013-03-23 2510 if (!try_module_get(THIS_MODULE))
50246693f81fe8 Christoph Hellwig 2020-01-24 2511 goto out;
cafe563591446c Kent Overstreet 2013-03-23 2512
a59ff6ccc2bf2e Coly Li 2019-06-28 2513 /* For latest state of bcache_is_reboot */
a59ff6ccc2bf2e Coly Li 2019-06-28 2514 smp_mb();
29cda393bcaad1 Coly Li 2020-01-24 2515 err = "bcache is in reboot";
a59ff6ccc2bf2e Coly Li 2019-06-28 2516 if (bcache_is_reboot)
50246693f81fe8 Christoph Hellwig 2020-01-24 2517 goto out_module_put;
a59ff6ccc2bf2e Coly Li 2019-06-28 2518
50246693f81fe8 Christoph Hellwig 2020-01-24 2519 ret = -ENOMEM;
50246693f81fe8 Christoph Hellwig 2020-01-24 2520 err = "cannot allocate memory";
a56489d4b3c914 Florian Schmaus 2018-07-26 2521 path = kstrndup(buffer, size, GFP_KERNEL);
a56489d4b3c914 Florian Schmaus 2018-07-26 2522 if (!path)
50246693f81fe8 Christoph Hellwig 2020-01-24 2523 goto out_module_put;
a56489d4b3c914 Florian Schmaus 2018-07-26 2524
a56489d4b3c914 Florian Schmaus 2018-07-26 2525 sb = kmalloc(sizeof(struct cache_sb), GFP_KERNEL);
a56489d4b3c914 Florian Schmaus 2018-07-26 2526 if (!sb)
50246693f81fe8 Christoph Hellwig 2020-01-24 2527 goto out_free_path;
cafe563591446c Kent Overstreet 2013-03-23 2528
50246693f81fe8 Christoph Hellwig 2020-01-24 2529 ret = -EINVAL;
cafe563591446c Kent Overstreet 2013-03-23 2530 err = "failed to open device";
cafe563591446c Kent Overstreet 2013-03-23 2531 bdev = blkdev_get_by_path(strim(path),
cafe563591446c Kent Overstreet 2013-03-23 2532 FMODE_READ|FMODE_WRITE|FMODE_EXCL,
cafe563591446c Kent Overstreet 2013-03-23 2533 sb);
f59fce847fc848 Kent Overstreet 2013-05-15 2534 if (IS_ERR(bdev)) {
a9dd53adbb84c1 Gabriel de Perthuis 2013-05-04 2535 if (bdev == ERR_PTR(-EBUSY)) {
a9dd53adbb84c1 Gabriel de Perthuis 2013-05-04 2536 bdev = lookup_bdev(strim(path));
789d21dbd9d888 Jianjian Huo 2014-07-13 2537 mutex_lock(&bch_register_lock);
a9dd53adbb84c1 Gabriel de Perthuis 2013-05-04 2538 if (!IS_ERR(bdev) && bch_is_open(bdev))
a9dd53adbb84c1 Gabriel de Perthuis 2013-05-04 2539 err = "device already registered";
a9dd53adbb84c1 Gabriel de Perthuis 2013-05-04 2540 else
cafe563591446c Kent Overstreet 2013-03-23 2541 err = "device busy";
789d21dbd9d888 Jianjian Huo 2014-07-13 2542 mutex_unlock(&bch_register_lock);
4b758df21ee708 Jan Kara 2017-09-06 2543 if (!IS_ERR(bdev))
4b758df21ee708 Jan Kara 2017-09-06 2544 bdput(bdev);
d7076f21629f8f Gabriel de Perthuis 2015-11-29 2545 if (attr == &ksysfs_register_quiet)
50246693f81fe8 Christoph Hellwig 2020-01-24 2546 goto done;
a9dd53adbb84c1 Gabriel de Perthuis 2013-05-04 2547 }
50246693f81fe8 Christoph Hellwig 2020-01-24 2548 goto out_free_sb;
f59fce847fc848 Kent Overstreet 2013-05-15 2549 }
f59fce847fc848 Kent Overstreet 2013-05-15 2550
f59fce847fc848 Kent Overstreet 2013-05-15 2551 err = "failed to set blocksize";
f59fce847fc848 Kent Overstreet 2013-05-15 2552 if (set_blocksize(bdev, 4096))
50246693f81fe8 Christoph Hellwig 2020-01-24 2553 goto out_blkdev_put;
cafe563591446c Kent Overstreet 2013-03-23 2554
cfa0c56db9c087 Christoph Hellwig 2020-01-24 2555 err = read_super(sb, bdev, &sb_disk);
cafe563591446c Kent Overstreet 2013-03-23 2556 if (err)
50246693f81fe8 Christoph Hellwig 2020-01-24 2557 goto out_blkdev_put;
cafe563591446c Kent Overstreet 2013-03-23 2558
cc40daf91bdddb Tang Junhui 2018-03-05 2559 err = "failed to register device";
a58e88bfdc4d52 Coly Li 2020-10-01 2560
bb05520ea94f19 Alex Dewar 2020-10-09 2561 #ifdef CONFIG_BCACHE_ASYNC_REGISTRATION
9e23ccf8f0a22e Coly Li 2020-05-27 2562 /* register in asynchronous way */
9e23ccf8f0a22e Coly Li 2020-05-27 @2563 struct async_reg_args *args =
9e23ccf8f0a22e Coly Li 2020-05-27 2564 kzalloc(sizeof(struct async_reg_args), GFP_KERNEL);
9e23ccf8f0a22e Coly Li 2020-05-27 2565
9e23ccf8f0a22e Coly Li 2020-05-27 2566 if (!args) {
9e23ccf8f0a22e Coly Li 2020-05-27 2567 ret = -ENOMEM;
9e23ccf8f0a22e Coly Li 2020-05-27 2568 err = "cannot allocate memory";
9e23ccf8f0a22e Coly Li 2020-05-27 2569 goto out_put_sb_page;
9e23ccf8f0a22e Coly Li 2020-05-27 2570 }
9e23ccf8f0a22e Coly Li 2020-05-27 2571
9e23ccf8f0a22e Coly Li 2020-05-27 2572 args->path = path;
9e23ccf8f0a22e Coly Li 2020-05-27 2573 args->sb = sb;
9e23ccf8f0a22e Coly Li 2020-05-27 2574 args->sb_disk = sb_disk;
9e23ccf8f0a22e Coly Li 2020-05-27 2575 args->bdev = bdev;
9e23ccf8f0a22e Coly Li 2020-05-27 2576 register_device_aync(args);
9e23ccf8f0a22e Coly Li 2020-05-27 2577 /* No wait and returns to user space */
bb05520ea94f19 Alex Dewar 2020-10-09 2578 return size;
bb05520ea94f19 Alex Dewar 2020-10-09 2579 #else
2903381fce7100 Kent Overstreet 2013-04-11 2580 if (SB_IS_BDEV(sb)) {
cafe563591446c Kent Overstreet 2013-03-23 2581 struct cached_dev *dc = kzalloc(sizeof(*dc), GFP_KERNEL);
1fae7cf05293d3 Coly Li 2018-08-11 2582
f59fce847fc848 Kent Overstreet 2013-05-15 2583 if (!dc)
50246693f81fe8 Christoph Hellwig 2020-01-24 2584 goto out_put_sb_page;
cafe563591446c Kent Overstreet 2013-03-23 2585
4fa03402cda2fa Kent Overstreet 2014-03-17 2586 mutex_lock(&bch_register_lock);
cfa0c56db9c087 Christoph Hellwig 2020-01-24 2587 ret = register_bdev(sb, sb_disk, bdev, dc);
4fa03402cda2fa Kent Overstreet 2014-03-17 2588 mutex_unlock(&bch_register_lock);
bb6d355c2aff42 Coly Li 2019-04-25 2589 /* blkdev_put() will be called in cached_dev_free() */
fc8f19cc5dce18 Christoph Hellwig 2020-01-24 2590 if (ret < 0)
fc8f19cc5dce18 Christoph Hellwig 2020-01-24 2591 goto out_free_sb;
cafe563591446c Kent Overstreet 2013-03-23 2592 } else {
cafe563591446c Kent Overstreet 2013-03-23 2593 struct cache *ca = kzalloc(sizeof(*ca), GFP_KERNEL);
1fae7cf05293d3 Coly Li 2018-08-11 2594
f59fce847fc848 Kent Overstreet 2013-05-15 2595 if (!ca)
50246693f81fe8 Christoph Hellwig 2020-01-24 2596 goto out_put_sb_page;
cafe563591446c Kent Overstreet 2013-03-23 2597
bb6d355c2aff42 Coly Li 2019-04-25 2598 /* blkdev_put() will be called in bch_cache_release() */
cfa0c56db9c087 Christoph Hellwig 2020-01-24 2599 if (register_cache(sb, sb_disk, bdev, ca) != 0)
fc8f19cc5dce18 Christoph Hellwig 2020-01-24 2600 goto out_free_sb;
50246693f81fe8 Christoph Hellwig 2020-01-24 2601 }
bb05520ea94f19 Alex Dewar 2020-10-09 2602 #endif
50246693f81fe8 Christoph Hellwig 2020-01-24 2603
50246693f81fe8 Christoph Hellwig 2020-01-24 2604 done:
f59fce847fc848 Kent Overstreet 2013-05-15 2605 kfree(sb);
f59fce847fc848 Kent Overstreet 2013-05-15 2606 kfree(path);
f59fce847fc848 Kent Overstreet 2013-05-15 2607 module_put(THIS_MODULE);
50246693f81fe8 Christoph Hellwig 2020-01-24 2608 return size;
f59fce847fc848 Kent Overstreet 2013-05-15 2609
50246693f81fe8 Christoph Hellwig 2020-01-24 2610 out_put_sb_page:
cfa0c56db9c087 Christoph Hellwig 2020-01-24 2611 put_page(virt_to_page(sb_disk));
50246693f81fe8 Christoph Hellwig 2020-01-24 2612 out_blkdev_put:
cafe563591446c Kent Overstreet 2013-03-23 2613 blkdev_put(bdev, FMODE_READ | FMODE_WRITE | FMODE_EXCL);
50246693f81fe8 Christoph Hellwig 2020-01-24 2614 out_free_sb:
50246693f81fe8 Christoph Hellwig 2020-01-24 2615 kfree(sb);
50246693f81fe8 Christoph Hellwig 2020-01-24 2616 out_free_path:
50246693f81fe8 Christoph Hellwig 2020-01-24 2617 kfree(path);
ae3cd299919af6 Coly Li 2020-01-24 2618 path = NULL;
50246693f81fe8 Christoph Hellwig 2020-01-24 2619 out_module_put:
50246693f81fe8 Christoph Hellwig 2020-01-24 2620 module_put(THIS_MODULE);
50246693f81fe8 Christoph Hellwig 2020-01-24 2621 out:
46f5aa8806e34f Joe Perches 2020-05-27 2622 pr_info("error %s: %s\n", path?path:"", err);
50246693f81fe8 Christoph Hellwig 2020-01-24 2623 return ret;
cafe563591446c Kent Overstreet 2013-03-23 2624 }
cafe563591446c Kent Overstreet 2013-03-23 2625

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

Attachment: .config.gz
Description: application/gzip