Hi Thomas,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v7.1-rc3 next-20260508]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Thomas-Hellstr-m/drm-ttm-Fix-ttm_bo_shrink-infinite-LRU-walk-on-backup-failure/20260513-095356
base:   https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next
patch link:    
https://lore.kernel.org/r/20260511162443.24352-1-thomas.hellstrom%40linux.intel.com
patch subject: [PATCH] drm/ttm: Fix ttm_bo_shrink() infinite LRU walk on backup 
failure
config: powerpc-allmodconfig 
(https://download.01.org/0day-ci/archive/20260513/[email protected]/config)
compiler: powerpc64-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20260513/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   drivers/gpu/drm/ttm/ttm_bo_util.c: In function 'ttm_bo_shrink':
>> drivers/gpu/drm/ttm/ttm_bo_util.c:1121:17: error: implicit declaration of 
>> function 'ttm_resource_del_bulk_move_unevictable'; did you mean 
>> 'ttm_resource_del_bulk_move'? [-Wimplicit-function-declaration]
    1121 |                 ttm_resource_del_bulk_move_unevictable(bo->resource, 
bo);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                 ttm_resource_del_bulk_move


vim +1121 drivers/gpu/drm/ttm/ttm_bo_util.c

  1067  
  1068  /**
  1069   * ttm_bo_shrink() - Helper to shrink a ttm buffer object.
  1070   * @ctx: The struct ttm_operation_ctx used for the shrinking operation.
  1071   * @bo: The buffer object.
  1072   * @flags: Flags governing the shrinking behaviour.
  1073   *
  1074   * The function uses the ttm_tt_back_up functionality to back up or
  1075   * purge a struct ttm_tt. If the bo is not in system, it's first
  1076   * moved there.
  1077   *
  1078   * Return: The number of pages shrunken or purged, or
  1079   * negative error code on failure.
  1080   */
  1081  long ttm_bo_shrink(struct ttm_operation_ctx *ctx, struct 
ttm_buffer_object *bo,
  1082                     const struct ttm_bo_shrink_flags flags)
  1083  {
  1084          static const struct ttm_place sys_placement_flags = {
  1085                  .fpfn = 0,
  1086                  .lpfn = 0,
  1087                  .mem_type = TTM_PL_SYSTEM,
  1088                  .flags = 0,
  1089          };
  1090          static struct ttm_placement sys_placement = {
  1091                  .num_placement = 1,
  1092                  .placement = &sys_placement_flags,
  1093          };
  1094          struct ttm_device *bdev = bo->bdev;
  1095          long lret;
  1096  
  1097          dma_resv_assert_held(bo->base.resv);
  1098  
  1099          if (flags.allow_move && bo->resource->mem_type != 
TTM_PL_SYSTEM) {
  1100                  int ret = ttm_bo_validate(bo, &sys_placement, ctx);
  1101  
  1102                  /* Consider -ENOMEM and -ENOSPC non-fatal. */
  1103                  if (ret) {
  1104                          if (ret == -ENOMEM || ret == -ENOSPC)
  1105                                  ret = -EBUSY;
  1106                          return ret;
  1107                  }
  1108          }
  1109  
  1110          ttm_bo_unmap_virtual(bo);
  1111          lret = ttm_bo_wait_ctx(bo, ctx);
  1112          if (lret < 0)
  1113                  return lret;
  1114  
  1115          lret = ttm_tt_backup(bdev, bo->ttm, (struct ttm_backup_flags)
  1116                               {.purge = flags.purge,
  1117                                .writeback = flags.writeback});
  1118  
  1119          if (lret > 0) {
  1120                  spin_lock(&bdev->lru_lock);
> 1121                  ttm_resource_del_bulk_move_unevictable(bo->resource, 
> bo);
  1122                  ttm_resource_move_to_lru_tail(bo->resource);
  1123                  spin_unlock(&bdev->lru_lock);
  1124          }
  1125  
  1126          if (lret < 0 && lret != -EINTR)
  1127                  return -EBUSY;
  1128  
  1129          return lret;
  1130  }
  1131  EXPORT_SYMBOL(ttm_bo_shrink);
  1132  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to