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.