[PATCH] drm/vmwgfx: Make sure the dirty tracker is released on surfaces
kernel test robot
lkp at intel.com
Wed Mar 5 19:09:23 UTC 2025
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-allmodconfig (https://download.01.org/0day-ci/archive/20250306/202503060223.BrfYSoFw-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250306/202503060223.BrfYSoFw-lkp@intel.com/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 <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503060223.BrfYSoFw-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c:1236:18: error: incomplete definition of type 'struct vmw_res_func'
1236 | surf->res.func->dirty_free(&surf->res);
| ~~~~~~~~~~~~~~^
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h:120:8: note: forward declaration of 'struct vmw_res_func'
120 | struct vmw_res_func;
| ^
1 error generated.
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
More information about the dri-devel
mailing list