Hi Zhi, [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on next-20170908] [cannot apply to v4.13] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Zhi-Wang/drm-i915-Factor-out-setup_private_pat/20170908-154240 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: i386-allmodconfig (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): In file included from include/linux/kernel.h:13:0, from include/asm-generic/bug.h:15, from arch/x86/include/asm/bug.h:81, from include/linux/bug.h:4, from include/linux/mmdebug.h:4, from include/linux/gfp.h:4, from include/linux/slab.h:14, from drivers/gpu/drm/i915/i915_gem_gtt.c:26: drivers/gpu/drm/i915/selftests/i915_gem_gtt.c: In function 'igt_ppat_get': >> drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:1293:12: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'int' [-Wformat=] pr_debug("ppat: alloc new entry value 0x%x index %lu\n", ^ include/linux/printk.h:285:21: note: in definition of macro 'pr_fmt' #define pr_fmt(fmt) fmt ^~~ include/linux/printk.h:333:2: note: in expansion of macro 'dynamic_pr_debug' dynamic_pr_debug(fmt, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:1293:3: note: in expansion of macro 'pr_debug' pr_debug("ppat: alloc new entry value 0x%x index %lu\n", ^~~~~~~~ drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:1330:11: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'int' [-Wformat=] pr_debug("ppat: partial match entry value 0x%x index %lu\n", ^ include/linux/printk.h:285:21: note: in definition of macro 'pr_fmt' #define pr_fmt(fmt) fmt ^~~ include/linux/printk.h:333:2: note: in expansion of macro 'dynamic_pr_debug' dynamic_pr_debug(fmt, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:1330:2: note: in expansion of macro 'pr_debug' pr_debug("ppat: partial match entry value 0x%x index %lu\n", ^~~~~~~~ drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:1343:13: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'int' [-Wformat=] pr_debug("ppat: put entry value 0x%x index %lu\n", ^ include/linux/printk.h:285:21: note: in definition of macro 'pr_fmt' #define pr_fmt(fmt) fmt ^~~ include/linux/printk.h:333:2: note: in expansion of macro 'dynamic_pr_debug' dynamic_pr_debug(fmt, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:1343:4: note: in expansion of macro 'pr_debug' pr_debug("ppat: put entry value 0x%x index %lu\n", ^~~~~~~~ vim +1293 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c 1205 1206 static int igt_ppat_get(void *arg) 1207 { 1208 struct drm_i915_private *i915 = arg; 1209 struct intel_ppat *ppat = &i915->ppat; 1210 const struct intel_ppat_entry **entries; 1211 const struct intel_ppat_entry *entry; 1212 unsigned int size = 0; 1213 u8 value; 1214 int i, ret; 1215 1216 if (!ppat->max_entries) 1217 return 0; 1218 1219 pr_debug("ppat: ppat table before the test\n"); 1220 1221 for_each_set_bit(i, ppat->used, ppat->max_entries) 1222 pr_debug("ppat %d: 0x%x\n", i, ppat->entries[i].value); 1223 1224 pr_debug("ppat: make sure it's same with HW ppat table\n"); 1225 1226 ret = igt_ppat_init(i915); 1227 if (ret) 1228 return ret; 1229 1230 pr_debug("ppat: case 1: perfect match\n"); 1231 1232 entry = intel_ppat_get(i915, ppat->entries[0].value); 1233 if (IS_ERR(entry)) 1234 return PTR_ERR(entry); 1235 1236 if (entry != &ppat->entries[0]) { 1237 pr_err("not expected entry\n"); 1238 intel_ppat_put(entry); 1239 return -EINVAL; 1240 } 1241 1242 intel_ppat_put(entry); 1243 1244 pr_debug("ppat: OK\n"); 1245 pr_debug("ppat: case 2: alloc new entries\n"); 1246 1247 entries = NULL; 1248 ret = 0; 1249 1250 while (!ppat_table_is_full(ppat)) { 1251 const struct intel_ppat_entry **p_entry; 1252 DECLARE_BITMAP(used, INTEL_MAX_PPAT_ENTRIES); 1253 1254 bitmap_copy(used, ppat->used, ppat->max_entries); 1255 1256 entries = krealloc(entries, (size + 1) * 1257 sizeof(struct intel_ppat_entry *), 1258 GFP_KERNEL); 1259 if (!entries) { 1260 ret = -ENOSPC; 1261 break; 1262 } 1263 1264 p_entry = &entries[size++]; 1265 *p_entry = NULL; 1266 1267 value = generate_new_value(ppat, false); 1268 if (!value) { 1269 pr_err("cannot fill the unused PPAT entries?\n"); 1270 ret = -EINVAL; 1271 break; 1272 } 1273 1274 *p_entry = entry = intel_ppat_get(i915, value); 1275 if (IS_ERR(entry)) { 1276 pr_err("fail to get new entry\n"); 1277 ret = PTR_ERR(entry); 1278 break; 1279 } 1280 1281 if (entry->value != value) { 1282 pr_err("fail to get expected new value\n"); 1283 ret = -EINVAL; 1284 break; 1285 } 1286 1287 if (bitmap_equal(used, ppat->used, ppat->max_entries)) { 1288 pr_err("fail to alloc a new entry\n"); 1289 ret = -EINVAL; 1290 break; 1291 } 1292 > 1293 pr_debug("ppat: alloc new entry value 0x%x index %lu\n", 1294 entry->value, entry - ppat->entries); 1295 } 1296 1297 if (!ret) 1298 pr_debug("ppat: OK\n"); 1299 1300 if (!entries) 1301 pr_debug("ppat: ppat table is full, skip\n"); 1302 1303 if (ret) 1304 goto ppat_put; 1305 1306 pr_debug("ppat: case 3: partial match\n"); 1307 1308 value = generate_new_value(ppat, true); 1309 if (!value) { 1310 pr_err("fail to get new value\n"); 1311 ret = -EINVAL; 1312 goto ppat_put; 1313 } 1314 1315 pr_debug("ppat: generate value 0x%x\n", value); 1316 1317 entry = intel_ppat_get(i915, value); 1318 if (IS_ERR(entry)) { 1319 pr_err("fail to get new entry\n"); 1320 ret = PTR_ERR(entry); 1321 goto ppat_put; 1322 } 1323 1324 if (!(entry->value != value && 1325 GEN8_PPAT_GET_CA(entry->value) == GEN8_PPAT_GET_CA(value))) { 1326 pr_err("fail to get expected value\n"); 1327 ret = -EINVAL; 1328 } 1329 1330 pr_debug("ppat: partial match entry value 0x%x index %lu\n", 1331 entry->value, entry - ppat->entries); 1332 1333 intel_ppat_put(entry); 1334 1335 ppat_put: 1336 if (entries) { 1337 pr_debug("ppat: put entries\n"); 1338 1339 for (i = 0; i < size; i++) { 1340 if (IS_ERR(entries[i]) || !entries[i]) 1341 continue; 1342 1343 pr_debug("ppat: put entry value 0x%x index %lu\n", 1344 entries[i]->value, entries[i] - ppat->entries); 1345 1346 intel_ppat_put(entries[i]); 1347 1348 if (entries[i]->value != ppat->clear_value) { 1349 pr_err("fail to put ppat value\n"); 1350 ret = -EINVAL; 1351 break; 1352 } 1353 } 1354 pr_debug("ppat: OK\n"); 1355 kfree(entries); 1356 entries = NULL; 1357 } 1358 1359 pr_debug("ppat: ppat table after the test\n"); 1360 1361 for_each_set_bit(i, ppat->used, ppat->max_entries) 1362 pr_debug("ppat %d: 0x%x\n", i, ppat->entries[i].value); 1363 1364 pr_debug("ppat: make sure it's same with HW ppat table\n"); 1365 1366 ret = igt_ppat_init(i915); 1367 if (ret) 1368 return ret; 1369 1370 pr_debug("ppat: OK\n"); 1371 1372 return ret; 1373 } 1374 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx