Hi Baolin,
I love your patch! Yet something to improve:
[auto build test ERROR on iommu/next]
[also build test ERROR on soc/for-next linus/master v5.7 next-20200605]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see
https://stackoverflow.com/a/37406982]
url:
https://github.com/0day-ci/linux/commits/Baolin-Wang/Some-improvements-fo...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
drivers/iommu/io-pgtable-arm.c: In function 'arm_lpae_run_tests':
> drivers/iommu/io-pgtable-arm.c:1178:8: error: too few arguments
to function 'ops->map'
1178 | if (ops->map(ops, iova, iova, size,
IOMMU_READ |
| ^~~
drivers/iommu/io-pgtable-arm.c:1185:9: error: too few arguments to function
'ops->map'
1185 | if (!ops->map(ops, iova, iova + size, size,
| ^~~
drivers/iommu/io-pgtable-arm.c:1201:7: error: too few arguments to function
'ops->map'
1201 | if (ops->map(ops, SZ_1G + size, size, size, IOMMU_READ))
| ^~~
drivers/iommu/io-pgtable-arm.c:1219:8: error: too few arguments to function
'ops->map'
1219 | if (ops->map(ops, iova, iova, size, IOMMU_WRITE))
| ^~~
vim +1178 drivers/iommu/io-pgtable-arm.c
fe4b991dcd84e01 Will Deacon 2014-11-17 1135
fe4b991dcd84e01 Will Deacon 2014-11-17 1136 static int __init
arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
fe4b991dcd84e01 Will Deacon 2014-11-17 1137 {
9062c1d0bedacf6 Christophe JAILLET 2019-09-09 1138 static const enum io_pgtable_fmt
fmts[] __initconst = {
fe4b991dcd84e01 Will Deacon 2014-11-17 1139 ARM_64_LPAE_S1,
fe4b991dcd84e01 Will Deacon 2014-11-17 1140 ARM_64_LPAE_S2,
fe4b991dcd84e01 Will Deacon 2014-11-17 1141 };
fe4b991dcd84e01 Will Deacon 2014-11-17 1142
fe4b991dcd84e01 Will Deacon 2014-11-17 1143 int i, j;
fe4b991dcd84e01 Will Deacon 2014-11-17 1144 unsigned long iova;
fe4b991dcd84e01 Will Deacon 2014-11-17 1145 size_t size;
fe4b991dcd84e01 Will Deacon 2014-11-17 1146 struct io_pgtable_ops *ops;
fe4b991dcd84e01 Will Deacon 2014-11-17 1147
fe4b991dcd84e01 Will Deacon 2014-11-17 1148 selftest_running = true;
fe4b991dcd84e01 Will Deacon 2014-11-17 1149
fe4b991dcd84e01 Will Deacon 2014-11-17 1150 for (i = 0; i < ARRAY_SIZE(fmts);
++i) {
fe4b991dcd84e01 Will Deacon 2014-11-17 1151 cfg_cookie = cfg;
fe4b991dcd84e01 Will Deacon 2014-11-17 1152 ops = alloc_io_pgtable_ops(fmts[i],
cfg, cfg);
fe4b991dcd84e01 Will Deacon 2014-11-17 1153 if (!ops) {
fe4b991dcd84e01 Will Deacon 2014-11-17 1154 pr_err("selftest: failed to
allocate io pgtable ops\n");
fe4b991dcd84e01 Will Deacon 2014-11-17 1155 return -ENOMEM;
fe4b991dcd84e01 Will Deacon 2014-11-17 1156 }
fe4b991dcd84e01 Will Deacon 2014-11-17 1157
fe4b991dcd84e01 Will Deacon 2014-11-17 1158 /*
fe4b991dcd84e01 Will Deacon 2014-11-17 1159 * Initial sanity checks.
fe4b991dcd84e01 Will Deacon 2014-11-17 1160 * Empty page tables shouldn't
provide any translations.
fe4b991dcd84e01 Will Deacon 2014-11-17 1161 */
fe4b991dcd84e01 Will Deacon 2014-11-17 1162 if (ops->iova_to_phys(ops, 42))
fe4b991dcd84e01 Will Deacon 2014-11-17 1163 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1164
fe4b991dcd84e01 Will Deacon 2014-11-17 1165 if (ops->iova_to_phys(ops, SZ_1G
+ 42))
fe4b991dcd84e01 Will Deacon 2014-11-17 1166 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1167
fe4b991dcd84e01 Will Deacon 2014-11-17 1168 if (ops->iova_to_phys(ops, SZ_2G
+ 42))
fe4b991dcd84e01 Will Deacon 2014-11-17 1169 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1170
fe4b991dcd84e01 Will Deacon 2014-11-17 1171 /*
fe4b991dcd84e01 Will Deacon 2014-11-17 1172 * Distinct mappings of different
granule sizes.
fe4b991dcd84e01 Will Deacon 2014-11-17 1173 */
fe4b991dcd84e01 Will Deacon 2014-11-17 1174 iova = 0;
4ae8a5c528c0b1e Kefeng Wang 2016-09-21 1175 for_each_set_bit(j,
&cfg->pgsize_bitmap, BITS_PER_LONG) {
fe4b991dcd84e01 Will Deacon 2014-11-17 1176 size = 1UL << j;
fe4b991dcd84e01 Will Deacon 2014-11-17 1177
fe4b991dcd84e01 Will Deacon 2014-11-17 @1178 if (ops->map(ops, iova, iova,
size, IOMMU_READ |
fe4b991dcd84e01 Will Deacon 2014-11-17 1179 IOMMU_WRITE |
fe4b991dcd84e01 Will Deacon 2014-11-17 1180 IOMMU_NOEXEC |
fe4b991dcd84e01 Will Deacon 2014-11-17 1181 IOMMU_CACHE))
fe4b991dcd84e01 Will Deacon 2014-11-17 1182 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1183
fe4b991dcd84e01 Will Deacon 2014-11-17 1184 /* Overlapping mappings */
fe4b991dcd84e01 Will Deacon 2014-11-17 1185 if (!ops->map(ops, iova, iova +
size, size,
fe4b991dcd84e01 Will Deacon 2014-11-17 1186 IOMMU_READ |
IOMMU_NOEXEC))
fe4b991dcd84e01 Will Deacon 2014-11-17 1187 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1188
fe4b991dcd84e01 Will Deacon 2014-11-17 1189 if (ops->iova_to_phys(ops, iova
+ 42) != (iova + 42))
fe4b991dcd84e01 Will Deacon 2014-11-17 1190 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1191
fe4b991dcd84e01 Will Deacon 2014-11-17 1192 iova += SZ_1G;
fe4b991dcd84e01 Will Deacon 2014-11-17 1193 }
fe4b991dcd84e01 Will Deacon 2014-11-17 1194
fe4b991dcd84e01 Will Deacon 2014-11-17 1195 /* Partial unmap */
fe4b991dcd84e01 Will Deacon 2014-11-17 1196 size = 1UL <<
__ffs(cfg->pgsize_bitmap);
a2d3a382d6c682e Will Deacon 2019-07-02 1197 if (ops->unmap(ops, SZ_1G +
size, size, NULL) != size)
fe4b991dcd84e01 Will Deacon 2014-11-17 1198 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1199
fe4b991dcd84e01 Will Deacon 2014-11-17 1200 /* Remap of partial unmap */
fe4b991dcd84e01 Will Deacon 2014-11-17 1201 if (ops->map(ops, SZ_1G + size,
size, size, IOMMU_READ))
fe4b991dcd84e01 Will Deacon 2014-11-17 1202 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1203
fe4b991dcd84e01 Will Deacon 2014-11-17 1204 if (ops->iova_to_phys(ops, SZ_1G
+ size + 42) != (size + 42))
fe4b991dcd84e01 Will Deacon 2014-11-17 1205 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1206
fe4b991dcd84e01 Will Deacon 2014-11-17 1207 /* Full unmap */
fe4b991dcd84e01 Will Deacon 2014-11-17 1208 iova = 0;
f793b13ef0c9c11 YueHaibing 2018-04-26 1209 for_each_set_bit(j,
&cfg->pgsize_bitmap, BITS_PER_LONG) {
fe4b991dcd84e01 Will Deacon 2014-11-17 1210 size = 1UL << j;
fe4b991dcd84e01 Will Deacon 2014-11-17 1211
a2d3a382d6c682e Will Deacon 2019-07-02 1212 if (ops->unmap(ops, iova, size,
NULL) != size)
fe4b991dcd84e01 Will Deacon 2014-11-17 1213 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1214
fe4b991dcd84e01 Will Deacon 2014-11-17 1215 if (ops->iova_to_phys(ops, iova
+ 42))
fe4b991dcd84e01 Will Deacon 2014-11-17 1216 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1217
fe4b991dcd84e01 Will Deacon 2014-11-17 1218 /* Remap full block */
fe4b991dcd84e01 Will Deacon 2014-11-17 1219 if (ops->map(ops, iova, iova,
size, IOMMU_WRITE))
fe4b991dcd84e01 Will Deacon 2014-11-17 1220 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1221
fe4b991dcd84e01 Will Deacon 2014-11-17 1222 if (ops->iova_to_phys(ops, iova
+ 42) != (iova + 42))
fe4b991dcd84e01 Will Deacon 2014-11-17 1223 return __FAIL(ops, i);
fe4b991dcd84e01 Will Deacon 2014-11-17 1224
fe4b991dcd84e01 Will Deacon 2014-11-17 1225 iova += SZ_1G;
fe4b991dcd84e01 Will Deacon 2014-11-17 1226 }
fe4b991dcd84e01 Will Deacon 2014-11-17 1227
fe4b991dcd84e01 Will Deacon 2014-11-17 1228 free_io_pgtable_ops(ops);
fe4b991dcd84e01 Will Deacon 2014-11-17 1229 }
fe4b991dcd84e01 Will Deacon 2014-11-17 1230
fe4b991dcd84e01 Will Deacon 2014-11-17 1231 selftest_running = false;
fe4b991dcd84e01 Will Deacon 2014-11-17 1232 return 0;
fe4b991dcd84e01 Will Deacon 2014-11-17 1233 }
fe4b991dcd84e01 Will Deacon 2014-11-17 1234
:::::: The code at line 1178 was first introduced by commit
:::::: fe4b991dcd84e0104cf2e29223a819335ed048a7 iommu: add self-consistency tests to ARM
LPAE IO page table allocator
:::::: TO: Will Deacon <will.deacon(a)arm.com>
:::::: CC: Will Deacon <will.deacon(a)arm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org