linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [linux-next:master 3868/4668] fs/btrfs/verity.c:125:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
       [not found] <202107311755.ClwYt9Z6-lkp@intel.com>
@ 2021-08-02 13:02 ` kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-08-02 13:02 UTC (permalink / raw)
  To: Boris Burkov
  Cc: clang-built-linux, kbuild-all, Linux Memory Management List,
	David Sterba, Chris Mason

[-- Attachment #1: Type: text/plain, Size: 18435 bytes --]

tree: 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   8d4b477da1a807199ca60e0829357ce7aa6758d5
commit: 6875cbd232c7c516e6b2dd2b40c6eda6a552d619 [3868/4668] btrfs: 
initial fsverity support
:::::: branch date: 17 hours ago
:::::: commit date: 3 days ago
config: x86_64-randconfig-c001-20210729 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
c49df15c278857adecd12db6bb1cdc96885f7079)
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 x86_64 cross compiling tool for clang build
         # apt-get install binutils-x86-64-linux-gnu
         # 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=6875cbd232c7c516e6b2dd2b40c6eda6a552d619
         git remote add linux-next 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
         git fetch --no-tags linux-next master
         git checkout 6875cbd232c7c516e6b2dd2b40c6eda6a552d619
         # save the attached .config to linux build tree
         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 
ARCH=x86_64 clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
                            ^
    drivers/char/agp/isoch.c:344:2: note: Assuming the condition is false
            for_each_pci_dev(dev) {
            ^
    include/linux/pci.h:522:36: note: expanded from macro 'for_each_pci_dev'
    #define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, 
PCI_ANY_ID, d)) != NULL)
 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/char/agp/isoch.c:344:2: note: Loop condition is false. 
Execution continues on line 387
            for_each_pci_dev(dev) {
            ^
    include/linux/pci.h:522:29: note: expanded from macro 'for_each_pci_dev'
    #define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, 
PCI_ANY_ID, d)) != NULL)
                                ^
    drivers/char/agp/isoch.c:387:2: note: Loop condition is false. 
Execution continues on line 441
            list_for_each(pos, head) {
            ^
    include/linux/list.h:571:2: note: expanded from macro 'list_for_each'
            for (pos = (head)->next; pos != (head); pos = pos->next)
            ^
    drivers/char/agp/isoch.c:441:6: note: 'isoch' is not equal to 0
            if (isoch) {
                ^~~~~
    drivers/char/agp/isoch.c:441:2: note: Taking true branch
            if (isoch) {
            ^
    drivers/char/agp/isoch.c:443:7: note: Assuming 'ret' is not equal to 0
                    if (ret) {
                        ^~~
    drivers/char/agp/isoch.c:443:3: note: Taking true branch
                    if (ret) {
                    ^
    drivers/char/agp/isoch.c:451:55: note: Passing the value 0 via 3rd 
parameter 'ndevs'
            agp_3_5_nonisochronous_node_enable(bridge, dev_list, ndevs);
                                                                 ^~~~~
    drivers/char/agp/isoch.c:451:2: note: Calling 
'agp_3_5_nonisochronous_node_enable'
            agp_3_5_nonisochronous_node_enable(bridge, dev_list, ndevs);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/char/agp/isoch.c:295:12: note: Division by zero
            mrq = trq / ndevs;
                  ~~~~^~~~~~~
    Suppressed 3 warnings (3 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    5 warnings generated.
    Suppressed 5 warnings (5 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    5 warnings generated.
    Suppressed 5 warnings (5 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    9 warnings generated.
    Suppressed 9 warnings (9 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    9 warnings generated.
    Suppressed 9 warnings (9 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    9 warnings generated.
    Suppressed 9 warnings (9 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    9 warnings generated.
    Suppressed 9 warnings (9 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    9 warnings generated.
    Suppressed 9 warnings (9 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    9 warnings generated.
    Suppressed 9 warnings (9 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    9 warnings generated.
    Suppressed 9 warnings (9 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    10 warnings generated.
    fs/nfs/direct.c:703:19: warning: Value stored to 'req' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
            struct nfs_page *req = nfs_list_entry(hdr->pages.next);
                             ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    fs/nfs/direct.c:703:19: note: Value stored to 'req' during its 
initialization is never read
            struct nfs_page *req = nfs_list_entry(hdr->pages.next);
                             ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Suppressed 9 warnings (9 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    6 warnings generated.
    drivers/gpu/vga/vga_switcheroo.c:861:3: warning: Value stored to 
'ret' is never read [clang-analyzer-deadcode.DeadStores]
                    ret = vgasr_priv.handler->switchto(client_id);
                    ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/gpu/vga/vga_switcheroo.c:861:3: note: Value stored to 'ret' 
is never read
                    ret = vgasr_priv.handler->switchto(client_id);
                    ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Suppressed 5 warnings (5 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    3 warnings generated.
    Suppressed 3 warnings (3 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    3 warnings generated.
    Suppressed 3 warnings (3 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    3 warnings generated.
    Suppressed 3 warnings (3 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    3 warnings generated.
    Suppressed 3 warnings (3 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    6 warnings generated.
>> fs/btrfs/verity.c:125:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
                            ret = 0;
                            ^     ~
    fs/btrfs/verity.c:125:4: note: Value stored to 'ret' is never read
                            ret = 0;
                            ^     ~
    Suppressed 5 warnings (5 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    4 warnings generated.
    Suppressed 4 warnings (4 in non-user code).
    Use -header-filter=.* to display errors from all non-system headers. 
Use -system-headers to display errors from system headers as well.
    12 warnings generated.
    fs/gfs2/bmap.c:1848:3: warning: 6th function call argument is an 
uninitialized value [clang-analyzer-core.CallAndMessage]
                    metapointer_range(&mp, mp_h, start_list, start_aligned,
                    ^
    fs/gfs2/bmap.c:2460:7: note: Calling 'gfs2_is_stuffed'
            if (!gfs2_is_stuffed(ip)) {
                 ^~~~~~~~~~~~~~~~~~~
    fs/gfs2/inode.h:22:9: note: Assuming field 'i_height' is not equal to 0
            return !ip->i_height;
                   ^~~~~~~~~~~~~
    fs/gfs2/inode.h:22:2: note: Returning zero, which participates in a 
condition later
            return !ip->i_height;
            ^~~~~~~~~~~~~~~~~~~~
    fs/gfs2/bmap.c:2460:7: note: Returning from 'gfs2_is_stuffed'
            if (!gfs2_is_stuffed(ip)) {
                 ^~~~~~~~~~~~~~~~~~~
    fs/gfs2/bmap.c:2460:2: note: Taking true branch
            if (!gfs2_is_stuffed(ip)) {
            ^
    fs/gfs2/bmap.c:2465:7: note: Assuming 'start_off' is 0
                    if (start_off) {
                        ^~~~~~~~~
    fs/gfs2/bmap.c:2465:3: note: Taking false branch
                    if (start_off) {
                    ^
    fs/gfs2/bmap.c:2475:7: note: Assuming 'end_len' is 0
                    if (end_len) {
                        ^~~~~~~
    fs/gfs2/bmap.c:2475:3: note: Taking false branch
                    if (end_len) {
                    ^
    fs/gfs2/bmap.c:2486:6: note: Assuming 'error' is 0
            if (error)
                ^~~~~
    fs/gfs2/bmap.c:2486:2: note: Taking false branch
            if (error)
            ^
    fs/gfs2/bmap.c:2489:6: note: Assuming the condition is false
            if (gfs2_is_jdata(ip))
                ^~~~~~~~~~~~~~~~~
    fs/gfs2/bmap.c:2489:2: note: Taking false branch
            if (gfs2_is_jdata(ip))
            ^
    fs/gfs2/bmap.c:2494:6: note: Assuming 'error' is 0
            if (error)
                ^~~~~
    fs/gfs2/bmap.c:2494:2: note: Taking false branch
            if (error)
            ^
    fs/gfs2/bmap.c:2497:6: note: Calling 'gfs2_is_stuffed'
            if (gfs2_is_stuffed(ip)) {
                ^~~~~~~~~~~~~~~~~~~
    fs/gfs2/inode.h:22:14: note: Field 'i_height' is not equal to 0
            return !ip->i_height;
                        ^
    fs/gfs2/inode.h:22:2: note: Returning zero, which participates in a 
condition later
            return !ip->i_height;
            ^~~~~~~~~~~~~~~~~~~~
    fs/gfs2/bmap.c:2497:6: note: Returning from 'gfs2_is_stuffed'
            if (gfs2_is_stuffed(ip)) {
                ^~~~~~~~~~~~~~~~~~~
    fs/gfs2/bmap.c:2497:2: note: Taking false branch
            if (gfs2_is_stuffed(ip)) {
            ^
    fs/gfs2/bmap.c:2503:6: note: Calling 'gfs2_is_jdata'
            if (gfs2_is_jdata(ip)) {
                ^~~~~~~~~~~~~~~~~
    fs/gfs2/inode.h:27:2: note: Returning zero, which participates in a 
condition later
            return ip->i_diskflags & GFS2_DIF_JDATA;
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    fs/gfs2/bmap.c:2503:6: note: Returning from 'gfs2_is_jdata'
            if (gfs2_is_jdata(ip)) {
                ^~~~~~~~~~~~~~~~~
    fs/gfs2/bmap.c:2503:2: note: Taking false branch
            if (gfs2_is_jdata(ip)) {
            ^
    fs/gfs2/bmap.c:2512:6: note: Assuming field 'journal_info' is null
            if (current->journal_info)
                ^
    arch/x86/include/asm/current.h:18:17: note: expanded from macro 
'current'
    #define current get_current()
                    ^
    fs/gfs2/bmap.c:2512:2: note: Taking false branch
            if (current->journal_info)
            ^
    fs/gfs2/bmap.c:2515:7: note: Calling 'gfs2_is_stuffed'
            if (!gfs2_is_stuffed(ip))
                 ^~~~~~~~~~~~~~~~~~~
    fs/gfs2/inode.h:22:9: note: Assuming field 'i_height' is not equal to 0
            return !ip->i_height;

vim +/ret +125 fs/btrfs/verity.c

6875cbd232c7c5 Boris Burkov 2021-06-30   81  6875cbd232c7c5 Boris Burkov 
2021-06-30   82  /*
6875cbd232c7c5 Boris Burkov 2021-06-30   83   * Drop all the items for 
this inode with this key_type.
6875cbd232c7c5 Boris Burkov 2021-06-30   84   *
6875cbd232c7c5 Boris Burkov 2021-06-30   85   * @inode:     inode to 
drop items for
6875cbd232c7c5 Boris Burkov 2021-06-30   86   * @key_type:  type of 
items to drop (BTRFS_VERITY_DESC_ITEM or
6875cbd232c7c5 Boris Burkov 2021-06-30   87   * 
BTRFS_VERITY_MERKLE_ITEM)
6875cbd232c7c5 Boris Burkov 2021-06-30   88   *
6875cbd232c7c5 Boris Burkov 2021-06-30   89   * Before doing a verity 
enable we cleanup any existing verity items.
6875cbd232c7c5 Boris Burkov 2021-06-30   90   * This is also used to 
clean up if a verity enable failed half way through.
6875cbd232c7c5 Boris Burkov 2021-06-30   91   *
6875cbd232c7c5 Boris Burkov 2021-06-30   92   * Returns number of 
dropped items on success, negative error code on failure.
6875cbd232c7c5 Boris Burkov 2021-06-30   93   */
6875cbd232c7c5 Boris Burkov 2021-06-30   94  static int 
drop_verity_items(struct btrfs_inode *inode, u8 key_type)
6875cbd232c7c5 Boris Burkov 2021-06-30   95  {
6875cbd232c7c5 Boris Burkov 2021-06-30   96  	struct btrfs_trans_handle 
*trans;
6875cbd232c7c5 Boris Burkov 2021-06-30   97  	struct btrfs_root *root = 
inode->root;
6875cbd232c7c5 Boris Burkov 2021-06-30   98  	struct btrfs_path *path;
6875cbd232c7c5 Boris Burkov 2021-06-30   99  	struct btrfs_key key;
6875cbd232c7c5 Boris Burkov 2021-06-30  100  	int count = 0;
6875cbd232c7c5 Boris Burkov 2021-06-30  101  	int ret;
6875cbd232c7c5 Boris Burkov 2021-06-30  102  6875cbd232c7c5 Boris Burkov 
2021-06-30  103  	path = btrfs_alloc_path();
6875cbd232c7c5 Boris Burkov 2021-06-30  104  	if (!path)
6875cbd232c7c5 Boris Burkov 2021-06-30  105  		return -ENOMEM;
6875cbd232c7c5 Boris Burkov 2021-06-30  106  6875cbd232c7c5 Boris Burkov 
2021-06-30  107  	while (1) {
6875cbd232c7c5 Boris Burkov 2021-06-30  108  		/* 1 for the item being 
dropped */
6875cbd232c7c5 Boris Burkov 2021-06-30  109  		trans = 
btrfs_start_transaction(root, 1);
6875cbd232c7c5 Boris Burkov 2021-06-30  110  		if (IS_ERR(trans)) {
6875cbd232c7c5 Boris Burkov 2021-06-30  111  			ret = PTR_ERR(trans);
6875cbd232c7c5 Boris Burkov 2021-06-30  112  			goto out;
6875cbd232c7c5 Boris Burkov 2021-06-30  113  		}
6875cbd232c7c5 Boris Burkov 2021-06-30  114  6875cbd232c7c5 Boris Burkov 
2021-06-30  115  		/*
6875cbd232c7c5 Boris Burkov 2021-06-30  116  		 * Walk backwards through 
all the items until we find one that
6875cbd232c7c5 Boris Burkov 2021-06-30  117  		 * isn't from our key 
type or objectid
6875cbd232c7c5 Boris Burkov 2021-06-30  118  		 */
6875cbd232c7c5 Boris Burkov 2021-06-30  119  		key.objectid = 
btrfs_ino(inode);
6875cbd232c7c5 Boris Burkov 2021-06-30  120  		key.type = key_type;
6875cbd232c7c5 Boris Burkov 2021-06-30  121  		key.offset = (u64)-1;
6875cbd232c7c5 Boris Burkov 2021-06-30  122  6875cbd232c7c5 Boris Burkov 
2021-06-30  123  		ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
6875cbd232c7c5 Boris Burkov 2021-06-30  124  		if (ret > 0) {
6875cbd232c7c5 Boris Burkov 2021-06-30 @125  			ret = 0;
6875cbd232c7c5 Boris Burkov 2021-06-30  126  			/* No more keys of this 
type, we're done */
6875cbd232c7c5 Boris Burkov 2021-06-30  127  			if (path->slots[0] == 0)
6875cbd232c7c5 Boris Burkov 2021-06-30  128  				break;
6875cbd232c7c5 Boris Burkov 2021-06-30  129  			path->slots[0]--;
6875cbd232c7c5 Boris Burkov 2021-06-30  130  		} else if (ret < 0) {
6875cbd232c7c5 Boris Burkov 2021-06-30  131  		 
btrfs_end_transaction(trans);
6875cbd232c7c5 Boris Burkov 2021-06-30  132  			goto out;
6875cbd232c7c5 Boris Burkov 2021-06-30  133  		}
6875cbd232c7c5 Boris Burkov 2021-06-30  134  6875cbd232c7c5 Boris Burkov 
2021-06-30  135  		btrfs_item_key_to_cpu(path->nodes[0], &key, 
path->slots[0]);
6875cbd232c7c5 Boris Burkov 2021-06-30  136  6875cbd232c7c5 Boris Burkov 
2021-06-30  137  		/* No more keys of this type, we're done */
6875cbd232c7c5 Boris Burkov 2021-06-30  138  		if (key.objectid != 
btrfs_ino(inode) || key.type != key_type)
6875cbd232c7c5 Boris Burkov 2021-06-30  139  			break;
6875cbd232c7c5 Boris Burkov 2021-06-30  140  6875cbd232c7c5 Boris Burkov 
2021-06-30  141  		/*
6875cbd232c7c5 Boris Burkov 2021-06-30  142  		 * This shouldn't be a 
performance sensitive function because
6875cbd232c7c5 Boris Burkov 2021-06-30  143  		 * it's not used as part 
of truncate.  If it ever becomes
6875cbd232c7c5 Boris Burkov 2021-06-30  144  		 * perf sensitive, change 
this to walk forward and bulk delete
6875cbd232c7c5 Boris Burkov 2021-06-30  145  		 * items
6875cbd232c7c5 Boris Burkov 2021-06-30  146  		 */
6875cbd232c7c5 Boris Burkov 2021-06-30  147  		ret = 
btrfs_del_items(trans, root, path, path->slots[0], 1);
6875cbd232c7c5 Boris Burkov 2021-06-30  148  		if (ret) {
6875cbd232c7c5 Boris Burkov 2021-06-30  149  		 
btrfs_end_transaction(trans);
6875cbd232c7c5 Boris Burkov 2021-06-30  150  			goto out;
6875cbd232c7c5 Boris Burkov 2021-06-30  151  		}
6875cbd232c7c5 Boris Burkov 2021-06-30  152  		count++;
6875cbd232c7c5 Boris Burkov 2021-06-30  153  		btrfs_release_path(path);
6875cbd232c7c5 Boris Burkov 2021-06-30  154  		btrfs_end_transaction(trans);
6875cbd232c7c5 Boris Burkov 2021-06-30  155  	}
6875cbd232c7c5 Boris Burkov 2021-06-30  156  	ret = count;
6875cbd232c7c5 Boris Burkov 2021-06-30  157  	btrfs_end_transaction(trans);
6875cbd232c7c5 Boris Burkov 2021-06-30  158  out:
6875cbd232c7c5 Boris Burkov 2021-06-30  159  	btrfs_free_path(path);
6875cbd232c7c5 Boris Burkov 2021-06-30  160  	return ret;
6875cbd232c7c5 Boris Burkov 2021-06-30  161  }
6875cbd232c7c5 Boris Burkov 2021-06-30  162
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org


[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 33342 bytes --]

[-- Attachment #3: Attached Message Part --]
[-- Type: text/plain, Size: 150 bytes --]

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-leave@lists.01.org


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-08-02 13:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <202107311755.ClwYt9Z6-lkp@intel.com>
2021-08-02 13:02 ` [linux-next:master 3868/4668] fs/btrfs/verity.c:125:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).