All of lore.kernel.org
 help / color / mirror / Atom feed
* fs/xfs/scrub/bmap.c:621:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
@ 2022-03-14 22:00 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-03-14 22:00 UTC (permalink / raw)
  To: kbuild

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

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Dave Chinner <dchinner@redhat.com>
CC: Brian Foster <bfoster@redhat.com>
CC: "Darrick J. Wong" <djwong@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   09688c0166e76ce2fb85e86b9d99be8b0084cdf9
commit: 934933c3eec9e4a5826d3d7a47aca0742337fded xfs: convert raw ag walks to use for_each_perag
date:   10 months ago
:::::: branch date: 26 hours ago
:::::: commit date: 10 months ago
config: arm-randconfig-c002-20220308 (https://download.01.org/0day-ci/archive/20220315/202203150526.Dy4qHmvL-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
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/torvalds/linux.git/commit/?id=934933c3eec9e4a5826d3d7a47aca0742337fded
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 934933c3eec9e4a5826d3d7a47aca0742337fded
        # save the config file to linux build tree
        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/usb/gadget/udc/gr_udc.c:614:9: note: Calling 'gr_setup_out_desc_list'
                   ret = gr_setup_out_desc_list(ep, req, gfp_flags);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/gadget/udc/gr_udc.c:482:2: note: Null pointer value stored to field 'first_desc'
           req->first_desc = NULL; /* Signals that no allocation is done yet */
           ^~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/gadget/udc/gr_udc.c:485:9: note: Assuming 'bytes_left' is <= 0
           while (bytes_left > 0) {
                  ^~~~~~~~~~~~~~
   drivers/usb/gadget/udc/gr_udc.c:485:2: note: Loop condition is false. Execution continues on line 503
           while (bytes_left > 0) {
           ^
   drivers/usb/gadget/udc/gr_udc.c:503:24: note: Access to field 'ctrl' results in a dereference of a null pointer (loaded from field 'first_desc')
           req->first_desc->ctrl |= GR_DESC_OUT_CTRL_EN;
                ~~~~~~~~~~       ^
   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.
   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.
   5 warnings generated.
   drivers/gpu/drm/bridge/analogix/analogix-anx6345.c:387:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
           err = anx6345_clear_bits(anx6345->map[I2C_IDX_TXCOM],
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/analogix/analogix-anx6345.c:387:2: note: Value stored to 'err' is never read
           err = anx6345_clear_bits(anx6345->map[I2C_IDX_TXCOM],
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   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.
   4 warnings generated.
   drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c:424:2: warning: Value stored to 'reg' is never read [clang-analyzer-deadcode.DeadStores]
           reg = readl(dp->reg_base + ANALOGIX_DP_SYS_CTL_3);
           ^
   drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c:424:2: note: Value stored to 'reg' is never read
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   5 warnings generated.
   fs/xfs/xfs_pnfs.c:39:3: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
                   error = break_layout(inode, true);
                   ^       ~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/xfs_pnfs.c:39:3: note: Value stored to 'error' is never read
                   error = break_layout(inode, true);
                   ^       ~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   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.
   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.
   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.
   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.
   5 warnings generated.
>> fs/xfs/scrub/bmap.c:621:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
           return error;
           ^      ~~~~~
   fs/xfs/scrub/bmap.c:578:26: note: Assuming 'whichfork' is not equal to 0
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(sc->ip, whichfork);
                                          ^
   fs/xfs/libxfs/xfs_inode_fork.h:98:3: note: expanded from macro 'XFS_IFORK_PTR'
           ((w) == XFS_DATA_FORK ? \
            ^~~~~~~~~~~~~~~~~~~~
   fs/xfs/scrub/bmap.c:578:26: note: '?' condition is false
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(sc->ip, whichfork);
                                          ^
   fs/xfs/libxfs/xfs_inode_fork.h:98:3: note: expanded from macro 'XFS_IFORK_PTR'
           ((w) == XFS_DATA_FORK ? \
            ^
   fs/xfs/scrub/bmap.c:578:26: note: Assuming 'whichfork' is equal to 1
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(sc->ip, whichfork);
                                          ^
   fs/xfs/libxfs/xfs_inode_fork.h:100:4: note: expanded from macro 'XFS_IFORK_PTR'
                   ((w) == XFS_ATTR_FORK ? \
                    ^~~~~~~~~~~~~~~~~~~~
   fs/xfs/scrub/bmap.c:578:26: note: '?' condition is true
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(sc->ip, whichfork);
                                          ^
   fs/xfs/libxfs/xfs_inode_fork.h:100:4: note: expanded from macro 'XFS_IFORK_PTR'
                   ((w) == XFS_ATTR_FORK ? \
                    ^
   fs/xfs/scrub/bmap.c:582:2: note: 'error' declared without an initial value
           int                     error;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/scrub/bmap.c:584:6: note: Assuming the condition is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   fs/xfs/scrub/bmap.c:584:6: note: Left side of '||' is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   fs/xfs/scrub/bmap.c:585:6: note: 'whichfork' is not equal to 2
               whichfork == XFS_COW_FORK ||
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   fs/xfs/scrub/bmap.c:584:6: note: Left side of '||' is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   fs/xfs/scrub/bmap.c:584:2: note: Assuming the condition is true
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
           ^
   include/linux/compiler.h:56:45: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   fs/xfs/scrub/bmap.c:584:2: note: '?' condition is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                 ^
   fs/xfs/scrub/bmap.c:584:6: note: Left side of '||' is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   fs/xfs/scrub/bmap.c:585:6: note: 'whichfork' is not equal to 2
               whichfork == XFS_COW_FORK ||
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                                        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   fs/xfs/scrub/bmap.c:584:6: note: Left side of '||' is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   fs/xfs/scrub/bmap.c:584:2: note: '?' condition is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \

vim +621 fs/xfs/scrub/bmap.c

5e777b62b0bcb64 Darrick J. Wong   2018-03-23  571  
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  572  /* Make sure each rmap has a corresponding bmbt entry. */
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  573  STATIC int
c517b3aa02cff1d Darrick J. Wong   2018-07-19  574  xchk_bmap_check_rmaps(
1d8a748a8aa94a7 Darrick J. Wong   2018-07-19  575  	struct xfs_scrub	*sc,
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  576  	int			whichfork)
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  577  {
daf83964a3681cf Christoph Hellwig 2020-05-18  578  	struct xfs_ifork	*ifp = XFS_IFORK_PTR(sc->ip, whichfork);
934933c3eec9e4a Dave Chinner      2021-06-02  579  	struct xfs_perag	*pag;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  580  	xfs_agnumber_t		agno;
5fd68bdb5a87c92 Darrick J. Wong   2020-05-16  581  	bool			zero_size;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  582  	int			error;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  583  
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  584  	if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  585  	    whichfork == XFS_COW_FORK ||
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  586  	    (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  587  		return 0;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  588  
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  589  	/* Don't support realtime rmap checks yet. */
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  590  	if (XFS_IS_REALTIME_INODE(sc->ip) && whichfork == XFS_DATA_FORK)
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  591  		return 0;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  592  
5fd68bdb5a87c92 Darrick J. Wong   2020-05-16  593  	ASSERT(XFS_IFORK_PTR(sc->ip, whichfork) != NULL);
5fd68bdb5a87c92 Darrick J. Wong   2020-05-16  594  
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  595  	/*
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  596  	 * Only do this for complex maps that are in btree format, or for
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  597  	 * situations where we would seem to have a size but zero extents.
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  598  	 * The inode repair code can zap broken iforks, which means we have
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  599  	 * to flag this bmap as corrupt if there are rmaps that need to be
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  600  	 * reattached.
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  601  	 */
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18  602  
5fd68bdb5a87c92 Darrick J. Wong   2020-05-16  603  	if (whichfork == XFS_DATA_FORK)
5fd68bdb5a87c92 Darrick J. Wong   2020-05-16  604  		zero_size = i_size_read(VFS_I(sc->ip)) == 0;
5fd68bdb5a87c92 Darrick J. Wong   2020-05-16  605  	else
5fd68bdb5a87c92 Darrick J. Wong   2020-05-16  606  		zero_size = false;
5fd68bdb5a87c92 Darrick J. Wong   2020-05-16  607  
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18  608  	if (ifp->if_format != XFS_DINODE_FMT_BTREE &&
daf83964a3681cf Christoph Hellwig 2020-05-18  609  	    (zero_size || ifp->if_nextents > 0))
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  610  		return 0;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  611  
934933c3eec9e4a Dave Chinner      2021-06-02  612  	for_each_perag(sc->mp, agno, pag) {
934933c3eec9e4a Dave Chinner      2021-06-02  613  		error = xchk_bmap_check_ag_rmaps(sc, whichfork, pag->pag_agno);
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  614  		if (error)
934933c3eec9e4a Dave Chinner      2021-06-02  615  			break;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  616  		if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  617  			break;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  618  	}
934933c3eec9e4a Dave Chinner      2021-06-02  619  	if (pag)
934933c3eec9e4a Dave Chinner      2021-06-02  620  		xfs_perag_put(pag);
934933c3eec9e4a Dave Chinner      2021-06-02 @621  	return error;
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  622  }
5e777b62b0bcb64 Darrick J. Wong   2018-03-23  623  

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 2+ messages in thread

* fs/xfs/scrub/bmap.c:621:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
@ 2022-03-09 18:02 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-03-09 18:02 UTC (permalink / raw)
  To: kbuild

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

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Dave Chinner <dchinner@redhat.com>
CC: Brian Foster <bfoster@redhat.com>
CC: "Darrick J. Wong" <djwong@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   330f4c53d3c2d8b11d86ec03a964b86dc81452f5
commit: 934933c3eec9e4a5826d3d7a47aca0742337fded xfs: convert raw ag walks to use for_each_perag
date:   9 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 9 months ago
config: arm-randconfig-c002-20220308 (https://download.01.org/0day-ci/archive/20220310/202203100110.j21o44w0-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
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/torvalds/linux.git/commit/?id=934933c3eec9e4a5826d3d7a47aca0742337fded
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 934933c3eec9e4a5826d3d7a47aca0742337fded
        # save the config file to linux build tree
        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 >>)
           ^
   include/linux/hid.h:1002:2: note: Taking true branch
           if (unlikely(c > limit || !bmap)) {
           ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   include/linux/hid.h:1003:3: note: Assuming the condition is false
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:528:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/printk.h:511:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:56:45: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   include/linux/hid.h:1003:3: note: '?' condition is false
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:528:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/printk.h:511:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                 ^
   include/linux/hid.h:1003:3: note: Assuming the condition is false
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:528:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/printk.h:511:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:56:45: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                       ~~~~~~~~~~~~~~~~~^~~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   include/linux/hid.h:1003:3: note: '?' condition is true
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:528:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/printk.h:511:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   include/linux/hid.h:1003:3: note: Taking true branch
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:528:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/printk.h:511:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   include/linux/hid.h:1004:9: note: Access to field 'name' results in a dereference of a null pointer (loaded from variable 'input')
                                       input->name, c, type);
                                       ^
   include/linux/printk.h:528:49: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
                                                          ^~~~~~~~~~~
   include/linux/printk.h:512:17: note: expanded from macro 'printk_ratelimited'
                   printk(fmt, ##__VA_ARGS__);                             \
                                 ^~~~~~~~~~~
   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.
   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.
   5 warnings generated.
>> fs/xfs/scrub/bmap.c:621:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
           return error;
           ^      ~~~~~
   fs/xfs/scrub/bmap.c:578:26: note: Assuming 'whichfork' is not equal to 0
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(sc->ip, whichfork);
                                          ^
   fs/xfs/libxfs/xfs_inode_fork.h:98:3: note: expanded from macro 'XFS_IFORK_PTR'
           ((w) == XFS_DATA_FORK ? \
            ^~~~~~~~~~~~~~~~~~~~
   fs/xfs/scrub/bmap.c:578:26: note: '?' condition is false
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(sc->ip, whichfork);
                                          ^
   fs/xfs/libxfs/xfs_inode_fork.h:98:3: note: expanded from macro 'XFS_IFORK_PTR'
           ((w) == XFS_DATA_FORK ? \
            ^
   fs/xfs/scrub/bmap.c:578:26: note: Assuming 'whichfork' is equal to 1
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(sc->ip, whichfork);
                                          ^
   fs/xfs/libxfs/xfs_inode_fork.h:100:4: note: expanded from macro 'XFS_IFORK_PTR'
                   ((w) == XFS_ATTR_FORK ? \
                    ^~~~~~~~~~~~~~~~~~~~
   fs/xfs/scrub/bmap.c:578:26: note: '?' condition is true
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(sc->ip, whichfork);
                                          ^
   fs/xfs/libxfs/xfs_inode_fork.h:100:4: note: expanded from macro 'XFS_IFORK_PTR'
                   ((w) == XFS_ATTR_FORK ? \
                    ^
   fs/xfs/scrub/bmap.c:582:2: note: 'error' declared without an initial value
           int                     error;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/scrub/bmap.c:584:6: note: Assuming the condition is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   fs/xfs/scrub/bmap.c:584:6: note: Left side of '||' is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   fs/xfs/scrub/bmap.c:585:6: note: 'whichfork' is not equal to 2
               whichfork == XFS_COW_FORK ||
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   fs/xfs/scrub/bmap.c:584:6: note: Left side of '||' is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   fs/xfs/scrub/bmap.c:584:2: note: Assuming the condition is true
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
           ^
   include/linux/compiler.h:56:45: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                      ^~~~
   fs/xfs/scrub/bmap.c:584:2: note: '?' condition is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                 ^
   fs/xfs/scrub/bmap.c:584:6: note: Left side of '||' is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   fs/xfs/scrub/bmap.c:585:6: note: 'whichfork' is not equal to 2
               whichfork == XFS_COW_FORK ||
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                                        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   fs/xfs/scrub/bmap.c:584:6: note: Left side of '||' is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
               ^
   fs/xfs/scrub/bmap.c:584:2: note: '?' condition is false
           if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \

vim +621 fs/xfs/scrub/bmap.c

5e777b62b0bcb6 Darrick J. Wong   2018-03-23  571  
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  572  /* Make sure each rmap has a corresponding bmbt entry. */
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  573  STATIC int
c517b3aa02cff1 Darrick J. Wong   2018-07-19  574  xchk_bmap_check_rmaps(
1d8a748a8aa94a Darrick J. Wong   2018-07-19  575  	struct xfs_scrub	*sc,
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  576  	int			whichfork)
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  577  {
daf83964a3681c Christoph Hellwig 2020-05-18  578  	struct xfs_ifork	*ifp = XFS_IFORK_PTR(sc->ip, whichfork);
934933c3eec9e4 Dave Chinner      2021-06-02  579  	struct xfs_perag	*pag;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  580  	xfs_agnumber_t		agno;
5fd68bdb5a87c9 Darrick J. Wong   2020-05-16  581  	bool			zero_size;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  582  	int			error;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  583  
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  584  	if (!xfs_sb_version_hasrmapbt(&sc->mp->m_sb) ||
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  585  	    whichfork == XFS_COW_FORK ||
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  586  	    (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT))
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  587  		return 0;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  588  
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  589  	/* Don't support realtime rmap checks yet. */
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  590  	if (XFS_IS_REALTIME_INODE(sc->ip) && whichfork == XFS_DATA_FORK)
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  591  		return 0;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  592  
5fd68bdb5a87c9 Darrick J. Wong   2020-05-16  593  	ASSERT(XFS_IFORK_PTR(sc->ip, whichfork) != NULL);
5fd68bdb5a87c9 Darrick J. Wong   2020-05-16  594  
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  595  	/*
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  596  	 * Only do this for complex maps that are in btree format, or for
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  597  	 * situations where we would seem to have a size but zero extents.
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  598  	 * The inode repair code can zap broken iforks, which means we have
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  599  	 * to flag this bmap as corrupt if there are rmaps that need to be
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  600  	 * reattached.
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  601  	 */
f7e67b20ecbbcb Christoph Hellwig 2020-05-18  602  
5fd68bdb5a87c9 Darrick J. Wong   2020-05-16  603  	if (whichfork == XFS_DATA_FORK)
5fd68bdb5a87c9 Darrick J. Wong   2020-05-16  604  		zero_size = i_size_read(VFS_I(sc->ip)) == 0;
5fd68bdb5a87c9 Darrick J. Wong   2020-05-16  605  	else
5fd68bdb5a87c9 Darrick J. Wong   2020-05-16  606  		zero_size = false;
5fd68bdb5a87c9 Darrick J. Wong   2020-05-16  607  
f7e67b20ecbbcb Christoph Hellwig 2020-05-18  608  	if (ifp->if_format != XFS_DINODE_FMT_BTREE &&
daf83964a3681c Christoph Hellwig 2020-05-18  609  	    (zero_size || ifp->if_nextents > 0))
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  610  		return 0;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  611  
934933c3eec9e4 Dave Chinner      2021-06-02  612  	for_each_perag(sc->mp, agno, pag) {
934933c3eec9e4 Dave Chinner      2021-06-02  613  		error = xchk_bmap_check_ag_rmaps(sc, whichfork, pag->pag_agno);
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  614  		if (error)
934933c3eec9e4 Dave Chinner      2021-06-02  615  			break;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  616  		if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  617  			break;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  618  	}
934933c3eec9e4 Dave Chinner      2021-06-02  619  	if (pag)
934933c3eec9e4 Dave Chinner      2021-06-02  620  		xfs_perag_put(pag);
934933c3eec9e4 Dave Chinner      2021-06-02 @621  	return error;
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  622  }
5e777b62b0bcb6 Darrick J. Wong   2018-03-23  623  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-03-14 22:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-14 22:00 fs/xfs/scrub/bmap.c:621:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn] kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-03-09 18:02 kernel test robot

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.