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))) 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
Attachment:
.config.gz
Description: application/gzip
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel