diff options
| author | Dave Airlie <airlied@redhat.com> | 2025-06-20 11:33:41 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2025-06-20 11:34:09 +1000 |
| commit | 9356b50af547e872d9191754c72c83ff6be3b97c (patch) | |
| tree | ae829de25d93912d6a7b9f5798afc65db2500df2 /drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | |
| parent | 377b2f15c032e1a015d664955cb05d46f3b3a9b0 (diff) | |
| parent | 1a45ef022f0364186d4fb2f4e5255dcae1ff638a (diff) | |
Merge tag 'drm-misc-next-2025-06-19' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
drm-misc-next for 6.17:
UAPI Changes:
- Add Task Information for the wedge API
Cross-subsystem Changes:
Core Changes:
- Fix warnings related to export.h
- fbdev: Make CONFIG_FIRMWARE_EDID available on all architectures
- fence: Fix UAF issues
- format-helper: Improve tests
Driver Changes:
- ivpu: Add turbo flag, Add Wildcat Lake Support
- rz-du: Improve MIPI-DSI Support
- vmwgfx: fence improvement
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Maxime Ripard <mripard@redhat.com>
Link: https://lore.kernel.org/r/20250619-perfect-industrious-whippet-8ed3db@houat
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c')
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c index e831e324e737..819704ac675d 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c @@ -3878,8 +3878,7 @@ vmw_execbuf_copy_fence_user(struct vmw_private *dev_priv, fence_rep.handle = fence_handle; fence_rep.seqno = fence->base.seqno; - vmw_update_seqno(dev_priv); - fence_rep.passed_seqno = dev_priv->last_read_seqno; + fence_rep.passed_seqno = vmw_fences_update(dev_priv->fman); } /* @@ -4068,23 +4067,6 @@ static int vmw_execbuf_tie_context(struct vmw_private *dev_priv, return 0; } -/* - * DMA fence callback to remove a seqno_waiter - */ -struct seqno_waiter_rm_context { - struct dma_fence_cb base; - struct vmw_private *dev_priv; -}; - -static void seqno_waiter_rm_cb(struct dma_fence *f, struct dma_fence_cb *cb) -{ - struct seqno_waiter_rm_context *ctx = - container_of(cb, struct seqno_waiter_rm_context, base); - - vmw_seqno_waiter_remove(ctx->dev_priv); - kfree(ctx); -} - int vmw_execbuf_process(struct drm_file *file_priv, struct vmw_private *dev_priv, void __user *user_commands, void *kernel_commands, @@ -4265,15 +4247,6 @@ int vmw_execbuf_process(struct drm_file *file_priv, } else { /* Link the fence with the FD created earlier */ fd_install(out_fence_fd, sync_file->file); - struct seqno_waiter_rm_context *ctx = - kmalloc(sizeof(*ctx), GFP_KERNEL); - ctx->dev_priv = dev_priv; - vmw_seqno_waiter_add(dev_priv); - if (dma_fence_add_callback(&fence->base, &ctx->base, - seqno_waiter_rm_cb) < 0) { - vmw_seqno_waiter_remove(dev_priv); - kfree(ctx); - } } } |