CC: [email protected] CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: "Matthew Wilcox (Oracle)" <[email protected]> TO: [email protected] TO: [email protected] CC: "Matthew Wilcox (Oracle)" <[email protected]>
Hi "Matthew, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on next-20210810] [cannot apply to xfs-linux/for-next v5.14-rc5 v5.14-rc4 v5.14-rc3 v5.14-rc5] [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/Matthew-Wilcox-Oracle/iomap-writethrough-for-O_SYNC-writes/20210811-105421 base: 92d00774360dfd4151f15ab9905c643347b9f242 :::::: branch date: 16 hours ago :::::: commit date: 16 hours ago config: x86_64-randconfig-c001-20210810 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d39ebdae674c8efc84ebe8dc32716ec353220530) 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 x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # https://github.com/0day-ci/linux/commit/eaa6452e467c4c6d3b434da81ede9b3a5b9fbb0d git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Matthew-Wilcox-Oracle/iomap-writethrough-for-O_SYNC-writes/20210811-105421 git checkout eaa6452e467c4c6d3b434da81ede9b3a5b9fbb0d # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/udf/super.c:1679:6: note: Assuming field 'part_descs_loc' is non-null if (!data.part_descs_loc) ^~~~~~~~~~~~~~~~~~~~ fs/udf/super.c:1679:2: note: Taking false branch if (!data.part_descs_loc) ^ fs/udf/super.c:1686:11: note: 'done' is false for (; (!done && block <= lastblock); block++) { ^~~~ fs/udf/super.c:1686:10: note: Left side of '&&' is true for (; (!done && block <= lastblock); block++) { ^ fs/udf/super.c:1686:19: note: Assuming 'block' is <= 'lastblock' for (; (!done && block <= lastblock); block++) { ^~~~~~~~~~~~~~~~~~ fs/udf/super.c:1686:2: note: Loop condition is true. Entering loop body for (; (!done && block <= lastblock); block++) { ^ fs/udf/super.c:1688:7: note: Assuming 'bh' is non-null if (!bh) ^~~ fs/udf/super.c:1688:3: note: Taking false branch if (!bh) ^ fs/udf/super.c:1694:3: note: Control jumps to 'case 7:' at line 1717 switch (ident) { ^ fs/udf/super.c:1720:8: note: Assuming the condition is true if (IS_ERR(curr)) { ^~~~~~~~~~~~ fs/udf/super.c:1720:4: note: Taking true branch if (IS_ERR(curr)) { ^ fs/udf/super.c:1723:5: note: Control jumps to line 1768 goto out; ^ fs/udf/super.c:1769:2: note: Address of stack memory associated with local variable 'data' returned to caller return ret; ^ ~~~ fs/udf/super.c:1769:2: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc] return ret; ^ fs/udf/super.c:1800:8: note: Calling 'udf_process_sequence' ret = udf_process_sequence(sb, main_s, main_e, fileset); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/udf/super.c:1679:6: note: Assuming field 'part_descs_loc' is non-null if (!data.part_descs_loc) ^~~~~~~~~~~~~~~~~~~~ fs/udf/super.c:1679:2: note: Taking false branch if (!data.part_descs_loc) ^ fs/udf/super.c:1686:11: note: 'done' is false for (; (!done && block <= lastblock); block++) { ^~~~ fs/udf/super.c:1686:10: note: Left side of '&&' is true for (; (!done && block <= lastblock); block++) { ^ fs/udf/super.c:1686:19: note: Assuming 'block' is <= 'lastblock' for (; (!done && block <= lastblock); block++) { ^~~~~~~~~~~~~~~~~~ fs/udf/super.c:1686:2: note: Loop condition is true. Entering loop body for (; (!done && block <= lastblock); block++) { ^ fs/udf/super.c:1688:7: note: Assuming 'bh' is non-null if (!bh) ^~~ fs/udf/super.c:1688:3: note: Taking false branch if (!bh) ^ fs/udf/super.c:1694:3: note: Control jumps to 'case 5:' at line 1718 switch (ident) { ^ fs/udf/super.c:1720:4: note: Taking true branch if (IS_ERR(curr)) { ^ fs/udf/super.c:1723:5: note: Control jumps to line 1768 goto out; ^ fs/udf/super.c:1768:2: note: Memory is released kfree(data.part_descs_loc); ^~~~~~~~~~~~~~~~~~~~~~~~~~ fs/udf/super.c:1769:2: note: Use of memory after it is freed return ret; ^ ~~~ fs/udf/super.c:2491:10: warning: Although the value stored to 'etype' is used in the enclosing expression, the value is never actually read from 'etype' [clang-analyzer-deadcode.DeadStores] while ((etype = udf_next_aext(table, &epos, &eloc, &elen, 1)) != -1) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/udf/super.c:2491:10: note: Although the value stored to 'etype' is used in the enclosing expression, the value is never actually read from 'etype' while ((etype = udf_next_aext(table, &epos, &eloc, &elen, 1)) != -1) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. >> fs/iomap/buffered-io.c:674:15: warning: Value stored to 'blksize' during its >> initialization is never read [clang-analyzer-deadcode.DeadStores] unsigned int blksize = i_blocksize(inode); ^~~~~~~ ~~~~~~~~~~~~~~~~~~ fs/iomap/buffered-io.c:674:15: note: Value stored to 'blksize' during its initialization is never read unsigned int blksize = i_blocksize(inode); ^~~~~~~ ~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. Suppressed 6 warnings (6 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 6 warnings generated. Suppressed 6 warnings (6 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. fs/proc/base.c:282:3: warning: Value stored to 'env_start' is never read [clang-analyzer-deadcode.DeadStores] env_start = env_end = arg_end; ^ ~~~~~~~~~~~~~~~~~ fs/proc/base.c:282:3: note: Value stored to 'env_start' is never read env_start = env_end = arg_end; ^ ~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. mm/swap_state.c:165:9: warning: Value stored to 'entry' during its initialization is never read [clang-analyzer-deadcode.DeadStores] void *entry = xas_store(&xas, shadow); ^~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ mm/swap_state.c:165:9: note: Value stored to 'entry' during its initialization is never read void *entry = xas_store(&xas, shadow); ^~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. mm/swapfile.c:533:28: warning: Value stored to 'ci' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct swap_cluster_info *ci = si->cluster_info + idx; ^~ ~~~~~~~~~~~~~~~~~~~~~~ mm/swapfile.c:533:28: note: Value stored to 'ci' during its initialization is never read struct swap_cluster_info *ci = si->cluster_info + idx; ^~ ~~~~~~~~~~~~~~~~~~~~~~ mm/swapfile.c:1322:2: warning: Value stored to 'count' is never read [clang-analyzer-deadcode.DeadStores] count = p->swap_map[offset]; ^ ~~~~~~~~~~~~~~~~~~~ mm/swapfile.c:1322:2: note: Value stored to 'count' is never read count = p->swap_map[offset]; ^ ~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 17 warnings generated. include/linux/jhash.h:127:5: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] b += k[1]; ^ mm/hugetlb.c:4879:6: note: Assuming the condition is false if (is_vma_resv_set(vma, HPAGE_RESV_UNMAPPED)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/hugetlb.c:4879:2: note: Taking false branch if (is_vma_resv_set(vma, HPAGE_RESV_UNMAPPED)) { ^ mm/hugetlb.c:4891:6: note: Assuming 'idx' is < 'size' if (idx >= size) ^~~~~~~~~~~ mm/hugetlb.c:4891:2: note: Taking false branch if (idx >= size) ^ mm/hugetlb.c:4896:6: note: Assuming 'page' is null if (!page) { vim +/blksize +674 fs/iomap/buffered-io.c afc51aaa22f26cb Darrick J. Wong 2019-07-15 661 eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 662) /* Rearrange file so we don't need this forward declaration */ eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 663) static struct iomap_ioend *iomap_add_to_ioend(struct inode *inode, eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 664) loff_t pos, size_t len, struct page *page, eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 665) struct iomap_page *iop, struct iomap *iomap, eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 666) struct iomap_ioend *ioend, struct writeback_control *wbc, eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 667) struct list_head *iolist); eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 668) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 669) /* Returns true if we can skip dirtying the page */ eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 670) static bool iomap_write_through(struct iomap_write_ctx *iwc, eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 671) struct iomap *iomap, struct inode *inode, struct page *page, eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 672) loff_t pos, size_t len) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 673) { eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 @674) unsigned int blksize = i_blocksize(inode); eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 675) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 676) if (!iwc || !iwc->write_through) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 677) return false; eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 678) if (PageDirty(page)) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 679) return true; eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 680) if (PageWriteback(page)) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 681) return false; eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 682) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 683) /* Can't allocate blocks here because we don't have ->prepare_ioend */ eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 684) if (iomap->type != IOMAP_MAPPED || iomap->type != IOMAP_UNWRITTEN || eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 685) iomap->flags & IOMAP_F_SHARED) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 686) return false; eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 687) eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 688) len = round_up(pos + len - 1, blksize); eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 689) pos = round_down(pos, blksize); eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 690) len -= pos; eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 691) iwc->ioend = iomap_add_to_ioend(inode, pos, len, page, eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 692) iomap_page_create(inode, page), iomap, iwc->ioend, NULL, eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 693) &iwc->iolist); eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 694) set_page_writeback(page); eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 695) return true; eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 696) } eaa6452e467c4c6 Matthew Wilcox (Oracle 2021-08-11 697) --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
