[Intel-gfx] [PATCH v10 5/5] drm/i915/selftests: Introduce live tests of private PAT management
kbuild test robot
lkp at intel.com
Wed Sep 13 17:37:42 UTC 2017
Hi Zhi,
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on next-20170913]
[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/20170912-152713
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-a0-09140023 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All errors (new ones prefixed by >>):
cc1: warnings being treated as errors
drivers/gpu/drm/i915/i915_gem_gtt.c: In function 'intel_ppat_get':
drivers/gpu/drm/i915/i915_gem_gtt.c:2791: error: 'entry' may be used uninitialized in this function
In file included from drivers/gpu/drm/i915/i915_gem_gtt.c:3767:
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c: In function 'igt_ppat_get':
>> drivers/gpu/drm/i915/selftests/i915_gem_gtt.c:1365: error: 'entry' may be used uninitialized in this function
drivers/gpu/drm/i915/i915_gem_gtt.c: In function 'gen8_ppgtt_insert_4lvl':
drivers/gpu/drm/i915/i915_gem_gtt.c:938: error: 'iter.sg' is used uninitialized in this function
drivers/gpu/drm/i915/i915_gem_gtt.c:939: error: 'iter.dma' is used uninitialized in this function
drivers/gpu/drm/i915/i915_gem_gtt.c: In function 'gen8_ppgtt_insert_3lvl':
drivers/gpu/drm/i915/i915_gem_gtt.c:921: error: 'iter.sg' is used uninitialized in this function
drivers/gpu/drm/i915/i915_gem_gtt.c:922: error: 'iter.dma' is used uninitialized in this function
vim +/entry +1365 drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
1359
1360 static int igt_ppat_get(void *arg)
1361 {
1362 struct drm_i915_private *i915 = arg;
1363 struct intel_ppat *ppat = &i915->ppat;
1364 const struct intel_ppat_entry **entries, **p;
> 1365 const struct intel_ppat_entry *entry;
1366 unsigned int size = 0;
1367 int i, ret;
1368
1369 if (!ppat->max_entries)
1370 return 0;
1371
1372 ret = igt_ppat_check(i915);
1373 if (ret)
1374 return ret;
1375
1376 /* case 1: perfect match */
1377 ret = perform_perfect_match_test(ppat);
1378 if (ret) {
1379 pr_err("fail on perfect match test\n");
1380 return ret;
1381 }
1382
1383 /* case 2: alloc new entries */
1384 entries = NULL;
1385 ret = 0;
1386
1387 while (!bitmap_full(ppat->used, ppat->max_entries)) {
1388 p = krealloc(entries, (size + 1) *
1389 sizeof(struct intel_ppat_entry *),
1390 GFP_KERNEL);
1391 if (!p) {
1392 ret = -ENOMEM;
1393 goto ppat_put;
1394 }
1395
1396 entries = p;
1397
1398 p = &entries[size++];
1399 *p = NULL;
1400
1401 entry = generate_and_check_new_value(ppat);
1402 if (IS_ERR(entry)) {
1403 ret = PTR_ERR(entry);
1404 pr_err("fail on alloc new entries test\n");
1405 goto ppat_put;
1406 }
1407 *p = entry;
1408 }
1409
1410 /* case 3: negative test 1, suppose PPAT table is full now */
1411 ret = perform_negative_test(ppat);
1412 if (ret) {
1413 pr_err("fail on negative test 1\n");
1414 goto ppat_put;
1415 }
1416
1417 /* case 4: partial match */
1418 ret = perform_partial_match_test(ppat);
1419 if (ret) {
1420 pr_err("fail on partial match test\n");
1421 goto ppat_put;
1422 }
1423
1424 /* case 3: negative test 2, suppose PPAT table is still full now */
1425 ret = perform_negative_test(ppat);
1426 if (ret) {
1427 pr_err("fail on negative test 2\n");
1428 goto ppat_put;
1429 }
1430
1431 /* case 5: re-alloc test, make a hole and it should work again */
1432 if (entries) {
1433 for(i = 0; i < size; i++) {
1434 entry = entries[i];
1435
1436 ret = put_and_check_entry(entry);
1437 entries[i] = NULL;
1438 if (ret) {
1439 pr_err("fail on re-alloc test\n");
1440 goto ppat_put;
1441 }
1442
1443 entry = generate_and_check_new_value(ppat);
1444 if (IS_ERR(entry)) {
1445 ret = PTR_ERR(entry);
1446 pr_err("fail on re-alloc test\n");
1447 goto ppat_put;
1448 }
1449 entries[i] = entry;
1450 }
1451 }
1452
1453 ppat_put:
1454 if (entries) {
1455 for (i = 0; i < size; i++) {
1456 if (IS_ERR(entries[i]) || !entries[i])
1457 continue;
1458
1459 if (ret)
1460 intel_ppat_put(entry);
1461 else
1462 ret = put_and_check_entry(entries[i]);
1463 }
1464 kfree(entries);
1465 entries = NULL;
1466 }
1467 if (ret)
1468 return ret;
1469
1470 return igt_ppat_check(i915);
1471 }
1472
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 28375 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20170914/1f5d633b/attachment-0001.gz>
More information about the Intel-gfx
mailing list