summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
diff options
context:
space:
mode:
authorIan Forbes <ian.forbes@broadcom.com>2025-05-30 13:35:08 -0500
committerZack Rusin <zack.rusin@broadcom.com>2025-06-17 22:49:31 -0400
commitc82f55f4aa57bf5ba412d55856fe50514b47b971 (patch)
treed3ed4789760119f211eaf2a9f096f59f0efee154 /drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
parenta72002cb181f350734108228b24c5d10d358f95a (diff)
drm/vmwgfx: Update last_read_seqno under the fence lock
There was a possible race in vmw_update_seqno. Because of this race it was possible for last_read_seqno to go backwards. Remove this function and replace it with vmw_update_fences which now sets and returns the last_read_seqno while holding the fence lock. This serialization via the fence lock ensures that last_read_seqno is monotonic again. Signed-off-by: Ian Forbes <ian.forbes@broadcom.com> Signed-off-by: Zack Rusin <zack.rusin@broadcom.com> Link: https://lore.kernel.org/r/20250530183510.733175-1-ian.forbes@broadcom.com
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c')
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
index dd4ca6a9c690..8fe02131a6c4 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
@@ -544,7 +544,7 @@ int vmw_cmd_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
cmd_fence = (struct svga_fifo_cmd_fence *) fm;
cmd_fence->fence = *seqno;
vmw_cmd_commit_flush(dev_priv, bytes);
- vmw_update_seqno(dev_priv);
+ vmw_fences_update(dev_priv->fman);
out_err:
return ret;