diff options
| author | Ian Forbes <ian.forbes@broadcom.com> | 2025-05-30 13:35:08 -0500 |
|---|---|---|
| committer | Zack Rusin <zack.rusin@broadcom.com> | 2025-06-17 22:49:31 -0400 |
| commit | c82f55f4aa57bf5ba412d55856fe50514b47b971 (patch) | |
| tree | d3ed4789760119f211eaf2a9f096f59f0efee154 /drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | |
| parent | a72002cb181f350734108228b24c5d10d358f95a (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.c | 2 |
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; |
