:::::: 
:::::: 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

Reply via email to