All of lore.kernel.org
 help / color / mirror / Atom feed
* [djwong-xfs:defrag-freespace 309/310] fs/xfs/libxfs/xfs_bmap.c:6580:23: warning: The left operand of '!=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
@ 2021-08-18 10:19 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-08-18 10:19 UTC (permalink / raw)
  To: kbuild

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

CC: clang-built-linux(a)googlegroups.com
CC: kbuild-all(a)lists.01.org
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 defrag-freespace
head:   eac62500d5481c286ef5fac0873d1707175312b6
commit: e17e75a18c97e1f807f4e82707349ffa38c94fa3 [309/310] xfs: fallocate free space into a file
:::::: branch date: 34 hours ago
:::::: commit date: 34 hours ago
config: riscv-randconfig-c006-20210816 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project af7818093677dcb4c0840aef96bc029deb219e57)
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 riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/commit/?id=e17e75a18c97e1f807f4e82707349ffa38c94fa3
        git remote add djwong-xfs https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
        git fetch --no-tags djwong-xfs defrag-freespace
        git checkout e17e75a18c97e1f807f4e82707349ffa38c94fa3
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 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/math.h:89:3: note: expanded from macro 'DIV_ROUND_CLOSEST'
           (((typeof(x))-1) > 0 ||                         \
            ^
   drivers/hwmon/pmbus/zl6100.c:111:13: note: Left side of '||' is false
           mantissa = DIV_ROUND_CLOSEST(val, 1000);
                      ^
   include/linux/math.h:89:3: note: expanded from macro 'DIV_ROUND_CLOSEST'
           (((typeof(x))-1) > 0 ||                         \
            ^
   drivers/hwmon/pmbus/zl6100.c:111:13: note: '__x' is > 0
           mantissa = DIV_ROUND_CLOSEST(val, 1000);
                      ^
   include/linux/math.h:91:5: note: expanded from macro 'DIV_ROUND_CLOSEST'
            (((__x) > 0) == ((__d) > 0))) ?                \
              ^~~~~
   drivers/hwmon/pmbus/zl6100.c:111:13: note: '?' condition is true
           mantissa = DIV_ROUND_CLOSEST(val, 1000);
                      ^
   include/linux/math.h:89:2: note: expanded from macro 'DIV_ROUND_CLOSEST'
           (((typeof(x))-1) > 0 ||                         \
           ^
   drivers/hwmon/pmbus/zl6100.c:114:6: note: Assuming 'mantissa' is <= 1023
           if (mantissa > 0x3ff)
               ^~~~~~~~~~~~~~~~
   drivers/hwmon/pmbus/zl6100.c:114:2: note: Taking false branch
           if (mantissa > 0x3ff)
           ^
   drivers/hwmon/pmbus/zl6100.c:118:6: note: 'negative' is false
           if (negative)
               ^~~~~~~~
   drivers/hwmon/pmbus/zl6100.c:118:2: note: Taking false branch
           if (negative)
           ^
   drivers/hwmon/pmbus/zl6100.c:122:41: note: The result of the left shift is undefined because the left operand is negative
           return (mantissa & 0x7ff) | ((exponent << 11) & 0xf800);
                                         ~~~~~~~~ ^
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   12 warnings generated.
   fs/xfs/libxfs/xfs_attr_leaf.c:2248: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:2248: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:2249: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:2249: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 10 warnings (10 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (10 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   22 warnings generated.
   fs/xfs/libxfs/xfs_bmap.c:345:2: warning: Value stored to 'bno' is never read [clang-analyzer-deadcode.DeadStores]
           bno = NULLFSBLOCK;
           ^
   fs/xfs/libxfs/xfs_bmap.c:345:2: note: Value stored to 'bno' is never read
   fs/xfs/libxfs/xfs_bmap.c:392:4: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
                           error = -EFSCORRUPTED;
                           ^       ~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:392:4: note: Value stored to 'error' is never read
                           error = -EFSCORRUPTED;
                           ^       ~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:445:4: warning: Value stored to 'bp_release' is never read [clang-analyzer-deadcode.DeadStores]
                           bp_release = 0;
                           ^            ~
   fs/xfs/libxfs/xfs_bmap.c:445:4: note: Value stored to 'bp_release' is never read
                           bp_release = 0;
                           ^            ~
   fs/xfs/libxfs/xfs_bmap.c:558:3: warning: Value stored to 'agno' is never read [clang-analyzer-deadcode.DeadStores]
                   agno = 0;
                   ^      ~
   fs/xfs/libxfs/xfs_bmap.c:558:3: note: Value stored to 'agno' is never read
                   agno = 0;
                   ^      ~
   fs/xfs/libxfs/xfs_bmap.c:559:3: warning: Value stored to 'agbno' is never read [clang-analyzer-deadcode.DeadStores]
                   agbno = bno;
                   ^       ~~~
   fs/xfs/libxfs/xfs_bmap.c:559:3: note: Value stored to 'agbno' is never read
                   agbno = bno;
                   ^       ~~~
   fs/xfs/libxfs/xfs_bmap.c:864:2: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
           error = 0;
           ^       ~
   fs/xfs/libxfs/xfs_bmap.c:864:2: note: Value stored to 'error' is never read
           error = 0;
           ^       ~
   fs/xfs/libxfs/xfs_bmap.c:5156:2: warning: Value stored to 'qfield' is never read [clang-analyzer-deadcode.DeadStores]
           qfield = 0;
           ^        ~
   fs/xfs/libxfs/xfs_bmap.c:5156:2: note: Value stored to 'qfield' is never read
           qfield = 0;
           ^        ~
>> fs/xfs/libxfs/xfs_bmap.c:6580:23: warning: The left operand of '!=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
           if (irec.br_startoff != startoff ||
               ~~~~~~~~~~~~~~~~ ^
   fs/xfs/libxfs/xfs_bmap.c:6566:6: note: Assuming 'error' is 0
           if (error)
               ^~~~~
   fs/xfs/libxfs/xfs_bmap.c:6566:2: note: Taking false branch
           if (error)
           ^
   fs/xfs/libxfs/xfs_bmap.c:6569:6: note: 'isrt' is false
           if (isrt)
               ^~~~
   fs/xfs/libxfs/xfs_bmap.c:6569:2: note: Taking false branch
           if (isrt)
           ^
   fs/xfs/libxfs/xfs_bmap.c:6576:10: note: Calling 'xfs_bmapi_read'
           error = xfs_bmapi_read(ip, startoff, len, &irec, &nimaps, 0);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:3986:26: note: 'whichfork' is equal to 0
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(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.c:3986:26: note: '?' condition is true
           struct xfs_ifork        *ifp = XFS_IFORK_PTR(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.c:3995:2: note: '?' condition is true
           ASSERT(*nmap >= 1);
           ^
   fs/xfs/xfs_linux.h:210:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : assfail(NULL, #expr, __FILE__, __LINE__))
            ^
   include/linux/compiler.h:77:20: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                           ^
   fs/xfs/libxfs/xfs_bmap.c:3996:2: note: '?' condition is true
           ASSERT(!(flags & ~(XFS_BMAPI_ATTRFORK | XFS_BMAPI_ENTIRE)));
           ^
   fs/xfs/xfs_linux.h:210:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : assfail(NULL, #expr, __FILE__, __LINE__))
            ^
   include/linux/compiler.h:77:20: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                           ^
   fs/xfs/libxfs/xfs_bmap.c:3997:2: note: Assuming the condition is false
           ASSERT(xfs_isilocked(ip, XFS_ILOCK_SHARED|XFS_ILOCK_EXCL));
           ^
   fs/xfs/xfs_linux.h:210:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : assfail(NULL, #expr, __FILE__, __LINE__))
            ^~~~~~~~~~~~
   include/linux/compiler.h:77:38: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                                             ^~~~
   fs/xfs/libxfs/xfs_bmap.c:3997:2: note: '?' condition is true
           ASSERT(xfs_isilocked(ip, XFS_ILOCK_SHARED|XFS_ILOCK_EXCL));
           ^
   fs/xfs/xfs_linux.h:210:3: note: expanded from macro 'ASSERT'
           (likely(expr) ? (void)0 : assfail(NULL, #expr, __FILE__, __LINE__))
            ^
   include/linux/compiler.h:77:20: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                           ^
   fs/xfs/libxfs/xfs_bmap.c:3999:20: note: 'ifp' is non-null
           if (WARN_ON_ONCE(!ifp))
                             ^
   include/asm-generic/bug.h:104:25: note: expanded from macro 'WARN_ON_ONCE'
           int __ret_warn_on = !!(condition);                      \
                                  ^~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:3999:6: note: Taking false branch
           if (WARN_ON_ONCE(!ifp))
               ^
   include/asm-generic/bug.h:105:2: note: expanded from macro 'WARN_ON_ONCE'
           if (unlikely(__ret_warn_on))                            \
           ^
   fs/xfs/libxfs/xfs_bmap.c:3999:2: note: Taking false branch
           if (WARN_ON_ONCE(!ifp))
           ^
   fs/xfs/libxfs/xfs_bmap.c:4002:6: note: '?' condition is false
           if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ifp)) ||
               ^
   fs/xfs/xfs_linux.h:227:3: note: expanded from macro 'XFS_IS_CORRUPT'
           (unlikely(expr) ? xfs_corruption_error(#expr, XFS_ERRLEVEL_LOW, (mp), \
            ^
   include/linux/compiler.h:78:22: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                           ^
   fs/xfs/libxfs/xfs_bmap.c:4002:6: note: Left side of '||' is false
           if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ifp)) ||
               ^
   fs/xfs/xfs_linux.h:227:2: note: expanded from macro 'XFS_IS_CORRUPT'
           (unlikely(expr) ? xfs_corruption_error(#expr, XFS_ERRLEVEL_LOW, (mp), \
           ^
   fs/xfs/libxfs/xfs_bmap.c:4003:6: note: Left side of '||' is false
               XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {
               ^
   fs/xfs/xfs_error.h:47:3: note: expanded from macro 'XFS_TEST_ERROR'
           ((expr) || xfs_errortag_test((mp), #expr, __FILE__, __LINE__, (tag)))
            ^
   fs/xfs/libxfs/xfs_bmap.c:4003:6: note: Assuming the condition is false
               XFS_TEST_ERROR(false, mp, XFS_ERRTAG_BMAPIFORMAT)) {
               ^
   fs/xfs/xfs_error.h:47:13: note: expanded from macro 'XFS_TEST_ERROR'
           ((expr) || xfs_errortag_test((mp), #expr, __FILE__, __LINE__, (tag)))
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:4002:2: note: Taking false branch
           if (XFS_IS_CORRUPT(mp, !xfs_ifork_has_extents(ifp)) ||
           ^
   fs/xfs/libxfs/xfs_bmap.c:4008:6: note: Assuming the condition is false
           if (XFS_FORCED_SHUTDOWN(mp))
               ^
   fs/xfs/xfs_mount.h:363:34: note: expanded from macro 'XFS_FORCED_SHUTDOWN'
   #define XFS_FORCED_SHUTDOWN(mp) ((mp)->m_flags & XFS_MOUNT_FS_SHUTDOWN)
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:4008:2: note: Taking false branch
           if (XFS_FORCED_SHUTDOWN(mp))
           ^
   fs/xfs/libxfs/xfs_bmap.c:4011:2: note: Loop condition is false.  Exiting loop
           XFS_STATS_INC(mp, xs_blk_mapr);
           ^
   fs/xfs/xfs_stats.h:165:2: note: expanded from macro 'XFS_STATS_INC'
           per_cpu_ptr(xfsstats.xs_stats, current_cpu())->s.v++;   \
           ^
   include/linux/percpu-defs.h:235:2: note: expanded from macro 'per_cpu_ptr'
           __verify_pcpu_ptr(ptr);                                         \
           ^
   include/linux/percpu-defs.h:217:37: note: expanded from macro '__verify_pcpu_ptr'
   #define __verify_pcpu_ptr(ptr)                                          \
                                                                           ^
   fs/xfs/libxfs/xfs_bmap.c:4011:2: note: Loop condition is false.  Exiting loop
           XFS_STATS_INC(mp, xs_blk_mapr);
           ^
   fs/xfs/xfs_stats.h:166:2: note: expanded from macro 'XFS_STATS_INC'
           per_cpu_ptr(mp->m_stats.xs_stats, current_cpu())->s.v++;        \
           ^
   include/linux/percpu-defs.h:235:2: note: expanded from macro 'per_cpu_ptr'
           __verify_pcpu_ptr(ptr);                                         \
           ^
   include/linux/percpu-defs.h:217:37: note: expanded from macro '__verify_pcpu_ptr'
   #define __verify_pcpu_ptr(ptr)                                          \
                                                                           ^
   fs/xfs/libxfs/xfs_bmap.c:4011:2: note: Loop condition is false.  Exiting loop
           XFS_STATS_INC(mp, xs_blk_mapr);
           ^
   fs/xfs/xfs_stats.h:163:34: note: expanded from macro 'XFS_STATS_INC'
   #define XFS_STATS_INC(mp, v)                                    \
                                                                   ^
   fs/xfs/libxfs/xfs_bmap.c:4014:6: note: 'error' is 0
           if (error)
               ^~~~~
   fs/xfs/libxfs/xfs_bmap.c:4014:2: note: Taking false branch
           if (error)
           ^
   fs/xfs/libxfs/xfs_bmap.c:4017:6: note: Assuming the condition is false
           if (!xfs_iext_lookup_extent(ip, ifp, bno, &icur, &got))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:4017:2: note: Taking false branch
           if (!xfs_iext_lookup_extent(ip, ifp, bno, &icur, &got))
           ^
   fs/xfs/libxfs/xfs_bmap.c:4022:9: note: Assuming 'bno' is >= 'end'
           while (bno < end && n < *nmap) {
                  ^~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:4022:19: note: Left side of '&&' is false
           while (bno < end && n < *nmap) {
                            ^
   fs/xfs/libxfs/xfs_bmap.c:4053:2: note: Returning without writing to 'mval->br_startoff'
           return 0;
           ^
   fs/xfs/libxfs/xfs_bmap.c:4053:2: note: Returning zero, which participates in a condition later
           return 0;
           ^~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:6576:10: note: Returning from 'xfs_bmapi_read'
           error = xfs_bmapi_read(ip, startoff, len, &irec, &nimaps, 0);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:6577:6: note: 'error' is 0
           if (error)
               ^~~~~
   fs/xfs/libxfs/xfs_bmap.c:6577:2: note: Taking false branch
           if (error)
           ^
   fs/xfs/libxfs/xfs_bmap.c:6580:23: note: The left operand of '!=' is a garbage value
           if (irec.br_startoff != startoff ||
               ~~~~~~~~~~~~~~~~ ^
>> fs/xfs/libxfs/xfs_bmap.c:6598:3: warning: Value stored to 'rtxlen_in' is never read [clang-analyzer-deadcode.DeadStores]
                   rtxlen_in = len / mp->m_sb.sb_rextsize;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/xfs/libxfs/xfs_bmap.c:6598:3: note: Value stored to 'rtxlen_in' is never read
                   rtxlen_in = len / mp->m_sb.sb_rextsize;
                   ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 13 warnings (10 in non-user code, 3 with check filters).
   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.
   Suppressed 7 warnings (7 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.
   Suppressed 7 warnings (7 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/block/zram/zram_drv.c:1021:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcpy(zram->compressor, compressor);
           ^~~~~~
   drivers/block/zram/zram_drv.c:1021:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
           strcpy(zram->compressor, compressor);
           ^~~~~~
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/block/null_blk/main.c:928:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
                           ret = radix_tree_delete_item(&nullb->dev->data,
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/block/null_blk/main.c:928:4: note: Value stored to 'ret' is never read
                           ret = radix_tree_delete_item(&nullb->dev->data,
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/misc/eeprom/at25.c:460:44: warning: The left operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
           at25->nvmem_config.read_only = chip.flags & EE_READONLY;
                                          ~~~~~~~~~~ ^
   drivers/misc/eeprom/at25.c:382:6: note: Assuming 'match' is non-null
           if (match && !strcmp(match->compatible, "cypress,fm25"))
               ^~~~~
   drivers/misc/eeprom/at25.c:382:6: note: Left side of '&&' is true
   drivers/misc/eeprom/at25.c:382:2: note: Taking true branch
           if (match && !strcmp(match->compatible, "cypress,fm25"))
           ^
   drivers/misc/eeprom/at25.c:386:6: note: Assuming field 'platform_data' is null
           if (!spi->dev.platform_data) {
               ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/eeprom/at25.c:386:2: note: Taking true branch
           if (!spi->dev.platform_data) {
           ^
   drivers/misc/eeprom/at25.c:387:8: note: 'is_fram' is true
                   if (!is_fram) {
                        ^~~~~~~
   drivers/misc/eeprom/at25.c:387:3: note: Taking false branch
                   if (!is_fram) {
                   ^
   drivers/misc/eeprom/at25.c:400:6: note: 'sr' is >= 0
           if (sr < 0 || sr & AT25_SR_nRDY) {
               ^~
   drivers/misc/eeprom/at25.c:400:6: note: Left side of '||' is false
   drivers/misc/eeprom/at25.c:400:16: note: Assuming the condition is false
           if (sr < 0 || sr & AT25_SR_nRDY) {
                         ^~~~~~~~~~~~~~~~~
   drivers/misc/eeprom/at25.c:400:2: note: Taking false branch
           if (sr < 0 || sr & AT25_SR_nRDY) {
           ^
   drivers/misc/eeprom/at25.c:406:6: note: Assuming 'at25' is non-null
           if (!at25)
               ^~~~~
   drivers/misc/eeprom/at25.c:406:2: note: Taking false branch
           if (!at25)
           ^
   drivers/misc/eeprom/at25.c:409:2: note: Loop condition is false.  Exiting loop
           mutex_init(&at25->lock);
           ^
   include/linux/mutex.h:113:32: note: expanded from macro 'mutex_init'
   #define mutex_init(mutex)                                               \
                                                                           ^
   drivers/misc/eeprom/at25.c:414:6: note: 'is_fram' is true
           if (is_fram) {
               ^~~~~~~
   drivers/misc/eeprom/at25.c:414:2: note: Taking true branch
           if (is_fram) {
           ^
   drivers/misc/eeprom/at25.c:417:7: note: Assuming the condition is false
                   if (id[6] != 0xc2) {
                       ^~~~~~~~~~~~~
   drivers/misc/eeprom/at25.c:417:3: note: Taking false branch
                   if (id[6] != 0xc2) {
                   ^
   drivers/misc/eeprom/at25.c:423:7: note: Assuming the condition is false
                   if (id[7] < 0x21 || id[7] > 0x26) {
                       ^~~~~~~~~~~~
   drivers/misc/eeprom/at25.c:423:7: note: Left side of '||' is false
   drivers/misc/eeprom/at25.c:423:23: note: Assuming the condition is false
                   if (id[7] < 0x21 || id[7] > 0x26) {

vim +6580 fs/xfs/libxfs/xfs_bmap.c

e17e75a18c97e1 Darrick J. Wong 2021-06-15  6541  
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6542  /*
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6543   * Given a file and a free physical extent, map it into the file at the same
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6544   * offset if the file were a sparse image of the physical device.  Set @mval to
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6545   * whatever mapping we added to the file.
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6546   */
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6547  int
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6548  xfs_bmapi_freesp(
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6549  	struct xfs_trans	**tpp,
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6550  	struct xfs_inode	*ip,
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6551  	xfs_fsblock_t		fsbno,
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6552  	xfs_extlen_t		len,
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6553  	struct xfs_bmbt_irec	*mval)
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6554  {
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6555  	struct xfs_bmbt_irec	irec;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6556  	struct xfs_mount	*mp = ip->i_mount;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6557  	xfs_fileoff_t		startoff;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6558  	bool			isrt = XFS_IS_REALTIME_INODE(ip);
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6559  	int			nimaps;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6560  	int			error;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6561  
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6562  	trace_xfs_bmapi_freesp(ip, fsbno, len);
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6563  
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6564  	error = xfs_iext_count_may_overflow(ip, XFS_DATA_FORK,
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6565  			XFS_IEXT_ADD_NOSPLIT_CNT);
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6566  	if (error)
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6567  		return error;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6568  
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6569  	if (isrt)
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6570  		startoff = fsbno;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6571  	else
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6572  		startoff = xfs_fsblock_to_fileoff(mp, fsbno);
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6573  
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6574  	/* Make sure the entire range is a hole. */
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6575  	nimaps = 1;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6576  	error = xfs_bmapi_read(ip, startoff, len, &irec, &nimaps, 0);
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6577  	if (error)
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6578  		return error;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6579  
e17e75a18c97e1 Darrick J. Wong 2021-06-15 @6580  	if (irec.br_startoff != startoff ||
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6581  	    irec.br_startblock != HOLESTARTBLOCK ||
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6582  	    irec.br_blockcount < len)
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6583  		return -EINVAL;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6584  
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6585  	/*
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6586  	 * Allocate the physical extent.  We should not have dropped the lock
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6587  	 * since the scan of the free space metadata, so this should work,
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6588  	 * though the length may be adjusted to play nicely with metadata space
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6589  	 * reservations.
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6590  	 */
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6591  	if (isrt) {
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6592  		xfs_rtblock_t	rtx_in, rtx_out;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6593  		xfs_extlen_t	rtxlen_in, rtxlen_out;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6594  		uint32_t	mod;
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6595  
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6596  		rtx_in = div_u64_rem(fsbno, mp->m_sb.sb_rextsize, &mod);
e17e75a18c97e1 Darrick J. Wong 2021-06-15  6597  		ASSERT(mod == 0);
e17e75a18c97e1 Darrick J. Wong 2021-06-15 @6598  		rtxlen_in = len / mp->m_sb.sb_rextsize;

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

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

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

only message in thread, other threads:[~2021-08-18 10:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-18 10:19 [djwong-xfs:defrag-freespace 309/310] fs/xfs/libxfs/xfs_bmap.c:6580:23: warning: The left operand of '!=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] 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.