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