CC: l...@lists.linux.dev
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Dave Chinner <dchin...@redhat.com>
CC: Brian Foster <bfos...@redhat.com>
CC: "Darrick J. Wong" <djw...@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-...@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 <l...@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-...@lists.01.org
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to