On 3/26/25 08:14, Kasireddy, Vivek wrote: ... >> static int virtio_gpu_plane_prepare_fb(struct drm_plane *plane, >> struct drm_plane_state *new_state) >> { >> @@ -376,23 +386,16 @@ static int virtio_gpu_plane_prepare_fb(struct >> drm_plane *plane, >> vgplane_st->fence = virtio_gpu_fence_alloc(vgdev, >> vgdev->fence_drv.context, >> 0); >> - if (!vgplane_st->fence) >> + if (!vgplane_st->fence) { >> + if (obj->import_attach) >> + virtio_gpu_cleanup_imported_obj(obj); > I think checking for fence allocation failure before import would be much > better. > In other words, cleaning up the fence in case of any import errors would be > much simpler IMO. > > Regardless, > Acked-by: Vivek Kasireddy <vivek.kasire...@intel.com>
Another question, why do we need this fencing for imported dmabuf? Fencing isn't done host/guest blobs in this code, while dmabuf is essentially a guest blob. Could you please clarify why this fence is needed? Maybe we shouldn't allocate fence in the first place for the dmabuf. -- Best regards, Dmitry