On 2021/06/03 6:26, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next > head: 2c243153d1d4be4e23735cd10984ac17c7a54531 > commit: 2c243153d1d4be4e23735cd10984ac17c7a54531 [20/20] dm: Forbid requeue of writes to zones > config: riscv-randconfig-r011-20210602 (attached as .config) > compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project d41cb6bb2607fa5c7a9df2b3dab361353657d225) > 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 > # install riscv cross compiling tool for clang build > # apt-get install binutils-riscv64-linux-gnu > # https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?id=2c243153d1d4be4e23735cd10984ac17c7a54531 > git remote add dm https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git > git fetch --no-tags dm for-next > git checkout 2c243153d1d4be4e23735cd10984ac17c7a54531 > # save the attached .config to linux build tree > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv > > 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/dm.c:850:43: warning: variable 'bio' is uninitialized when used here [-Wuninitialized] > !WARN_ON_ONCE(dm_is_zone_write(md, bio))) > ^~~ > include/asm-generic/bug.h:102:25: note: expanded from macro 'WARN_ON_ONCE' > int __ret_warn_on = !!(condition); \ > ^~~~~~~~~ > drivers/md/dm.c:832:17: note: initialize the variable 'bio' to silence this warning > struct bio *bio; > ^ > = NULL > 1 warning generated. > > > vim +/bio +850 drivers/md/dm.c > > 823 > 824 /* > 825 * Decrements the number of outstanding ios that a bio has been > 826 * cloned into, completing the original io if necc. > 827 */ > 828 static void dec_pending(struct dm_io *io, blk_status_t error) > 829 { > 830 unsigned long flags; > 831 blk_status_t io_error; > 832 struct bio *bio; > 833 struct mapped_device *md = io->md; > 834 > 835 /* Push-back supersedes any I/O errors */ > 836 if (unlikely(error)) { > 837 spin_lock_irqsave(&io->endio_lock, flags); > 838 if (!(io->status == BLK_STS_DM_REQUEUE && __noflush_suspending(md))) > 839 io->status = error; > 840 spin_unlock_irqrestore(&io->endio_lock, flags); > 841 } > 842 > 843 if (atomic_dec_and_test(&io->io_count)) { > 844 if (io->status == BLK_STS_DM_REQUEUE) { > 845 /* > 846 * Target requested pushing back the I/O. > 847 */ > 848 spin_lock_irqsave(&md->deferred_lock, flags); > 849 if (__noflush_suspending(md) && > > 850 !WARN_ON_ONCE(dm_is_zone_write(md, bio))) Mike, This needs to be WARN_ON_ONCE(dm_is_zone_write(md, io->orig_bio)). Or better, we can move line 863 below right after the "if (atomic_dec_and_test(&io->io_count)) {" above. Do you want me to resend ? Or can you fix it up ? Thanks ! > 851 /* NOTE early return due to BLK_STS_DM_REQUEUE below */ > 852 bio_list_add_head(&md->deferred, io->orig_bio); > 853 else > 854 /* > 855 * noflush suspend was interrupted or this is > 856 * a write to a zoned target. > 857 */ > 858 io->status = BLK_STS_IOERR; > 859 spin_unlock_irqrestore(&md->deferred_lock, flags); > 860 } > 861 > 862 io_error = io->status; > 863 bio = io->orig_bio; > 864 end_io_acct(io); > 865 free_io(md, io); > 866 > 867 if (io_error == BLK_STS_DM_REQUEUE) > 868 return; > 869 > 870 if ((bio->bi_opf & REQ_PREFLUSH) && bio->bi_iter.bi_size) { > 871 /* > 872 * Preflush done for flush with data, reissue > 873 * without REQ_PREFLUSH. > 874 */ > 875 bio->bi_opf &= ~REQ_PREFLUSH; > 876 queue_io(md, bio); > 877 } else { > 878 /* done with normal IO or empty flush */ > 879 if (io_error) > 880 bio->bi_status = io_error; > 881 bio_endio(bio); > 882 } > 883 } > 884 } > 885 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx > -- Damien Le Moal Western Digital Research -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel