:::::: :::::: Manual check reason: "commit no functional change" :::::: Manual check reason: "low confidence static check first_new_problem: include/trace/events/ext4.h:1820:1: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]" ::::::
CC: l...@lists.linux.dev CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Wang Jianchao <wangjianc...@kuaishou.com> CC: "Theodore Ts'o" <ty...@mit.edu> CC: Andreas Dilger <adil...@dilger.ca> CC: Jan Kara <j...@suse.cz> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: c1084b6c5620a743f86947caca66d90f24060f56 commit: 6920b3913235f517728bb69abe9b39047a987113 ext4: add new helper interface ext4_try_to_trim_range() date: 11 months ago :::::: branch date: 10 hours ago :::::: commit date: 11 months ago config: s390-randconfig-c005-20220702 (https://download.01.org/0day-ci/archive/20220705/202207051222.g2bplcnh-...@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 5d787689b14574fe58ba9798563f4a6df6059fbf) 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 s390 cross compiling tool for clang build # apt-get install binutils-s390x-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6920b3913235f517728bb69abe9b39047a987113 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 6920b3913235f517728bb69abe9b39047a987113 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390 clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <l...@intel.com> clang-analyzer warnings: (new ones prefixed by >>) ^ fs/ext4/mballoc.c:6375:7: note: Assuming the condition is true if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { ^ include/linux/compiler.h:78:40: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~ fs/ext4/mballoc.c:6375:3: note: Taking false branch if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { ^ fs/ext4/mballoc.c:6387:7: note: Assuming 'group' is not equal to 'last_group' if (group == last_group) ^~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6387:3: note: Taking false branch if (group == last_group) ^ fs/ext4/mballoc.c:6390:7: note: Assuming 'minlen' is > field 'bb_free' if (grp->bb_free >= minlen) { ^~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6390:3: note: Taking false branch if (grp->bb_free >= minlen) { ^ fs/ext4/mballoc.c:6372:28: note: Assuming 'group' is <= 'last_group' for (group = first_group; group <= last_group; group++) { ^~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6372:2: note: Loop condition is true. Entering loop body for (group = first_group; group <= last_group; group++) { ^ fs/ext4/mballoc.c:6375:7: note: Assuming the condition is true if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { ^ include/linux/compiler.h:78:40: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~ fs/ext4/mballoc.c:6375:3: note: Taking false branch if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { ^ fs/ext4/mballoc.c:6387:7: note: Assuming 'group' is not equal to 'last_group' if (group == last_group) ^~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6387:3: note: Taking false branch if (group == last_group) ^ fs/ext4/mballoc.c:6390:7: note: Assuming 'minlen' is <= field 'bb_free' if (grp->bb_free >= minlen) { ^~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6390:3: note: Taking true branch if (grp->bb_free >= minlen) { ^ fs/ext4/mballoc.c:6391:10: note: Calling 'ext4_trim_all_free' cnt = ext4_trim_all_free(sb, group, first_cluster, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6298:6: note: Assuming 'ret' is 0 if (ret) { ^~~ fs/ext4/mballoc.c:6298:2: note: Taking false branch if (ret) { ^ fs/ext4/mballoc.c:6306:6: note: Assuming the condition is true if (!EXT4_MB_GRP_WAS_TRIMMED(e4b.bd_info) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6306:44: note: Left side of '||' is true if (!EXT4_MB_GRP_WAS_TRIMMED(e4b.bd_info) || ^ fs/ext4/mballoc.c:6308:9: note: Calling 'ext4_try_to_trim_range' ret = ext4_try_to_trim_range(sb, &e4b, start, max, minblocks); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6230:11: note: Assuming 'start' is >= field 'bb_first_free' start = (e4b->bd_info->bb_first_free > start) ? ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6230:10: note: '?' condition is false start = (e4b->bd_info->bb_first_free > start) ? ^ fs/ext4/mballoc.c:6235:9: note: Assuming 'start' is <= 'max' while (start <= max) { ^~~~~~~~~~~~ fs/ext4/mballoc.c:6235:2: note: Loop condition is true. Entering loop body while (start <= max) { ^ fs/ext4/mballoc.c:6237:7: note: Assuming 'start' is <= 'max' if (start > max) ^~~~~~~~~~~ fs/ext4/mballoc.c:6237:3: note: Taking false branch if (start > max) ^ fs/ext4/mballoc.c:6241:7: note: Assuming the condition is false if ((next - start) >= minblocks) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6241:3: note: Taking false branch if ((next - start) >= minblocks) { ^ fs/ext4/mballoc.c:6251:28: note: Dereference of null pointer if (fatal_signal_pending(current)) { ^ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^~~~~~~~~~~~~~~~~~~~~~~~~ arch/s390/include/asm/lowcore.h:200:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ >> include/trace/events/ext4.h:1820:1: warning: Dereference of null pointer >> [clang-analyzer-core.NullDereference] DEFINE_EVENT(ext4__trim, ext4_trim_extent, ^ include/linux/tracepoint.h:542:2: note: expanded from macro 'DEFINE_EVENT' DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) ^ include/linux/tracepoint.h:420:15: note: expanded from macro 'DECLARE_TRACE' cpu_online(raw_smp_processor_id()), \ ^ arch/s390/include/asm/smp.h:15:32: note: expanded from macro 'raw_smp_processor_id' #define raw_smp_processor_id() (S390_lowcore.cpu_nr) ^ fs/ext4/mballoc.c:6352:6: note: Assuming 'minlen' is <= field 's_clusters_per_group' if (minlen > EXT4_CLUSTERS_PER_GROUP(sb) || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6352:6: note: Left side of '||' is false fs/ext4/mballoc.c:6353:6: note: Assuming 'start' is < 'max_blks' start >= max_blks || ^~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6352:6: note: Left side of '||' is false if (minlen > EXT4_CLUSTERS_PER_GROUP(sb) || ^ fs/ext4/mballoc.c:6354:6: note: Assuming field 'len' is >= field 's_blocksize' range->len < sb->s_blocksize) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6352:2: note: Taking false branch if (minlen > EXT4_CLUSTERS_PER_GROUP(sb) || ^ fs/ext4/mballoc.c:6356:6: note: Assuming 'end' is < 'max_blks' if (end >= max_blks) ^~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6356:2: note: Taking false branch if (end >= max_blks) ^ fs/ext4/mballoc.c:6358:6: note: Assuming 'end' is > 'first_data_blk' if (end <= first_data_blk) ^~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6358:2: note: Taking false branch if (end <= first_data_blk) ^ fs/ext4/mballoc.c:6360:6: note: Assuming 'start' is >= 'first_data_blk' if (start < first_data_blk) ^~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6360:2: note: Taking false branch if (start < first_data_blk) ^ fs/ext4/mballoc.c:6372:28: note: Assuming 'group' is <= 'last_group' for (group = first_group; group <= last_group; group++) { ^~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6372:2: note: Loop condition is true. Entering loop body for (group = first_group; group <= last_group; group++) { ^ fs/ext4/mballoc.c:6375:7: note: Assuming the condition is true if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { ^ include/linux/compiler.h:78:40: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~ fs/ext4/mballoc.c:6375:3: note: Taking false branch if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { ^ fs/ext4/mballoc.c:6387:7: note: Assuming 'group' is not equal to 'last_group' if (group == last_group) ^~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6387:3: note: Taking false branch if (group == last_group) ^ fs/ext4/mballoc.c:6390:7: note: Assuming 'minlen' is > field 'bb_free' if (grp->bb_free >= minlen) { ^~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6390:3: note: Taking false branch if (grp->bb_free >= minlen) { ^ fs/ext4/mballoc.c:6372:28: note: Assuming 'group' is <= 'last_group' for (group = first_group; group <= last_group; group++) { ^~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6372:2: note: Loop condition is true. Entering loop body for (group = first_group; group <= last_group; group++) { ^ fs/ext4/mballoc.c:6375:7: note: Assuming the condition is true if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { ^ include/linux/compiler.h:78:40: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~ fs/ext4/mballoc.c:6375:3: note: Taking false branch if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) { ^ fs/ext4/mballoc.c:6387:7: note: Assuming 'group' is not equal to 'last_group' if (group == last_group) ^~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6387:3: note: Taking false branch if (group == last_group) ^ fs/ext4/mballoc.c:6390:7: note: Assuming 'minlen' is > field 'bb_free' if (grp->bb_free >= minlen) { ^~~~~~~~~~~~~~~~~~~~~~ fs/ext4/mballoc.c:6390:3: note: Taking false branch if (grp->bb_free >= minlen) { ^ fs/ext4/mballoc.c:6372:28: note: Assuming 'group' is <= 'last_group' vim +1820 include/trace/events/ext4.h b3d4c2b10b68d2 Tao Ma 2011-07-11 1819 b3d4c2b10b68d2 Tao Ma 2011-07-11 @1820 DEFINE_EVENT(ext4__trim, ext4_trim_extent, b3d4c2b10b68d2 Tao Ma 2011-07-11 1821 b3d4c2b10b68d2 Tao Ma 2011-07-11 1822 TP_PROTO(struct super_block *sb, b3d4c2b10b68d2 Tao Ma 2011-07-11 1823 ext4_group_t group, b3d4c2b10b68d2 Tao Ma 2011-07-11 1824 ext4_grpblk_t start, b3d4c2b10b68d2 Tao Ma 2011-07-11 1825 ext4_grpblk_t len), b3d4c2b10b68d2 Tao Ma 2011-07-11 1826 b3d4c2b10b68d2 Tao Ma 2011-07-11 1827 TP_ARGS(sb, group, start, len) b3d4c2b10b68d2 Tao Ma 2011-07-11 1828 ); b3d4c2b10b68d2 Tao Ma 2011-07-11 1829 :::::: The code at line 1820 was first introduced by commit :::::: b3d4c2b10b68d205d3eb1b5c17dcb4649a502798 ext4: Add new ext4 trim tracepoints :::::: TO: Tao Ma <boyu...@taobao.com> :::::: CC: Theodore Ts'o <ty...@mit.edu> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org