Re: [PATCH 31/35] shmem: Convert to pagevec_lookup_entries_range()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jan,

[auto build test WARNING on linus/master]
[also build test WARNING on v4.12-rc3]
[cannot apply to next-20170601]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Jan-Kara/pagevec-API-cleanups/20170601-200653
config: i386-randconfig-x078-06010927 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   Cyclomatic Complexity 1 include/linux/huge_mm.h:split_huge_page
   Cyclomatic Complexity 1 include/linux/radix-tree.h:radix_tree_insert
   Cyclomatic Complexity 10 mm/shmem.c:shmem_add_to_page_cache
   Cyclomatic Complexity 2 include/linux/highmem.h:clear_highpage
   Cyclomatic Complexity 1 mm/shmem.c:shmem_confirm_swap
   Cyclomatic Complexity 2 include/linux/mm.h:put_page
   Cyclomatic Complexity 7 mm/shmem.c:shmem_write_end
   Cyclomatic Complexity 4 mm/shmem.c:shmem_replace_page
   Cyclomatic Complexity 13 mm/shmem.c:shmem_unused_huge_shrink
   Cyclomatic Complexity 69 mm/shmem.c:shmem_getpage_gfp
   Cyclomatic Complexity 2 mm/shmem.c:shmem_unused_huge_scan
   Cyclomatic Complexity 1 mm/shmem.c:shmem_put_link
   Cyclomatic Complexity 11 mm/shmem.c:shmem_fault
   Cyclomatic Complexity 1 mm/shmem.c:synchronous_wake_function
   Cyclomatic Complexity 1 include/linux/sched.h:cond_resched_rcu
   Cyclomatic Complexity 5 mm/shmem.c:find_swap_entry
   Cyclomatic Complexity 2 include/linux/pagemap.h:linear_page_index
   Cyclomatic Complexity 2 include/linux/pagevec.h:pagevec_release
   Cyclomatic Complexity 1 include/linux/pagevec.h:pagevec_lookup
   Cyclomatic Complexity 2 include/linux/pagemap.h:page_to_pgoff
   Cyclomatic Complexity 2 mm/shmem.c:shmem_free_swap
   Cyclomatic Complexity 8 mm/shmem.c:shmem_unuse_inode
   Cyclomatic Complexity 1 include/linux/fs.h:inode_lock
   Cyclomatic Complexity 1 include/linux/fs.h:inode_unlock
   Cyclomatic Complexity 2 include/linux/fs.h:file_accessed
   Cyclomatic Complexity 7 include/linux/khugepaged.h:khugepaged_enter
   Cyclomatic Complexity 2 mm/shmem.c:shmem_mmap
   Cyclomatic Complexity 12 mm/shmem.c:shmem_seek_hole_data
   Cyclomatic Complexity 8 mm/shmem.c:shmem_file_llseek
   Cyclomatic Complexity 2 include/linux/uaccess.h:copy_user_overflow
   Cyclomatic Complexity 2 include/linux/mm.h:page_mapcount
   Cyclomatic Complexity 8 mm/shmem.c:shmem_tag_pins
   Cyclomatic Complexity 13 mm/shmem.c:shmem_wait_for_pins
   Cyclomatic Complexity 2 include/linux/xattr.h:simple_xattrs_free
   Cyclomatic Complexity 1 include/linux/xattr.h:simple_xattrs_init
   Cyclomatic Complexity 7 mm/shmem.c:shmem_show_options
   Cyclomatic Complexity 1 include/linux/percpu_counter.h:percpu_counter_sum
   Cyclomatic Complexity 3 mm/shmem.c:shmem_statfs
   Cyclomatic Complexity 2 mm/shmem.c:shmem_destroy_inode
   Cyclomatic Complexity 2 mm/shmem.c:shmem_destroy_callback
   Cyclomatic Complexity 2 mm/shmem.c:shmem_alloc_inode
   Cyclomatic Complexity 3 mm/shmem.c:shmem_fh_to_dentry
   Cyclomatic Complexity 4 mm/shmem.c:shmem_encode_fh
   Cyclomatic Complexity 7 mm/shmem.c:shmem_parse_huge
   Cyclomatic Complexity 8 mm/shmem.c:shmem_enabled_store
   Cyclomatic Complexity 94 mm/shmem.c:shmem_parse_options
   Cyclomatic Complexity 9 mm/shmem.c:shmem_remount_fs
   Cyclomatic Complexity 6 mm/shmem.c:shmem_get_inode
   Cyclomatic Complexity 4 mm/shmem.c:shmem_tmpfile
   Cyclomatic Complexity 3 mm/shmem.c:shmem_exchange
   Cyclomatic Complexity 3 mm/shmem.c:shmem_unlink
   Cyclomatic Complexity 2 mm/shmem.c:shmem_rmdir
   Cyclomatic Complexity 2 include/linux/dcache.h:dget
   Cyclomatic Complexity 4 mm/shmem.c:shmem_mknod
   Cyclomatic Complexity 3 mm/shmem.c:shmem_whiteout
   Cyclomatic Complexity 9 mm/shmem.c:shmem_rename2
   Cyclomatic Complexity 2 mm/shmem.c:shmem_mkdir
   Cyclomatic Complexity 1 mm/shmem.c:shmem_create
   Cyclomatic Complexity 2 mm/shmem.c:shmem_link
   Cyclomatic Complexity 2 mm/shmem.c:shmem_getattr
   Cyclomatic Complexity 1 mm/shmem.c:shmem_put_super
   Cyclomatic Complexity 7 mm/shmem.c:shmem_fill_super
   Cyclomatic Complexity 1 mm/shmem.c:shmem_mount
   Cyclomatic Complexity 1 mm/shmem.c:shmem_init_inodecache
   Cyclomatic Complexity 1 mm/shmem.c:shmem_init_inode
   Cyclomatic Complexity 1 mm/shmem.c:shmem_destroy_inodecache
   Cyclomatic Complexity 3 mm/shmem.c:shmem_enabled_show
   Cyclomatic Complexity 8 mm/shmem.c:__shmem_file_setup
   Cyclomatic Complexity 1 mm/shmem.c:shmem_getpage
   Cyclomatic Complexity 5 mm/shmem.c:shmem_write_begin
   Cyclomatic Complexity 36 mm/shmem.c:shmem_undo_range
   Cyclomatic Complexity 17 mm/shmem.c:shmem_file_read_iter
   Cyclomatic Complexity 8 mm/shmem.c:shmem_symlink
   Cyclomatic Complexity 5 mm/shmem.c:shmem_get_link
   Cyclomatic Complexity 1 mm/shmem.c:vma_is_shmem
   Cyclomatic Complexity 4 mm/shmem.c:shmem_charge
   Cyclomatic Complexity 2 mm/shmem.c:shmem_uncharge
   Cyclomatic Complexity 7 mm/shmem.c:shmem_partial_swap_usage
   Cyclomatic Complexity 4 mm/shmem.c:shmem_swap_usage
   Cyclomatic Complexity 3 mm/shmem.c:shmem_unlock_mapping
   Cyclomatic Complexity 1 mm/shmem.c:shmem_truncate_range
   Cyclomatic Complexity 19 mm/shmem.c:shmem_fallocate
   Cyclomatic Complexity 6 mm/shmem.c:shmem_evict_inode
   Cyclomatic Complexity 16 mm/shmem.c:shmem_setattr
   Cyclomatic Complexity 9 mm/shmem.c:shmem_unuse
   Cyclomatic Complexity 7 mm/shmem.c:shmem_lock
   Cyclomatic Complexity 1 mm/shmem.c:shmem_mapping
   Cyclomatic Complexity 16 mm/shmem.c:shmem_mcopy_atomic_pte
   Cyclomatic Complexity 9 mm/shmem.c:shmem_add_seals
   Cyclomatic Complexity 2 mm/shmem.c:shmem_get_seals
   Cyclomatic Complexity 3 mm/shmem.c:shmem_fcntl
   Cyclomatic Complexity 7 mm/shmem.c:shmem_init
   Cyclomatic Complexity 8 mm/shmem.c:shmem_huge_enabled
   Cyclomatic Complexity 1 mm/shmem.c:shmem_kernel_file_setup
   Cyclomatic Complexity 1 mm/shmem.c:shmem_file_setup
   Cyclomatic Complexity 11 mm/shmem.c:SYSC_memfd_create
   Cyclomatic Complexity 1 mm/shmem.c:SyS_memfd_create
   Cyclomatic Complexity 4 mm/shmem.c:shmem_zero_setup
   Cyclomatic Complexity 2 mm/shmem.c:shmem_read_mapping_page_gfp
   mm/shmem.c: In function 'shmem_seek_hole_data':
