:::::: 
:::::: Manual check reason: "low confidence static check warning: 
fs/btrfs/extent_io.c:479:26: warning: Uninitialized variable: entry [uninitvar]"
:::::: 

CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: David Sterba <dste...@suse.com>

tree:   https://github.com/kdave/btrfs-devel.git misc-next
head:   9a4b16cd9e0e63881ab30600f982e2fd49ba3d4e
commit: dcbe36e23dfcb24bcac106215a24da2221103a60 [76/116] btrfs: open code 
inexact rbtree search in tree_search
:::::: branch date: 5 days ago
:::::: commit date: 5 days ago
compiler: sparc64-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout dcbe36e23dfcb24bcac106215a24da2221103a60
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <l...@intel.com>


cppcheck warnings: (new ones prefixed by >>)
   In file included from fs/btrfs/transaction.c:
   fs/btrfs/extent_io.c:5928:7: warning: Local variable 'ret' shadows outer 
variable [shadowVariable]
     int ret;
         ^
   fs/btrfs/extent_io.c:5907:6: note: Shadowed declaration
    int ret;
        ^
   fs/btrfs/extent_io.c:5928:7: note: Shadow variable
     int ret;
         ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

   In file included from fs/btrfs/transaction.c:
   fs/btrfs/tree-log.h:55:28: warning: Uninitialized variables: 
ordered.file_offset, ordered.num_bytes, ordered.ram_bytes, ordered.disk_bytenr, 
ordered.disk_num_bytes, ordered.offset, ordered.bytes_left, 
ordered.outstanding_isize, ordered.truncated_len, ordered.flags, 
ordered.compress_type, ordered.qgroup_rsv, ordered.refs, ordered.inode, 
ordered.list, ordered.wait, ordered.rb_node, ordered.root_extent_list, 
ordered.work, ordered.completion, ordered.flush_work, ordered.work_list, 
ordered.physical, ordered.bdev [uninitvar]
     btrfs_put_ordered_extent(ordered);
                              ^
   fs/btrfs/transaction.c:179:28: warning: Uninitialized variable: 
root->commit_root [uninitvar]
     free_extent_buffer(root->commit_root);
                              ^
   fs/btrfs/transaction.c:229:30: warning: Uninitialized variable: cache 
