[android-common:android-mainline-desktop 1/1] arch/arm64/include/asm/barrier.h:133:20: warning: passing argument 1 of '__kasan_check_write' makes pointer from integer without a cast
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
Hi Isaac, FYI, the error/warning still remains. tree: https://android.googlesource.com/kernel/common android-mainline-desktop head: 32fbb9061c7aac9d3b2343d85e199cedf31e1f67 commit: 06f8e52b34f38555bb820ac1cb1d9547a3c9c50a [1/1] ANDROID: GKI: Introduce GKI_HIDDEN_IOMMU_CONFIGS config: arm64-randconfig-r121-20260822 (https://download.01.org/0day-ci/archive/20260822/[email protected]/config) compiler: aarch64-linux-gcc (GCC) 8.5.0 sparse: v0.6.5-rc1 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260822/[email protected]/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): arch/arm64/include/asm/barrier.h:132:2: note: in expansion of macro 'compiletime_assert_atomic_type' compiletime_assert_atomic_type(*p); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:25: error: 'struct mm_struct' has no member named 'iommu_mm'; did you mean 'mm_mt'? smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~ include/linux/compiler_types.h:548:9: note: in definition of macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ include/linux/compiler_types.h:568:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:571:2: note: in expansion of macro 'compiletime_assert' compiletime_assert(__native_word(t), \ ^~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:571:21: note: in expansion of macro '__native_word' compiletime_assert(__native_word(t), \ ^~~~~~~~~~~~~ arch/arm64/include/asm/barrier.h:132:2: note: in expansion of macro 'compiletime_assert_atomic_type' compiletime_assert_atomic_type(*p); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:25: error: 'struct mm_struct' has no member named 'iommu_mm'; did you mean 'mm_mt'? smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~ include/linux/compiler_types.h:548:9: note: in definition of macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ include/linux/compiler_types.h:568:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:571:2: note: in expansion of macro 'compiletime_assert' compiletime_assert(__native_word(t), \ ^~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:571:21: note: in expansion of macro '__native_word' compiletime_assert(__native_word(t), \ ^~~~~~~~~~~~~ arch/arm64/include/asm/barrier.h:132:2: note: in expansion of macro 'compiletime_assert_atomic_type' compiletime_assert_atomic_type(*p); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:25: error: 'struct mm_struct' has no member named 'iommu_mm'; did you mean 'mm_mt'? smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~ include/linux/compiler_types.h:548:9: note: in definition of macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ include/linux/compiler_types.h:568:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:571:2: note: in expansion of macro 'compiletime_assert' compiletime_assert(__native_word(t), \ ^~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:571:21: note: in expansion of macro '__native_word' compiletime_assert(__native_word(t), \ ^~~~~~~~~~~~~ arch/arm64/include/asm/barrier.h:132:2: note: in expansion of macro 'compiletime_assert_atomic_type' compiletime_assert_atomic_type(*p); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ In file included from include/asm-generic/bitops/generic-non-atomic.h:7, from include/linux/bitops.h:28, from arch/arm64/include/asm/cache.h:40, from include/vdso/cache.h:5, from include/linux/cache.h:6, from arch/arm64/include/asm/processor.h:29, from include/linux/sched.h:13, from arch/arm64/include/asm/mmu_context.h:14, from include/linux/mmu_context.h:5, from drivers/iommu/iommu-sva.c:5: drivers/iommu/iommu-sva.c:51:25: error: 'struct mm_struct' has no member named 'iommu_mm'; did you mean 'mm_mt'? smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~ arch/arm64/include/asm/barrier.h:133:33: note: in definition of macro '__smp_store_release' kasan_check_write(__p, sizeof(*p)); \ ^ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ >> arch/arm64/include/asm/barrier.h:133:20: warning: passing argument 1 of '__kasan_check_write' makes pointer from integer without a cast [-Wint-conversion] kasan_check_write(__p, sizeof(*p)); \ ^~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ In file included from include/asm-generic/rwonce.h:26, from arch/arm64/include/asm/rwonce.h:67, from include/linux/compiler.h:390, from arch/arm64/include/asm/mmu_context.h:13, from include/linux/mmu_context.h:5, from drivers/iommu/iommu-sva.c:5: include/linux/kasan-checks.h:20:47: note: expected 'const volatile void *' but argument is of type 'int' bool __kasan_check_write(const volatile void *p, unsigned int size); ~~~~~~~~~~~~~~~~~~~~~^ In file included from include/asm-generic/bitops/generic-non-atomic.h:7, from include/linux/bitops.h:28, from arch/arm64/include/asm/cache.h:40, from include/vdso/cache.h:5, from include/linux/cache.h:6, from arch/arm64/include/asm/processor.h:29, from include/linux/sched.h:13, from arch/arm64/include/asm/mmu_context.h:14, from include/linux/mmu_context.h:5, from drivers/iommu/iommu-sva.c:5: drivers/iommu/iommu-sva.c:51:25: error: 'struct mm_struct' has no member named 'iommu_mm'; did you mean 'mm_mt'? smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~ arch/arm64/include/asm/barrier.h:134:18: note: in definition of macro '__smp_store_release' switch (sizeof(*p)) { \ ^ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ arch/arm64/include/asm/barrier.h:137:13: error: invalid type argument of unary '*' (have 'int') : "=Q" (*__p) \ ^~~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ arch/arm64/include/asm/barrier.h:143:13: error: invalid type argument of unary '*' (have 'int') : "=Q" (*__p) \ ^~~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ arch/arm64/include/asm/barrier.h:149:13: error: invalid type argument of unary '*' (have 'int') : "=Q" (*__p) \ ^~~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ arch/arm64/include/asm/barrier.h:155:13: error: invalid type argument of unary '*' (have 'int') : "=Q" (*__p) \ ^~~~ include/asm-generic/barrier.h:172:55: note: in expansion of macro '__smp_store_release' #define smp_store_release(p, v) do { kcsan_release(); __smp_store_release(p, v); } while (0) ^~~~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c:51:2: note: in expansion of macro 'smp_store_release' smp_store_release(&mm->iommu_mm, iommu_mm); ^~~~~~~~~~~~~~~~~ drivers/iommu/iommu-sva.c: At top level: drivers/iommu/iommu-sva.c:68:19: error: redefinition of 'iommu_sva_bind_device' struct iommu_sva *iommu_sva_bind_device(struct device *dev, struct mm_struct *mm) ^~~~~~~~~~~~~~~~~~~~~ In file included from drivers/iommu/iommu-sva.c:8: include/linux/iommu.h:1576:1: note: previous definition of 'iommu_sva_bind_device' was here iommu_sva_bind_device(struct device *dev, struct mm_struct *mm) ^~~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/include/asm/processor.h:28, from include/linux/sched.h:13, from arch/arm64/include/asm/mmu_context.h:14, from include/linux/mmu_context.h:5, from drivers/iommu/iommu-sva.c:5: drivers/iommu/iommu-sva.c: In function 'iommu_sva_bind_device': include/linux/container_of.h:20:28: error: dereferencing pointer to incomplete type 'struct iommu_attach_handle' static_assert(__same_type(*(ptr), ((type *)0)->member) || \ ^~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) ^~~~ include/linux/container_of.h:20:2: note: in expansion of macro 'static_assert' static_assert(__same_type(*(ptr), ((type *)0)->member) || \ ^~~~~~~~~~~~~ include/linux/container_of.h:20:16: note: in expansion of macro '__same_type' static_assert(__same_type(*(ptr), ((type *)0)->member) || \ ^~~~~~~~~~~ drivers/iommu/iommu-sva.c:92:12: note: in expansion of macro 'container_of' handle = container_of(attach_handle, struct iommu_sva, handle); Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for DRM_MIPI_DSI Depends on [n]: HAS_IOMEM [=y] && DRM [=n] Selected by [y]: - GKI_HIDDEN_DRM_CONFIGS [=y] WARNING: unmet direct dependencies detected for SND_PCM_ELD Depends on [n]: SOUND [=y] && SND [=n] Selected by [y]: - GKI_HIDDEN_SND_CONFIGS [=y] WARNING: unmet direct dependencies detected for HVC_DRIVER Depends on [n]: TTY [=n] Selected by [y]: - GKI_HIDDEN_VIRTUAL_CONFIGS [=y] WARNING: unmet direct dependencies detected for PHYLINK Depends on [n]: NETDEVICES [=n] Selected by [y]: - GKI_HIDDEN_ETHERNET_CONFIGS [=y] WARNING: unmet direct dependencies detected for SND_PCM_IEC958 Depends on [n]: SOUND [=y] && SND [=n] Selected by [y]: - GKI_HIDDEN_SND_SOC_CONFIGS [=y] WARNING: unmet direct dependencies detected for IOMMU_SVA Depends on [n]: IOMMU_SUPPORT [=n] Selected by [y]: - GKI_HIDDEN_IOMMU_CONFIGS [=y] WARNING: unmet direct dependencies detected for SND_COMPRESS_ACCEL Depends on [n]: SOUND [=y] && SND [=n] Selected by [y]: - GKI_HIDDEN_SND_CONFIGS [=y] WARNING: unmet direct dependencies detected for SND_JACK Depends on [n]: SOUND [=y] && SND [=n] Selected by [y]: - GKI_HIDDEN_SND_CONFIGS [=y] WARNING: unmet direct dependencies detected for SND_VMASTER Depends on [n]: SOUND [=y] && SND [=n] Selected by [y]: - GKI_HIDDEN_SND_CONFIGS [=y] WARNING: unmet direct dependencies detected for CAN_RX_OFFLOAD Depends on [n]: NETDEVICES [=n] && CAN_DEV [=n] && CAN_NETLINK [=n] Selected by [y]: - GKI_HIDDEN_MCP251XFD_CONFIGS [=y] WARNING: unmet direct dependencies detected for SND_JACK_INPUT_DEV Depends on [n]: SOUND [=y] && SND [=n] && SND_JACK [=y] Selected by [y]: - GKI_HIDDEN_SND_CONFIGS [=y] vim +/__kasan_check_write +133 arch/arm64/include/asm/barrier.h 47933ad41a86a4 Peter Zijlstra 2013-11-06 126 fd072df850e536 Michael S. Tsirkin 2015-12-27 127 #define __smp_store_release(p, v) \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 128 do { \ 131e135f7fd14b Mark Rutland 2019-04-09 129 typeof(p) __p = (p); \ 10223c5286f738 Will Deacon 2019-12-19 130 union { __unqual_scalar_typeof(*p) __val; char __c[1]; } __u = \ 10223c5286f738 Will Deacon 2019-12-19 131 { .__val = (__force __unqual_scalar_typeof(*p)) (v) }; \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 132 compiletime_assert_atomic_type(*p); \ 131e135f7fd14b Mark Rutland 2019-04-09 @133 kasan_check_write(__p, sizeof(*p)); \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 134 switch (sizeof(*p)) { \ 878a84d5a8a18a Andre Przywara 2015-04-20 135 case 1: \ 878a84d5a8a18a Andre Przywara 2015-04-20 136 asm volatile ("stlrb %w1, %0" \ 131e135f7fd14b Mark Rutland 2019-04-09 137 : "=Q" (*__p) \ 39c8275de81cf7 Mark Rutland 2023-03-14 138 : "rZ" (*(__u8 *)__u.__c) \ 994870bead4ab1 Mark Rutland 2017-05-03 139 : "memory"); \ 878a84d5a8a18a Andre Przywara 2015-04-20 140 break; \ 878a84d5a8a18a Andre Przywara 2015-04-20 141 case 2: \ 878a84d5a8a18a Andre Przywara 2015-04-20 142 asm volatile ("stlrh %w1, %0" \ 131e135f7fd14b Mark Rutland 2019-04-09 143 : "=Q" (*__p) \ 39c8275de81cf7 Mark Rutland 2023-03-14 144 : "rZ" (*(__u16 *)__u.__c) \ 994870bead4ab1 Mark Rutland 2017-05-03 145 : "memory"); \ 878a84d5a8a18a Andre Przywara 2015-04-20 146 break; \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 147 case 4: \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 148 asm volatile ("stlr %w1, %0" \ 131e135f7fd14b Mark Rutland 2019-04-09 149 : "=Q" (*__p) \ 39c8275de81cf7 Mark Rutland 2023-03-14 150 : "rZ" (*(__u32 *)__u.__c) \ 994870bead4ab1 Mark Rutland 2017-05-03 151 : "memory"); \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 152 break; \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 153 case 8: \ 39c8275de81cf7 Mark Rutland 2023-03-14 154 asm volatile ("stlr %x1, %0" \ 131e135f7fd14b Mark Rutland 2019-04-09 155 : "=Q" (*__p) \ 39c8275de81cf7 Mark Rutland 2023-03-14 156 : "rZ" (*(__u64 *)__u.__c) \ 994870bead4ab1 Mark Rutland 2017-05-03 157 : "memory"); \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 158 break; \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 159 } \ 47933ad41a86a4 Peter Zijlstra 2013-11-06 160 } while (0) 47933ad41a86a4 Peter Zijlstra 2013-11-06 161 :::::: The code at line 133 was first introduced by commit :::::: 131e135f7fd14b1de7a5eb26631076705c18073f arm64: instrument smp_{load_acquire,store_release} :::::: TO: Mark Rutland <[email protected]> :::::: CC: Will Deacon <[email protected]> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki