All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [djwong-xfs:vectorized-scrub 132/399] fs/xfs/libxfs/xfs_bmap_btree.c:674:9: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
Date: Sun, 01 May 2022 09:47:41 +0800	[thread overview]
Message-ID: <202205010934.Hulk27CT-lkp@intel.com> (raw)

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

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: "Darrick J. Wong" <darrick.wong@oracle.com>
CC: linux-kernel(a)vger.kernel.org
TO: "Darrick J. Wong" <djwong@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git vectorized-scrub
head:   afeb4fa123e9a46cb653baab2baa3259c051f7d7
commit: a6f406ba1589679d5d44ce883a3ff26c0635decd [132/399] xfs: repair inode block maps
:::::: branch date: 26 hours ago
:::::: commit date: 26 hours ago
config: arm-randconfig-c002-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010934.Hulk27CT-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 400775649969b9baf3bc2a510266e7912bb16ae9)
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 arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/commit/?id=a6f406ba1589679d5d44ce883a3ff26c0635decd
        git remote add djwong-xfs https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
        git fetch --no-tags djwong-xfs vectorized-scrub
        git checkout a6f406ba1589679d5d44ce883a3ff26c0635decd
        # save the config file
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 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/gpu/drm/radeon/radeon_atombios.c:2776:4: note:  Execution continues on line 2785
                           break;
                           ^
   drivers/gpu/drm/radeon/radeon_atombios.c:2785:6: note: 'state_index' is equal to 0
           if (state_index == 0) {
               ^~~~~~~~~~~
   drivers/gpu/drm/radeon/radeon_atombios.c:2785:2: note: Taking true branch
           if (state_index == 0) {
           ^
   drivers/gpu/drm/radeon/radeon_atombios.c:2786:26: note: Calling 'kzalloc'
                   rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:714:9: note: Calling 'kmalloc'
           return kmalloc(size, flags | __GFP_ZERO);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:569:2: note: Taking false branch
           if (__builtin_constant_p(size)) {
           ^
   include/linux/slab.h:586:2: note: Returning pointer
           return __kmalloc(size, flags);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:714:9: note: Returning from 'kmalloc'
           return kmalloc(size, flags | __GFP_ZERO);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:714:2: note: Returning pointer
           return kmalloc(size, flags | __GFP_ZERO);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/radeon/radeon_atombios.c:2786:26: note: Returning from 'kzalloc'
                   rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/radeon/radeon_atombios.c:2786:3: note: Value assigned to field 'power_state'
                   rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/radeon/radeon_atombios.c:2787:7: note: Assuming field 'power_state' is null
                   if (rdev->pm.power_state) {
                       ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/radeon/radeon_atombios.c:2787:3: note: Taking false branch
                   if (rdev->pm.power_state) {
                   ^
   drivers/gpu/drm/radeon/radeon_atombios.c:2814:6: note: Assuming field 'default_power_state_index' is >= 0
           if (rdev->pm.default_power_state_index >= 0)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/radeon/radeon_atombios.c:2814:2: note: Taking true branch
           if (rdev->pm.default_power_state_index >= 0)
           ^
   drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: note: Dereference of null pointer
                           rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 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.
   Suppressed 6 warnings (6 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.
   7 warnings generated.
   fs/xfs/libxfs/xfs_attr.c:1243:2: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
           error = xfs_attr_node_removename(args, state);
           ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_attr.c:1243:2: note: Value stored to 'error' is never read
           error = xfs_attr_node_removename(args, state);
           ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 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.
   8 warnings generated.
   fs/xfs/libxfs/xfs_attr_leaf.c:2253:29: warning: Value stored to 'drop_leaf' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct xfs_attr_leafblock *drop_leaf = drop_blk->bp->b_addr;
                                      ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_attr_leaf.c:2253:29: note: Value stored to 'drop_leaf' during its initialization is never read
           struct xfs_attr_leafblock *drop_leaf = drop_blk->bp->b_addr;
                                      ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_attr_leaf.c:2254:29: warning: Value stored to 'save_leaf' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct xfs_attr_leafblock *save_leaf = save_blk->bp->b_addr;
                                      ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_attr_leaf.c:2254:29: note: Value stored to 'save_leaf' during its initialization is never read
           struct xfs_attr_leafblock *save_leaf = save_blk->bp->b_addr;
                                      ^~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 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.
   Suppressed 6 warnings (6 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.
   Suppressed 6 warnings (6 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.
   8 warnings generated.
   fs/xfs/libxfs/xfs_bmap.c:800:2: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
           error = 0;
           ^       ~
   fs/xfs/libxfs/xfs_bmap.c:800:2: note: Value stored to 'error' is never read
           error = 0;
           ^       ~
   fs/xfs/libxfs/xfs_bmap.c:5032:2: warning: Value stored to 'qfield' is never read [clang-analyzer-deadcode.DeadStores]
           qfield = 0;
           ^        ~
   fs/xfs/libxfs/xfs_bmap.c:5032:2: note: Value stored to 'qfield' is never read
           qfield = 0;
           ^        ~
   Suppressed 6 warnings (6 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.
   8 warnings generated.
>> fs/xfs/libxfs/xfs_bmap_btree.c:674:9: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   flags |= extflag[whichfork];
                         ^  ~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap_btree.c:660:2: note: Assuming the condition is false
           ASSERT(cur->bc_flags & XFS_BTREE_STAGING);
           ^
   fs/xfs/xfs_linux.h:213:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : asswarn(NULL, #expr, __FILE__, __LINE__))
            ^~~~~~~~~~~~
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^~~~
   fs/xfs/libxfs/xfs_bmap_btree.c:660:2: note: '?' condition is true
           ASSERT(cur->bc_flags & XFS_BTREE_STAGING);
           ^
   fs/xfs/xfs_linux.h:213:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : asswarn(NULL, #expr, __FILE__, __LINE__))
            ^
   include/linux/compiler.h:45:21: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                           ^
   fs/xfs/libxfs/xfs_bmap_btree.c:661:9: note: Assuming 'whichfork' is equal to 2
           ASSERT(whichfork != XFS_COW_FORK);
                  ^
   fs/xfs/xfs_linux.h:213:10: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : asswarn(NULL, #expr, __FILE__, __LINE__))
            ~~~~~~~^~~~~
   include/linux/compiler.h:45:39: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   fs/xfs/libxfs/xfs_bmap_btree.c:661:2: note: '?' condition is false
           ASSERT(whichfork != XFS_COW_FORK);
           ^
   fs/xfs/xfs_linux.h:213:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : asswarn(NULL, #expr, __FILE__, __LINE__))
            ^
   include/linux/compiler.h:45:21: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                           ^
   fs/xfs/libxfs/xfs_bmap_btree.c:668:8: note: 'whichfork' is not equal to 0
           ifp = XFS_IFORK_PTR(cur->bc_ino.ip, whichfork);
                 ^
   fs/xfs/libxfs/xfs_inode_fork.h:98:3: note: expanded from macro 'XFS_IFORK_PTR'
           ((w) == XFS_DATA_FORK ? \
            ^~~
   fs/xfs/libxfs/xfs_bmap_btree.c:668:8: note: '?' condition is false
           ifp = XFS_IFORK_PTR(cur->bc_ino.ip, whichfork);
                 ^
   fs/xfs/libxfs/xfs_inode_fork.h:98:3: note: expanded from macro 'XFS_IFORK_PTR'
           ((w) == XFS_DATA_FORK ? \
            ^
   fs/xfs/libxfs/xfs_bmap_btree.c:668:8: note: 'whichfork' is not equal to 1
           ifp = XFS_IFORK_PTR(cur->bc_ino.ip, whichfork);
                 ^
   fs/xfs/libxfs/xfs_inode_fork.h:100:4: note: expanded from macro 'XFS_IFORK_PTR'
                   ((w) == XFS_ATTR_FORK ? \
                    ^~~
   fs/xfs/libxfs/xfs_bmap_btree.c:668:8: note: '?' condition is false
           ifp = XFS_IFORK_PTR(cur->bc_ino.ip, whichfork);
                 ^
   fs/xfs/libxfs/xfs_inode_fork.h:100:4: note: expanded from macro 'XFS_IFORK_PTR'
                   ((w) == XFS_ATTR_FORK ? \
                    ^
   fs/xfs/libxfs/xfs_bmap_btree.c:672:2: note: Control jumps to 'case XFS_DINODE_FMT_EXTENTS:'  at line 673
           switch (ifp->if_format) {
           ^
   fs/xfs/libxfs/xfs_bmap_btree.c:674:9: note: Assigned value is garbage or undefined
                   flags |= extflag[whichfork];
                         ^  ~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap_btree.c:677:9: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   flags |= brootflag[whichfork];
                         ^  ~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap_btree.c:660:2: note: Assuming the condition is false
           ASSERT(cur->bc_flags & XFS_BTREE_STAGING);
           ^
   fs/xfs/xfs_linux.h:213:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : asswarn(NULL, #expr, __FILE__, __LINE__))
            ^~~~~~~~~~~~
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^~~~
   fs/xfs/libxfs/xfs_bmap_btree.c:660:2: note: '?' condition is true
           ASSERT(cur->bc_flags & XFS_BTREE_STAGING);
           ^
   fs/xfs/xfs_linux.h:213:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : asswarn(NULL, #expr, __FILE__, __LINE__))
            ^
   include/linux/compiler.h:45:21: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                           ^
   fs/xfs/libxfs/xfs_bmap_btree.c:661:9: note: Assuming 'whichfork' is equal to 2
           ASSERT(whichfork != XFS_COW_FORK);

vim +674 fs/xfs/libxfs/xfs_bmap_btree.c

a6f406ba1589679 Darrick J. Wong 2022-01-06  641  
a6f406ba1589679 Darrick J. Wong 2022-01-06  642  /*
a6f406ba1589679 Darrick J. Wong 2022-01-06  643   * Swap in the new inode fork root.  Once we pass this point the newly rebuilt
a6f406ba1589679 Darrick J. Wong 2022-01-06  644   * mappings are in place and we have to kill off any old btree blocks.
a6f406ba1589679 Darrick J. Wong 2022-01-06  645   */
a6f406ba1589679 Darrick J. Wong 2022-01-06  646  void
a6f406ba1589679 Darrick J. Wong 2022-01-06  647  xfs_bmbt_commit_staged_btree(
a6f406ba1589679 Darrick J. Wong 2022-01-06  648  	struct xfs_btree_cur	*cur,
a6f406ba1589679 Darrick J. Wong 2022-01-06  649  	struct xfs_trans	*tp,
a6f406ba1589679 Darrick J. Wong 2022-01-06  650  	int			whichfork)
a6f406ba1589679 Darrick J. Wong 2022-01-06  651  {
a6f406ba1589679 Darrick J. Wong 2022-01-06  652  	struct xbtree_ifakeroot	*ifake = cur->bc_ino.ifake;
a6f406ba1589679 Darrick J. Wong 2022-01-06  653  	struct xfs_ifork	*ifp;
a6f406ba1589679 Darrick J. Wong 2022-01-06  654  	static const short	brootflag[2] =
a6f406ba1589679 Darrick J. Wong 2022-01-06  655  		{ XFS_ILOG_DBROOT, XFS_ILOG_ABROOT };
a6f406ba1589679 Darrick J. Wong 2022-01-06  656  	static const short	extflag[2] =
a6f406ba1589679 Darrick J. Wong 2022-01-06  657  		{ XFS_ILOG_DEXT, XFS_ILOG_AEXT };
a6f406ba1589679 Darrick J. Wong 2022-01-06  658  	int			flags = XFS_ILOG_CORE;
a6f406ba1589679 Darrick J. Wong 2022-01-06  659  
a6f406ba1589679 Darrick J. Wong 2022-01-06  660  	ASSERT(cur->bc_flags & XFS_BTREE_STAGING);
a6f406ba1589679 Darrick J. Wong 2022-01-06  661  	ASSERT(whichfork != XFS_COW_FORK);
a6f406ba1589679 Darrick J. Wong 2022-01-06  662  
a6f406ba1589679 Darrick J. Wong 2022-01-06  663  	/*
a6f406ba1589679 Darrick J. Wong 2022-01-06  664  	 * Free any resources hanging off the real fork, then shallow-copy the
a6f406ba1589679 Darrick J. Wong 2022-01-06  665  	 * staging fork's contents into the real fork to transfer everything
a6f406ba1589679 Darrick J. Wong 2022-01-06  666  	 * we just built.
a6f406ba1589679 Darrick J. Wong 2022-01-06  667  	 */
a6f406ba1589679 Darrick J. Wong 2022-01-06  668  	ifp = XFS_IFORK_PTR(cur->bc_ino.ip, whichfork);
a6f406ba1589679 Darrick J. Wong 2022-01-06  669  	xfs_idestroy_fork(ifp);
a6f406ba1589679 Darrick J. Wong 2022-01-06  670  	memcpy(ifp, ifake->if_fork, sizeof(struct xfs_ifork));
a6f406ba1589679 Darrick J. Wong 2022-01-06  671  
a6f406ba1589679 Darrick J. Wong 2022-01-06  672  	switch (ifp->if_format) {
a6f406ba1589679 Darrick J. Wong 2022-01-06  673  	case XFS_DINODE_FMT_EXTENTS:
a6f406ba1589679 Darrick J. Wong 2022-01-06 @674  		flags |= extflag[whichfork];
a6f406ba1589679 Darrick J. Wong 2022-01-06  675  		break;
a6f406ba1589679 Darrick J. Wong 2022-01-06  676  	case XFS_DINODE_FMT_BTREE:
a6f406ba1589679 Darrick J. Wong 2022-01-06  677  		flags |= brootflag[whichfork];
a6f406ba1589679 Darrick J. Wong 2022-01-06  678  		break;
a6f406ba1589679 Darrick J. Wong 2022-01-06  679  	default:
a6f406ba1589679 Darrick J. Wong 2022-01-06  680  		ASSERT(0);
a6f406ba1589679 Darrick J. Wong 2022-01-06  681  		break;
a6f406ba1589679 Darrick J. Wong 2022-01-06  682  	}
a6f406ba1589679 Darrick J. Wong 2022-01-06  683  	xfs_trans_log_inode(tp, cur->bc_ino.ip, flags);
a6f406ba1589679 Darrick J. Wong 2022-01-06  684  	xfs_btree_commit_ifakeroot(cur, tp, whichfork, &xfs_bmbt_ops);
a6f406ba1589679 Darrick J. Wong 2022-01-06  685  }
a6f406ba1589679 Darrick J. Wong 2022-01-06  686  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

                 reply	other threads:[~2022-05-01  1:47 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202205010934.Hulk27CT-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.