[uninitvar]
     if (btrfs_block_group_done(cache)) {
                                ^
   fs/btrfs/transaction.c:227:48: note: Assignment 
'cache=caching_ctl->block_group', assigned value is <Uninit>
     struct btrfs_block_group *cache = caching_ctl->block_group;
                                                  ^
   fs/btrfs/transaction.c:229:30: note: Uninitialized variable: cache
     if (btrfs_block_group_done(cache)) {
                                ^
   fs/btrfs/transaction.c:927:11: warning: Uninitialized variable: t->state 
[uninitvar]
      if (t->state >= TRANS_STATE_COMMIT_START) {
             ^
>> fs/btrfs/transaction.c:1431:25: warning: Uninitialized variables: 
>> root.rb_node, root.node, root.commit_root, root.log_root, root.reloc_root, 
>> root.state, root.root_item, root.fs_info, root.dirty_log_pages, 
>> root.objectid_mutex, root.accounting_lock, root.block_rsv, root.log_mutex, 
>> root.log_writer_wait, root.log_batch, root.log_transid, 
>> root.log_transid_committed, root.last_log_commit, root.log_start_pid, 
>> root.last_trans, root.type, root.free_objectid, root.defrag_progress, 
>> root.defrag_max, root.dirty_list, root.root_list, root.inode_lock, 
>> root.inode_tree, root.delayed_nodes, root.anon_dev, root.root_item_lock, 
>> root.refs, root.delalloc_mutex, root.delalloc_lock, root.delalloc_inodes, 
>> root.delalloc_root, root.nr_delalloc_inodes, root.ordered_extent_mutex, 
>> root.ordered_extent_lock, root.ordered_extents, root.ordered_root, 
>> root.nr_ordered_extents, root.reloc_dirty_list, root.send_in_progress, 
>> root.dedupe_in_progress, root.snapshot_lock, root.snapshot_force_cow, 
>> root.qgroup_meta_rsv_lock
 , root.qgroup_meta_rsv_pertrans, root.qgroup_meta_rsv_prealloc, 
root.qgroup_flush_wait, root.nr_swapfiles, root.swapped_blocks, 
root.log_csum_range [uninitvar]
     btrfs_free_log(trans, root);
                           ^
   fs/btrfs/transaction.c:1871:40: warning: Uninitialized variables: 
pending.dentry, pending.dir, pending.root, pending.root_item, pending.snap, 
pending.inherit, pending.path, pending.block_rsv, pending.error, 
pending.anon_dev, pending.readonly [uninitvar]
     ret = create_pending_snapshot(trans, pending);
                                          ^
   fs/btrfs/transaction.c:1431:25: warning: Uninitialized variables: 
root.rb_node, root.node, root.commit_root, root.log_root, root.reloc_root, 
root.state, root.root_item, root.fs_info, root.dirty_log_pages, 
root.objectid_mutex, root.accounting_lock, root.block_rsv, root.log_mutex, 
root.log_writer_wait, root.log_batch, root.log_transid, 
root.log_transid_committed, root.last_log_commit, root.log_start_pid, 
root.last_trans, root.type, root.free_objectid, root.defrag_progress, 
root.defrag_max, root.dirty_list, root.root_list, root.inode_lock, 
root.inode_tree, root.delayed_nodes, root.anon_dev, root.root_item_lock, 
root.refs, root.delalloc_mutex, root.delalloc_lock, root.delalloc_inodes, 
root.delalloc_root, root.nr_delalloc_inodes, root.ordered_extent_mutex, 
root.ordered_extent_lock, root.ordered_extents, root.ordered_root, 
root.nr_ordered_extents, root.reloc_dirty_list, root.send_in_progress, 
root.dedupe_in_progress, root.snapshot_lock, root.snapshot_force_cow, 
root.qgroup_meta_rsv_lock
 , root.qgroup_meta_rsv_pertrans, root.qgroup_meta_rsv_prealloc, 
root.qgroup_flush_wait, root.nr_swapfiles, root.swapped_blocks, 
root.log_csum_range, root.leak_list [uninitvar]
     btrfs_free_log(trans, root);
                           ^
   fs/btrfs/transaction.c:1431:25: warning: Uninitialized variables: 
root.rb_node, root.node, root.commit_root, root.log_root, root.reloc_root, 
root.state, root.root_item, root.fs_info, root.dirty_log_pages, 
root.objectid_mutex, root.accounting_lock, root.block_rsv, root.log_mutex, 
root.log_writer_wait, root.log_batch, root.log_transid, 
root.log_transid_committed, root.last_log_commit, root.log_start_pid, 
root.last_trans, root.type, root.free_objectid, root.defrag_progress, 
root.defrag_max, root.dirty_list, root.root_list, root.inode_lock, 
root.inode_tree, root.delayed_nodes, root.anon_dev, root.root_item_lock, 
root.refs, root.delalloc_mutex, root.delalloc_lock, root.delalloc_inodes, 
root.delalloc_root, root.nr_delalloc_inodes, root.ordered_extent_mutex, 
root.ordered_extent_lock, root.ordered_extents, root.ordered_root, 
root.nr_ordered_extents, root.reloc_dirty_list, root.send_in_progress, 
root.dedupe_in_progress, root.snapshot_lock, root.snapshot_force_cow, 
root.qgroup_meta_rsv_lock
 , root.qgroup_meta_rsv_pertrans, root.qgroup_meta_rsv_prealloc, 
root.qgroup_flush_wait, root.nr_swapfiles, root.swapped_blocks, 
root.log_csum_range, root.alloc_bytenr [uninitvar]
     btrfs_free_log(trans, root);
                           ^
   fs/btrfs/scrub.c:1218:13: warning: Parameter 'raid_map' can be declared with 
const [constParameter]
          u64 *raid_map,
               ^
>> fs/btrfs/scrub.c:3112:9: warning: Uninitialized variable: ret [uninitvar]
    return ret;
           ^
   fs/btrfs/scrub.c:3023:21: note: Assuming condition is false
    while (cur_logical < logical + map->stripe_len) {
                       ^
   fs/btrfs/scrub.c:3112:9: note: Uninitialized variable: ret
    return ret;
           ^
   fs/btrfs/scrub.c:3345:9: warning: Uninitialized variable: ret [uninitvar]
    return ret;
           ^
   fs/btrfs/scrub.c:3250:21: note: Assuming condition is false
    while (cur_logical < logical_end) {
                       ^
   fs/btrfs/scrub.c:3345:9: note: Uninitialized variable: ret
    return ret;
           ^
   fs/btrfs/extent_io.c:1850:30: warning: Parameter 'mapping' can be declared 
with const [constParameter]
          struct address_space *mapping,
                                ^
   fs/btrfs/extent_io.c:1851:40: warning: Parameter 'locked_page' can be 
declared with const [constParameter]
          struct page *page, struct page *locked_page,
                                          ^
   fs/btrfs/extent_io.c:6028:16: warning: Parameter 'accessed' can be declared 
with const [constParameter]
     struct page *accessed)
                  ^
>> fs/btrfs/extent_io.c:479:26: warning: Uninitialized variable: entry 
>> [uninitvar]
    while (prev && offset > entry->end) {
                            ^
   fs/btrfs/extent_io.c:466:9: note: Assuming condition is false
    while (*node) {
           ^
   fs/btrfs/extent_io.c:479:26: note: Uninitialized variable: entry
    while (prev && offset > entry->end) {
                            ^
   fs/btrfs/extent_io.c:7291:7: warning: Uninitialized variable: eb->start 
[uninitvar]
     if (in_range(eb->start, page_start, PAGE_SIZE))
         ^

vim +479 fs/btrfs/extent_io.c

d1310b2e0cd98e Chris Mason               2008-01-24  455  
dcbe36e23dfcb2 David Sterba              2020-06-25  456  /*
dcbe36e23dfcb2 David Sterba              2020-06-25  457   * Inexact rb-tree 
search, return the next entry if @offset is not found
dcbe36e23dfcb2 David Sterba              2020-06-25  458   */
dcbe36e23dfcb2 David Sterba              2020-06-25  459  static inline struct 
rb_node *tree_search(struct extent_io_tree *tree, u64 offset)
12cfbad90e0279 Filipe David Borba Manana 2013-11-26  460  {
dcbe36e23dfcb2 David Sterba              2020-06-25  461        struct rb_root 
*root = &tree->state;
dcbe36e23dfcb2 David Sterba              2020-06-25  462        struct rb_node 
**node = &root->rb_node;
dcbe36e23dfcb2 David Sterba              2020-06-25  463        struct rb_node 
*prev = NULL;
dcbe36e23dfcb2 David Sterba              2020-06-25  464        struct 
tree_entry *entry;
dcbe36e23dfcb2 David Sterba              2020-06-25  465  
dcbe36e23dfcb2 David Sterba              2020-06-25  466        while (*node) {
dcbe36e23dfcb2 David Sterba              2020-06-25  467                prev = 
*node;
dcbe36e23dfcb2 David Sterba              2020-06-25  468                entry = 
rb_entry(prev, struct tree_entry, rb_node);
dcbe36e23dfcb2 David Sterba              2020-06-25  469  
dcbe36e23dfcb2 David Sterba              2020-06-25  470                if 
(offset < entry->start)
dcbe36e23dfcb2 David Sterba              2020-06-25  471                        
node = &(*node)->rb_left;
dcbe36e23dfcb2 David Sterba              2020-06-25  472                else if 
(offset > entry->end)
dcbe36e23dfcb2 David Sterba              2020-06-25  473                        
node = &(*node)->rb_right;
dcbe36e23dfcb2 David Sterba              2020-06-25  474                else
dcbe36e23dfcb2 David Sterba              2020-06-25  475                        
return *node;
dcbe36e23dfcb2 David Sterba              2020-06-25  476        }
dcbe36e23dfcb2 David Sterba              2020-06-25  477  
dcbe36e23dfcb2 David Sterba              2020-06-25  478        /* Search 
neighbors until we find the first one past the end */
dcbe36e23dfcb2 David Sterba              2020-06-25 @479        while (prev && 
offset > entry->end) {
dcbe36e23dfcb2 David Sterba              2020-06-25  480                prev = 
rb_next(prev);
dcbe36e23dfcb2 David Sterba              2020-06-25  481                entry = 
rb_entry(prev, struct tree_entry, rb_node);
dcbe36e23dfcb2 David Sterba              2020-06-25  482        }
dcbe36e23dfcb2 David Sterba              2020-06-25  483  
dcbe36e23dfcb2 David Sterba              2020-06-25  484        return prev;
12cfbad90e0279 Filipe David Borba Manana 2013-11-26  485  }
12cfbad90e0279 Filipe David Borba Manana 2013-11-26  486  

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