Hi Will,
First bad commit (maybe != root cause):
tree:
https://android.googlesource.com/kernel/common android-5.4
head: adcba6dd6d36e490e4477a9cf4f1c251c16dbbda
commit: 6d83d361e7522c5021961bd8826798a74f943aa0 [15/19] FROMLIST: iommu/arm-smmu-v3:
Allow building as a module
config: arm64-randconfig-s032-20210119 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-208-g46a52ca4-dirty
git remote add android-common
https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android-5.4
git checkout 6d83d361e7522c5021961bd8826798a74f943aa0
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
"sparse warnings: (new ones prefixed by >>)"
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
drivers/iommu/arm-smmu-v3.c:816:26: sparse: sparse: cast to restricted __le64
> drivers/iommu/arm-smmu-v3.c:816:24: sparse: sparse: incorrect
type in assignment (different base types) @@ expected restricted __le64 [usertype] @@
got unsigned long long @@
drivers/iommu/arm-smmu-v3.c:816:24: sparse:
expected restricted __le64 [usertype]
drivers/iommu/arm-smmu-v3.c:816:24: sparse: got unsigned long long
drivers/iommu/arm-smmu-v3.c:824:20: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected restricted __le64 [usertype] *[assigned] dst @@
got unsigned long long [usertype] *ent @@
drivers/iommu/arm-smmu-v3.c:824:20: sparse: expected restricted __le64 [usertype]
*[assigned] dst
drivers/iommu/arm-smmu-v3.c:824:20: sparse: got unsigned long long [usertype] *ent
drivers/iommu/arm-smmu-v3.c:824:25: sparse: sparse: incorrect type in argument 2
(different base types) @@ expected unsigned long long [usertype] *[assigned] src @@
got restricted __le64 [usertype] * @@
drivers/iommu/arm-smmu-v3.c:824:25: sparse: expected unsigned long long [usertype]
*[assigned] src
drivers/iommu/arm-smmu-v3.c:824:25: sparse: got restricted __le64 [usertype] *
drivers/iommu/arm-smmu-v3.c:974:20: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected restricted __le64 [usertype] *[assigned] dst @@
got unsigned long long * @@
drivers/iommu/arm-smmu-v3.c:974:20: sparse: expected restricted __le64 [usertype]
*[assigned] dst
drivers/iommu/arm-smmu-v3.c:974:20: sparse: got unsigned long long *
drivers/iommu/arm-smmu-v3.c:974:25: sparse: sparse: incorrect type in argument 2
(different base types) @@ expected unsigned long long [usertype] *[assigned] src @@
got restricted __le64 [usertype] * @@
drivers/iommu/arm-smmu-v3.c:974:25: sparse: expected unsigned long long [usertype]
*[assigned] src
drivers/iommu/arm-smmu-v3.c:974:25: sparse: got restricted __le64 [usertype] *
drivers/iommu/arm-smmu-v3.c:1653:53: sparse: sparse: incorrect type in argument 3
(different base types) @@ expected restricted __le64 [usertype] *dst @@ got
unsigned long long [usertype] *strtab @@
drivers/iommu/arm-smmu-v3.c:1653:53: sparse: expected restricted __le64 [usertype]
*dst
drivers/iommu/arm-smmu-v3.c:1653:53: sparse: got unsigned long long [usertype]
*strtab
drivers/iommu/arm-smmu-v3.c:1681:39: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned long long [usertype] *[assigned] strtab @@
got restricted __le64 [usertype] *l2ptr @@
drivers/iommu/arm-smmu-v3.c:1681:39: sparse: expected unsigned long long [usertype]
*[assigned] strtab
drivers/iommu/arm-smmu-v3.c:1681:39: sparse: got restricted __le64 [usertype]
*l2ptr
drivers/iommu/arm-smmu-v3.c: note: in included file (through
arch/arm64/include/asm/atomic.h, include/linux/atomic.h,
include/asm-generic/bitops/atomic.h, ...):
arch/arm64/include/asm/cmpxchg.h:172:1: sparse: sparse: cast truncates bits from
constant value (ffffffff80000000 becomes 0)
arch/arm64/include/asm/cmpxchg.h:172:1: sparse: sparse: cast truncates bits from
constant value (ffffffff80000000 becomes 0)
vim +816 drivers/iommu/arm-smmu-v3.c
48ec83bcbcf5090f Will Deacon 2015-05-27 810
48ec83bcbcf5090f Will Deacon 2015-05-27 811 static void queue_read(__le64 *dst, u64
*src, size_t n_dwords)
48ec83bcbcf5090f Will Deacon 2015-05-27 812 {
48ec83bcbcf5090f Will Deacon 2015-05-27 813 int i;
48ec83bcbcf5090f Will Deacon 2015-05-27 814
48ec83bcbcf5090f Will Deacon 2015-05-27 815 for (i = 0; i < n_dwords; ++i)
48ec83bcbcf5090f Will Deacon 2015-05-27 @816 *dst++ = le64_to_cpu(*src++);
48ec83bcbcf5090f Will Deacon 2015-05-27 817 }
48ec83bcbcf5090f Will Deacon 2015-05-27 818
:::::: The code at line 816 was first introduced by commit
:::::: 48ec83bcbcf5090fcdf74a6168f161d247492979 iommu/arm-smmu: Add initial driver support
for ARM SMMUv3 devices
:::::: TO: Will Deacon <will.deacon(a)arm.com>
:::::: CC: Joerg Roedel <jroedel(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org