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: 3324e6e803156b4296975555f566892e4e3f4fcf commit: 46d1fb072e76b161b0fb1ada9e37bf7e4d1f123f iommu/dart: Add DART iommu driver date: 6 months ago :::::: branch date: 2 hours ago :::::: commit date: 6 months ago config: riscv-randconfig-c006-20220215 (https://download.01.org/0day-ci/archive/20220221/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 37f422f4ac31c8b8041c6b62065263314282dab6) 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 >>) include/linux/list.h:511:2: note: expanded from macro 'list_entry' container_of(ptr, type, member) ^ include/linux/kernel.h:495:2: note: expanded from macro 'container_of' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert' do { \ ^ drivers/base/regmap/regmap-debugfs.c:75:3: note: Calling 'list_del' list_del(&c->list); ^~~~~~~~~~~~~~~~~~ include/linux/list.h:146:2: note: Calling '__list_del_entry' __list_del_entry(entry); ^~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:132:2: note: Taking false branch if (!__list_del_entry_valid(entry)) ^ include/linux/list.h:135:13: note: Use of memory after it is freed __list_del(entry->prev, entry->next); ^~~~~~~~~~~ Suppressed 6 warnings (6 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. 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. 8 warnings generated. fs/ubifs/tnc_misc.c:51:35: warning: Access to field 'level' results in a dereference of a null pointer (loaded from variable 'zr') [clang-analyzer-core.NullDereference] ubifs_assert(c, znode->level <= zr->level); ^ fs/ubifs/debug.h:143:17: note: expanded from macro 'ubifs_assert' if (unlikely(!(expr))) { \ ^~~~ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/ubifs/tnc_misc.c:36:2: note: Assuming 'zr' is null ubifs_assert(c, zr); ^ fs/ubifs/debug.h:143:15: note: expanded from macro 'ubifs_assert' if (unlikely(!(expr))) { \ ~~~~~~~~~^~~~~~~~ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/ubifs/tnc_misc.c:36:2: note: Taking true branch ubifs_assert(c, zr); ^ fs/ubifs/debug.h:143:2: note: expanded from macro 'ubifs_assert' if (unlikely(!(expr))) { \ ^ fs/ubifs/tnc_misc.c:36:2: note: Loop condition is false. Exiting loop ubifs_assert(c, zr); ^ fs/ubifs/debug.h:142:31: note: expanded from macro 'ubifs_assert' #define ubifs_assert(c, expr) do { \ ^ fs/ubifs/tnc_misc.c:38:15: note: Assuming 'znode' is non-null if (unlikely(!znode)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/ubifs/tnc_misc.c:38:2: note: Taking false branch if (unlikely(!znode)) ^ fs/ubifs/tnc_misc.c:41:15: note: 'znode' is not equal to 'zr' if (unlikely(znode == zr)) { ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/ubifs/tnc_misc.c:41:2: note: Taking false branch if (unlikely(znode == zr)) { ^ fs/ubifs/tnc_misc.c:50:2: note: Loop condition is true. Entering loop body while (1) { ^ fs/ubifs/tnc_misc.c:51:35: note: Access to field 'level' results in a dereference of a null pointer (loaded from variable 'zr') ubifs_assert(c, znode->level <= zr->level); ^ fs/ubifs/debug.h:143:17: note: expanded from macro 'ubifs_assert' if (unlikely(!(expr))) { \ ^~~~ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ 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. 6 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 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. 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. 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. 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. 9 warnings generated. drivers/iio/adc/meson_saradc.c:1049:13: warning: The left operand of '<=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] if (value1 <= value0) { ^ drivers/iio/adc/meson_saradc.c:1186:6: note: Assuming 'indio_dev' is non-null if (!indio_dev) { ^~~~~~~~~~ drivers/iio/adc/meson_saradc.c:1186:2: note: Taking false branch if (!indio_dev) { ^ drivers/iio/adc/meson_saradc.c:1195:6: note: Assuming 'match_data' is non-null if (!match_data) { ^~~~~~~~~~~ drivers/iio/adc/meson_saradc.c:1195:2: note: Taking false branch if (!match_data) { ^ drivers/iio/adc/meson_saradc.c:1207:2: note: Taking false branch if (IS_ERR(base)) ^ drivers/iio/adc/meson_saradc.c:1212:2: note: Taking false branch if (IS_ERR(priv->regmap)) ^ drivers/iio/adc/meson_saradc.c:1216:6: note: Assuming 'irq' is not equal to 0 if (!irq) ^~~~ drivers/iio/adc/meson_saradc.c:1216:2: note: Taking false branch if (!irq) ^ drivers/iio/adc/meson_saradc.c:1221:6: note: Assuming 'ret' is 0 if (ret) ^~~ drivers/iio/adc/meson_saradc.c:1221:2: note: Taking false branch if (ret) ^ drivers/iio/adc/meson_saradc.c:1225:2: note: Taking false branch if (IS_ERR(priv->clkin)) { ^ drivers/iio/adc/meson_saradc.c:1231:2: note: Taking false branch if (IS_ERR(priv->core_clk)) { ^ drivers/iio/adc/meson_saradc.c:1237:2: note: Taking false branch if (IS_ERR(priv->adc_clk)) { ^ drivers/iio/adc/meson_saradc.c:1247:2: note: Taking false branch if (IS_ERR(priv->adc_sel_clk)) { ^ drivers/iio/adc/meson_saradc.c:1257:6: note: Assuming field 'adc_clk' is non-null if (!priv->adc_clk) { ^~~~~~~~~~~~~~ drivers/iio/adc/meson_saradc.c:1257:2: note: Taking false branch if (!priv->adc_clk) { 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]
