From: kernel test robot <lkp@intel.com>
To: linan666@huaweicloud.com, song@kernel.org, neilb@suse.com,
shli@fb.com, mariusz.tkaczyk@linux.intel.com
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org,
linan666@huaweicloud.com, yukuai3@huawei.com,
yi.zhang@huawei.com, houtao1@huawei.com, yangerkun@huawei.com
Subject: Re: [PATCH v3 3/4] md: sync blockdev before stopping raid or setting readonly
Date: Thu, 25 Jan 2024 21:56:18 +0800 [thread overview]
Message-ID: <202401252146.3yACLRcr-lkp@intel.com> (raw)
In-Reply-To: <20240125062841.1721193-4-linan666@huaweicloud.com>
Hi,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.8-rc1 next-20240125]
[cannot apply to song-md/md-next]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/linan666-huaweicloud-com/md-Don-t-clear-MD_CLOSING-when-the-raid-is-about-to-stop/20240125-144040
base: linus/master
patch link: https://lore.kernel.org/r/20240125062841.1721193-4-linan666%40huaweicloud.com
patch subject: [PATCH v3 3/4] md: sync blockdev before stopping raid or setting readonly
config: hexagon-allyesconfig (https://download.01.org/0day-ci/archive/20240125/202401252146.3yACLRcr-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project a31a60074717fc40887cfe132b77eec93bedd307)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240125/202401252146.3yACLRcr-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401252146.3yACLRcr-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/md/md.c:43:
In file included from include/linux/blkdev.h:9:
In file included from include/linux/blk_types.h:10:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:12:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:328:
include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
547 | val = __raw_readb(PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
560 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
| ~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
| ^
In file included from drivers/md/md.c:43:
In file included from include/linux/blkdev.h:9:
In file included from include/linux/blk_types.h:10:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:12:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:328:
include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
573 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
| ~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
| ^
In file included from drivers/md/md.c:43:
In file included from include/linux/blkdev.h:9:
In file included from include/linux/blk_types.h:10:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:12:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/hexagon/include/asm/io.h:328:
include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
584 | __raw_writeb(value, PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
594 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
604 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
>> drivers/md/md.c:4521:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
4521 | default:
| ^
drivers/md/md.c:4521:2: note: insert 'break;' to avoid fall-through
4521 | default:
| ^
| break;
7 warnings generated.
vim +4521 drivers/md/md.c
9e653b6342c940 NeilBrown 2006-06-26 4495
9e653b6342c940 NeilBrown 2006-06-26 4496 static ssize_t
fd01b88c75a718 NeilBrown 2011-10-11 4497 array_state_store(struct mddev *mddev, const char *buf, size_t len)
9e653b6342c940 NeilBrown 2006-06-26 4498 {
6497709b5d1bcc NeilBrown 2017-03-15 4499 int err = 0;
9e653b6342c940 NeilBrown 2006-06-26 4500 enum array_state st = match_word(buf, array_states);
242b3580d1a1d0 Li Nan 2024-01-25 4501 bool clear_md_closing = false;
6791875e2e5393 NeilBrown 2014-12-15 4502
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4503 /* No lock dependent actions */
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4504 switch (st) {
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4505 case suspended: /* not supported yet */
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4506 case write_pending: /* cannot be set */
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4507 case active_idle: /* cannot be set */
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4508 case broken: /* cannot be set */
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4509 case bad_word:
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4510 return -EINVAL;
242b3580d1a1d0 Li Nan 2024-01-25 4511 case clear:
242b3580d1a1d0 Li Nan 2024-01-25 4512 case readonly:
242b3580d1a1d0 Li Nan 2024-01-25 4513 case inactive:
242b3580d1a1d0 Li Nan 2024-01-25 4514 case read_auto:
242b3580d1a1d0 Li Nan 2024-01-25 4515 if (!mddev->pers || !md_is_rdwr(mddev))
242b3580d1a1d0 Li Nan 2024-01-25 4516 break;
242b3580d1a1d0 Li Nan 2024-01-25 4517 err = mddev_set_closing_and_sync_blockdev(mddev);
242b3580d1a1d0 Li Nan 2024-01-25 4518 if (err)
242b3580d1a1d0 Li Nan 2024-01-25 4519 return err;
242b3580d1a1d0 Li Nan 2024-01-25 4520 clear_md_closing = true;
09f894affcf2da Mariusz Tkaczyk 2023-09-28 @4521 default:
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4522 break;
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4523 }
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4524
f97a5528b21eb1 Ye Bin 2022-09-20 4525 if (mddev->pers && (st == active || st == clean) &&
f97a5528b21eb1 Ye Bin 2022-09-20 4526 mddev->ro != MD_RDONLY) {
6791875e2e5393 NeilBrown 2014-12-15 4527 /* don't take reconfig_mutex when toggling between
6791875e2e5393 NeilBrown 2014-12-15 4528 * clean and active
6791875e2e5393 NeilBrown 2014-12-15 4529 */
6791875e2e5393 NeilBrown 2014-12-15 4530 spin_lock(&mddev->lock);
6791875e2e5393 NeilBrown 2014-12-15 4531 if (st == active) {
6791875e2e5393 NeilBrown 2014-12-15 4532 restart_array(mddev);
2953079c692da0 Shaohua Li 2016-12-08 4533 clear_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags);
91a6c4aded58cb Tomasz Majchrzak 2016-10-25 4534 md_wakeup_thread(mddev->thread);
6791875e2e5393 NeilBrown 2014-12-15 4535 wake_up(&mddev->sb_wait);
6791875e2e5393 NeilBrown 2014-12-15 4536 } else /* st == clean */ {
6791875e2e5393 NeilBrown 2014-12-15 4537 restart_array(mddev);
6497709b5d1bcc NeilBrown 2017-03-15 4538 if (!set_in_sync(mddev))
6791875e2e5393 NeilBrown 2014-12-15 4539 err = -EBUSY;
6791875e2e5393 NeilBrown 2014-12-15 4540 }
573275b58ee9e1 Tomasz Majchrzak 2016-06-30 4541 if (!err)
573275b58ee9e1 Tomasz Majchrzak 2016-06-30 4542 sysfs_notify_dirent_safe(mddev->sysfs_state);
6791875e2e5393 NeilBrown 2014-12-15 4543 spin_unlock(&mddev->lock);
c008f1d356277a NeilBrown 2015-06-12 4544 return err ?: len;
6791875e2e5393 NeilBrown 2014-12-15 4545 }
242b3580d1a1d0 Li Nan 2024-01-25 4546
6791875e2e5393 NeilBrown 2014-12-15 4547 err = mddev_lock(mddev);
6791875e2e5393 NeilBrown 2014-12-15 4548 if (err)
6791875e2e5393 NeilBrown 2014-12-15 4549 return err;
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4550
9e653b6342c940 NeilBrown 2006-06-26 4551 switch (st) {
9e653b6342c940 NeilBrown 2006-06-26 4552 case inactive:
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4553 /* stop an active array, return 0 otherwise */
90cf195d9bcb4b NeilBrown 2012-07-31 4554 if (mddev->pers)
a05b7ea03d72f3 NeilBrown 2012-07-19 4555 err = do_md_stop(mddev, 2, NULL);
9e653b6342c940 NeilBrown 2006-06-26 4556 break;
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4557 case clear:
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4558 err = do_md_stop(mddev, 0, NULL);
242b3580d1a1d0 Li Nan 2024-01-25 4559 if (!err)
242b3580d1a1d0 Li Nan 2024-01-25 4560 clear_md_closing = false;
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4561 break;
9e653b6342c940 NeilBrown 2006-06-26 4562 case readonly:
9e653b6342c940 NeilBrown 2006-06-26 4563 if (mddev->pers)
a05b7ea03d72f3 NeilBrown 2012-07-19 4564 err = md_set_readonly(mddev, NULL);
9e653b6342c940 NeilBrown 2006-06-26 4565 else {
f97a5528b21eb1 Ye Bin 2022-09-20 4566 mddev->ro = MD_RDONLY;
648b629ed40623 NeilBrown 2008-04-30 4567 set_disk_ro(mddev->gendisk, 1);
9e653b6342c940 NeilBrown 2006-06-26 4568 err = do_md_run(mddev);
9e653b6342c940 NeilBrown 2006-06-26 4569 }
9e653b6342c940 NeilBrown 2006-06-26 4570 break;
9e653b6342c940 NeilBrown 2006-06-26 4571 case read_auto:
9e653b6342c940 NeilBrown 2006-06-26 4572 if (mddev->pers) {
f97a5528b21eb1 Ye Bin 2022-09-20 4573 if (md_is_rdwr(mddev))
a05b7ea03d72f3 NeilBrown 2012-07-19 4574 err = md_set_readonly(mddev, NULL);
f97a5528b21eb1 Ye Bin 2022-09-20 4575 else if (mddev->ro == MD_RDONLY)
648b629ed40623 NeilBrown 2008-04-30 4576 err = restart_array(mddev);
648b629ed40623 NeilBrown 2008-04-30 4577 if (err == 0) {
f97a5528b21eb1 Ye Bin 2022-09-20 4578 mddev->ro = MD_AUTO_READ;
648b629ed40623 NeilBrown 2008-04-30 4579 set_disk_ro(mddev->gendisk, 0);
648b629ed40623 NeilBrown 2008-04-30 4580 }
9e653b6342c940 NeilBrown 2006-06-26 4581 } else {
f97a5528b21eb1 Ye Bin 2022-09-20 4582 mddev->ro = MD_AUTO_READ;
9e653b6342c940 NeilBrown 2006-06-26 4583 err = do_md_run(mddev);
9e653b6342c940 NeilBrown 2006-06-26 4584 }
9e653b6342c940 NeilBrown 2006-06-26 4585 break;
9e653b6342c940 NeilBrown 2006-06-26 4586 case clean:
9e653b6342c940 NeilBrown 2006-06-26 4587 if (mddev->pers) {
339421def582ab Song Liu 2015-10-08 4588 err = restart_array(mddev);
339421def582ab Song Liu 2015-10-08 4589 if (err)
339421def582ab Song Liu 2015-10-08 4590 break;
85572d7c75fd5b NeilBrown 2014-12-15 4591 spin_lock(&mddev->lock);
6497709b5d1bcc NeilBrown 2017-03-15 4592 if (!set_in_sync(mddev))
e691063a61f7f7 NeilBrown 2008-02-06 4593 err = -EBUSY;
85572d7c75fd5b NeilBrown 2014-12-15 4594 spin_unlock(&mddev->lock);
5bf295975416f8 NeilBrown 2009-05-07 4595 } else
5bf295975416f8 NeilBrown 2009-05-07 4596 err = -EINVAL;
9e653b6342c940 NeilBrown 2006-06-26 4597 break;
9e653b6342c940 NeilBrown 2006-06-26 4598 case active:
9e653b6342c940 NeilBrown 2006-06-26 4599 if (mddev->pers) {
339421def582ab Song Liu 2015-10-08 4600 err = restart_array(mddev);
339421def582ab Song Liu 2015-10-08 4601 if (err)
339421def582ab Song Liu 2015-10-08 4602 break;
2953079c692da0 Shaohua Li 2016-12-08 4603 clear_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags);
9e653b6342c940 NeilBrown 2006-06-26 4604 wake_up(&mddev->sb_wait);
9e653b6342c940 NeilBrown 2006-06-26 4605 err = 0;
9e653b6342c940 NeilBrown 2006-06-26 4606 } else {
f97a5528b21eb1 Ye Bin 2022-09-20 4607 mddev->ro = MD_RDWR;
648b629ed40623 NeilBrown 2008-04-30 4608 set_disk_ro(mddev->gendisk, 0);
9e653b6342c940 NeilBrown 2006-06-26 4609 err = do_md_run(mddev);
9e653b6342c940 NeilBrown 2006-06-26 4610 }
9e653b6342c940 NeilBrown 2006-06-26 4611 break;
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4612 default:
09f894affcf2da Mariusz Tkaczyk 2023-09-28 4613 err = -EINVAL;
9e653b6342c940 NeilBrown 2006-06-26 4614 break;
9e653b6342c940 NeilBrown 2006-06-26 4615 }
6791875e2e5393 NeilBrown 2014-12-15 4616
6791875e2e5393 NeilBrown 2014-12-15 4617 if (!err) {
1d23f178d56ae1 NeilBrown 2011-12-08 4618 if (mddev->hold_active == UNTIL_IOCTL)
1d23f178d56ae1 NeilBrown 2011-12-08 4619 mddev->hold_active = 0;
00bcb4ac7ee7e5 NeilBrown 2010-06-01 4620 sysfs_notify_dirent_safe(mddev->sysfs_state);
9e653b6342c940 NeilBrown 2006-06-26 4621 }
6791875e2e5393 NeilBrown 2014-12-15 4622 mddev_unlock(mddev);
242b3580d1a1d0 Li Nan 2024-01-25 4623
242b3580d1a1d0 Li Nan 2024-01-25 4624 if (clear_md_closing)
242b3580d1a1d0 Li Nan 2024-01-25 4625 clear_bit(MD_CLOSING, &mddev->flags);
242b3580d1a1d0 Li Nan 2024-01-25 4626
6791875e2e5393 NeilBrown 2014-12-15 4627 return err ?: len;
0fd62b861eac7d Neil Brown 2008-06-28 4628 }
80ca3a44f563a7 NeilBrown 2006-07-10 4629 static struct md_sysfs_entry md_array_state =
750f199ee8b578 NeilBrown 2014-09-30 4630 __ATTR_PREALLOC(array_state, S_IRUGO|S_IWUSR, array_state_show, array_state_store);
9e653b6342c940 NeilBrown 2006-06-26 4631
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-01-25 13:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-25 6:28 [PATCH v3 0/4] md: Don't clear MD_CLOSING when the raid is about to stop linan666
2024-01-25 6:28 ` [PATCH v3 1/4] " linan666
2024-01-25 6:28 ` [PATCH v3 2/4] md: factor out a helper to sync mddev linan666
2024-01-25 6:28 ` [PATCH v3 3/4] md: sync blockdev before stopping raid or setting readonly linan666
2024-01-25 13:56 ` kernel test robot [this message]
2024-01-25 6:28 ` [PATCH v3 4/4] md: check mddev->pers before calling md_set_readonly() linan666
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202401252146.3yACLRcr-lkp@intel.com \
--to=lkp@intel.com \
--cc=houtao1@huawei.com \
--cc=linan666@huaweicloud.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=mariusz.tkaczyk@linux.intel.com \
--cc=neilb@suse.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=shli@fb.com \
--cc=song@kernel.org \
--cc=yangerkun@huawei.com \
--cc=yi.zhang@huawei.com \
--cc=yukuai3@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.