>> mm/shmem.c:2522:9: warning: 'last' may be used uninitialized in this function [-Wmaybe-uninitialized]
     return last;
            ^~~~

vim +/last +2522 mm/shmem.c

220f2ac9 Hugh Dickins    2012-12-12  2506  			page = pvec.pages[i];
220f2ac9 Hugh Dickins    2012-12-12  2507  			if (page && !radix_tree_exceptional_entry(page)) {
220f2ac9 Hugh Dickins    2012-12-12  2508  				if (!PageUptodate(page))
220f2ac9 Hugh Dickins    2012-12-12  2509  					page = NULL;
220f2ac9 Hugh Dickins    2012-12-12  2510  			}
eb675e81 Jan Kara        2017-06-01  2511  			if ((page && whence == SEEK_DATA) ||
965c8e59 Andrew Morton   2012-12-17  2512  			    (!page && whence == SEEK_HOLE)) {
220f2ac9 Hugh Dickins    2012-12-12  2513  				done = true;
220f2ac9 Hugh Dickins    2012-12-12  2514  				break;
220f2ac9 Hugh Dickins    2012-12-12  2515  			}
220f2ac9 Hugh Dickins    2012-12-12  2516  		}
0cd6144a Johannes Weiner 2014-04-03  2517  		pagevec_remove_exceptionals(&pvec);
220f2ac9 Hugh Dickins    2012-12-12  2518  		pagevec_release(&pvec);
220f2ac9 Hugh Dickins    2012-12-12  2519  		pvec.nr = PAGEVEC_SIZE;
220f2ac9 Hugh Dickins    2012-12-12  2520  		cond_resched();
220f2ac9 Hugh Dickins    2012-12-12  2521  	}
1d162ad5 Jan Kara        2017-06-01 @2522  	return last;
220f2ac9 Hugh Dickins    2012-12-12  2523  }
220f2ac9 Hugh Dickins    2012-12-12  2524  
965c8e59 Andrew Morton   2012-12-17  2525  static loff_t shmem_file_llseek(struct file *file, loff_t offset, int whence)
220f2ac9 Hugh Dickins    2012-12-12  2526  {
220f2ac9 Hugh Dickins    2012-12-12  2527  	struct address_space *mapping = file->f_mapping;
220f2ac9 Hugh Dickins    2012-12-12  2528  	struct inode *inode = mapping->host;
220f2ac9 Hugh Dickins    2012-12-12  2529  	pgoff_t start, end;
220f2ac9 Hugh Dickins    2012-12-12  2530  	loff_t new_offset;

:::::: The code at line 2522 was first introduced by commit
:::::: 1d162ad5252576fa97d38e96e6e09fd9165f5d6b mm: Make pagevec_lookup_entries() update index

:::::: TO: Jan Kara <jack@xxxxxxx>
:::::: CC: 0day robot <fengguang.wu@xxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux