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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to