Hi Zack,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-exynos/exynos-drm-next]
[also build test ERROR on linus/master v6.14-rc5 next-20250305]
[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/Zack-Rusin/drm-vmwgfx-Make-sure-the-dirty-tracker-is-released-on-surfaces/20250305-025105
base:   https://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git 
exynos-drm-next
patch link:    
https://lore.kernel.org/r/20250304184942.2127704-1-zack.rusin%40broadcom.com
patch subject: [PATCH] drm/vmwgfx: Make sure the dirty tracker is released on 
surfaces
config: arm64-randconfig-002-20250305 
(https://download.01.org/0day-ci/archive/20250306/[email protected]/config)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250306/[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/vmwgfx/vmwgfx_kms.c: In function 
'vmw_framebuffer_surface_destroy':
>> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c:1236:39: error: invalid use of undefined 
>> type 'const struct vmw_res_func'
    1236 |                         surf->res.func->dirty_free(&surf->res);
         |                                       ^~


vim +1236 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c

  1196  
  1197  
  1198  /**
  1199   * vmw_du_connector_destroy_state - destroy connector state
  1200   * @connector: DRM connector
  1201   * @state: state object to destroy
  1202   *
  1203   * Destroys the connector state (both common and vmw-specific) for the
  1204   * specified plane.
  1205   */
  1206  void
  1207  vmw_du_connector_destroy_state(struct drm_connector *connector,
  1208                            struct drm_connector_state *state)
  1209  {
  1210          drm_atomic_helper_connector_destroy_state(connector, state);
  1211  }
  1212  /*
  1213   * Generic framebuffer code
  1214   */
  1215  
  1216  /*
  1217   * Surface framebuffer code
  1218   */
  1219  
  1220  static void vmw_framebuffer_surface_destroy(struct drm_framebuffer 
*framebuffer)
  1221  {
  1222          struct vmw_framebuffer_surface *vfbs =
  1223                  vmw_framebuffer_to_vfbs(framebuffer);
  1224          struct vmw_bo *bo = vmw_user_object_buffer(&vfbs->uo);
  1225          struct vmw_surface *surf = vmw_user_object_surface(&vfbs->uo);
  1226  
  1227          if (bo) {
  1228                  vmw_bo_dirty_release(bo);
  1229                  /*
  1230                   * bo->dirty is reference counted so it being NULL
  1231                   * means that the surface wasn't coherent to begin
  1232                   * with and so we have to free the dirty tracker
  1233                   * in the vmw_resource
  1234                   */
  1235                  if (!bo->dirty && surf && surf->res.dirty)
> 1236                          surf->res.func->dirty_free(&surf->res);
  1237          }
  1238          drm_framebuffer_cleanup(framebuffer);
  1239          vmw_user_object_unref(&vfbs->uo);
  1240  
  1241          kfree(vfbs);
  1242  }
  1243  

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

Reply via email to