CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Sven Peter <[email protected]>
CC: Joerg Roedel <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   a763d5a5abd65797aec3dd1bf01fe2ccbec32967
commit: 46d1fb072e76b161b0fb1ada9e37bf7e4d1f123f iommu/dart: Add DART iommu 
driver
date:   4 months ago
:::::: branch date: 4 hours ago
:::::: commit date: 4 months ago
config: riscv-randconfig-c006-20211210 
(https://download.01.org/0day-ci/archive/20211212/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
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/torvalds/linux.git/commit/?id=46d1fb072e76b161b0fb1ada9e37bf7e4d1f123f
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 46d1fb072e76b161b0fb1ada9e37bf7e4d1f123f
        # save the config file 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 <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
           ^
   mm/vmalloc.c:2015:20: note: '?' condition is false
           offset = (addr & (VMAP_BLOCK_SIZE - 1)) >> PAGE_SHIFT;
                             ^
   mm/vmalloc.c:1786:27: note: expanded from macro 'VMAP_BLOCK_SIZE'
   #define VMAP_BLOCK_SIZE         (VMAP_BBMAP_BITS * PAGE_SIZE)
                                    ^
   mm/vmalloc.c:1784:20: note: expanded from macro 'VMAP_BBMAP_BITS'
                           VMALLOC_PAGES / roundup_pow_of_two(NR_CPUS) / 16))
                                           ^
   include/linux/log2.h:178:12: note: expanded from macro 'roundup_pow_of_two'
                   (1UL << (ilog2((n) - 1) + 1))   \
                            ^
   include/linux/log2.h:159:3: note: expanded from macro 'ilog2'
           ((n) < 2 ? 0 :                  \
            ^
   mm/vmalloc.c:2015:20: note: Assuming the condition is true
           offset = (addr & (VMAP_BLOCK_SIZE - 1)) >> PAGE_SHIFT;
                             ^
   mm/vmalloc.c:1786:27: note: expanded from macro 'VMAP_BLOCK_SIZE'
   #define VMAP_BLOCK_SIZE         (VMAP_BBMAP_BITS * PAGE_SIZE)
                                    ^~~~~~~~~~~~~~~
   mm/vmalloc.c:1782:3: note: expanded from macro 'VMAP_BBMAP_BITS'
                   VMAP_MIN(VMAP_BBMAP_BITS_MAX,   \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/vmalloc.c:1779:26: note: expanded from macro 'VMAP_MIN'
   #define VMAP_MIN(x, y)          ((x) < (y) ? (x) : (y)) /* can't use min() */
                                    ^~~~~~~~~
   mm/vmalloc.c:2015:20: note: '?' condition is true
           offset = (addr & (VMAP_BLOCK_SIZE - 1)) >> PAGE_SHIFT;
                             ^
   mm/vmalloc.c:1786:27: note: expanded from macro 'VMAP_BLOCK_SIZE'
   #define VMAP_BLOCK_SIZE         (VMAP_BBMAP_BITS * PAGE_SIZE)
                                    ^
   mm/vmalloc.c:1782:3: note: expanded from macro 'VMAP_BBMAP_BITS'
                   VMAP_MIN(VMAP_BBMAP_BITS_MAX,   \
                   ^
   mm/vmalloc.c:1779:26: note: expanded from macro 'VMAP_MIN'
   #define VMAP_MIN(x, y)          ((x) < (y) ? (x) : (y)) /* can't use min() */
                                    ^
   mm/vmalloc.c:2020:2: note: Taking false branch
           if (debug_pagealloc_enabled_static())
           ^
   mm/vmalloc.c:2026:18: note: Assuming '__UNIQUE_ID___x342' is >= 
'__UNIQUE_ID___y343'
           vb->dirty_min = min(vb->dirty_min, offset);
                           ^
   include/linux/minmax.h:45:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^~~~~~~~~~
   mm/vmalloc.c:2026:18: note: '?' condition is false
           vb->dirty_min = min(vb->dirty_min, offset);
                           ^
   include/linux/minmax.h:45:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   mm/vmalloc.c:2027:51: note: The result of the left shift is undefined due to 
shifting by '64', which is greater or equal to the width of type 'unsigned long'
           vb->dirty_max = max(vb->dirty_max, offset + (1UL << order));
                                                            ^
   include/linux/minmax.h:52:36: note: expanded from macro 'max'
   #define max(x, y)       __careful_cmp(x, y, >)
                                            ^
   include/linux/minmax.h:38:17: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                                 ^
   include/linux/minmax.h:32:25: note: expanded from macro '__cmp_once'
                   typeof(y) unique_y = (y);               \
                                         ^
   Suppressed 5 warnings (4 in non-user code, 1 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.
   4 warnings generated.
   drivers/iommu/sun50i-iommu.c:511:3: warning: Value stored to 'dte' is never 
read [clang-analyzer-deadcode.DeadStores]
                   dte = old_dte;
                   ^     ~~~~~~~
   drivers/iommu/sun50i-iommu.c:511:3: note: Value stored to 'dte' is never read
                   dte = old_dte;
                   ^     ~~~~~~~
   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.
>> drivers/iommu/apple-dart.c:671:22: warning: Value stored to 'res' during its 
>> initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct iommu_group *res = ERR_PTR(-EINVAL);
                               ^~~   ~~~~~~~~~~~~~~~~
   drivers/iommu/apple-dart.c:671:22: note: Value stored to 'res' during its 
initialization is never read
           struct iommu_group *res = ERR_PTR(-EINVAL);
                               ^~~   ~~~~~~~~~~~~~~~~
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.

vim +/res +671 drivers/iommu/apple-dart.c

46d1fb072e76b1 Sven Peter 2021-08-03  663  
46d1fb072e76b1 Sven Peter 2021-08-03  664  static struct iommu_group 
*apple_dart_device_group(struct device *dev)
46d1fb072e76b1 Sven Peter 2021-08-03  665  {
46d1fb072e76b1 Sven Peter 2021-08-03  666       static DEFINE_MUTEX(lock);
46d1fb072e76b1 Sven Peter 2021-08-03  667       int i, sid;
46d1fb072e76b1 Sven Peter 2021-08-03  668       struct apple_dart_master_cfg 
*cfg = dev_iommu_priv_get(dev);
46d1fb072e76b1 Sven Peter 2021-08-03  669       struct apple_dart_stream_map 
*stream_map;
46d1fb072e76b1 Sven Peter 2021-08-03  670       struct iommu_group *group = 
NULL;
46d1fb072e76b1 Sven Peter 2021-08-03 @671       struct iommu_group *res = 
ERR_PTR(-EINVAL);
46d1fb072e76b1 Sven Peter 2021-08-03  672  
46d1fb072e76b1 Sven Peter 2021-08-03  673       mutex_lock(&lock);
46d1fb072e76b1 Sven Peter 2021-08-03  674  
46d1fb072e76b1 Sven Peter 2021-08-03  675       for_each_stream_map(i, cfg, 
stream_map) {
46d1fb072e76b1 Sven Peter 2021-08-03  676               for_each_set_bit(sid, 
&stream_map->sidmap, DART_MAX_STREAMS) {
46d1fb072e76b1 Sven Peter 2021-08-03  677                       struct 
iommu_group *stream_group =
46d1fb072e76b1 Sven Peter 2021-08-03  678                               
stream_map->dart->sid2group[sid];
46d1fb072e76b1 Sven Peter 2021-08-03  679  
46d1fb072e76b1 Sven Peter 2021-08-03  680                       if (group && 
group != stream_group) {
46d1fb072e76b1 Sven Peter 2021-08-03  681                               res = 
ERR_PTR(-EINVAL);
46d1fb072e76b1 Sven Peter 2021-08-03  682                               goto 
out;
46d1fb072e76b1 Sven Peter 2021-08-03  683                       }
46d1fb072e76b1 Sven Peter 2021-08-03  684  
46d1fb072e76b1 Sven Peter 2021-08-03  685                       group = 
stream_group;
46d1fb072e76b1 Sven Peter 2021-08-03  686               }
46d1fb072e76b1 Sven Peter 2021-08-03  687       }
46d1fb072e76b1 Sven Peter 2021-08-03  688  
46d1fb072e76b1 Sven Peter 2021-08-03  689       if (group) {
46d1fb072e76b1 Sven Peter 2021-08-03  690               res = 
iommu_group_ref_get(group);
46d1fb072e76b1 Sven Peter 2021-08-03  691               goto out;
46d1fb072e76b1 Sven Peter 2021-08-03  692       }
46d1fb072e76b1 Sven Peter 2021-08-03  693  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to