drm/vmwgfx: Make sure the screen surface is ref counted
authorZack Rusin <zack.rusin@broadcom.com>
Mon, 22 Jul 2024 18:41:14 +0000 (14:41 -0400)
committerZack Rusin <zack.rusin@broadcom.com>
Thu, 25 Jul 2024 02:21:52 +0000 (22:21 -0400)
commit09f34a00272d2311f6e5d64ed8ad824ef78f7487
tree35f14d24ed1d5a74c13474884465648b3476513a
parente58337100721f3cc0c7424a18730e4f39844934f
drm/vmwgfx: Make sure the screen surface is ref counted

Fix races issues in virtual crc generation by making sure the surface
the code uses for crc computation is properly ref counted.

Crc generation was trying to be too clever by allowing the surfaces
to go in and out of scope, with the hope of always having some kind
of screen present. That's not always the code, in particular during
atomic disable, so to make sure the surface, when present, is not
being actively destroyed at the same time, hold a reference to it.

Signed-off-by: Zack Rusin <zack.rusin@broadcom.com>
Fixes: 7b0062036c3b ("drm/vmwgfx: Implement virtual crc generation")
Cc: Zack Rusin <zack.rusin@broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Maaz Mombasawala <maaz.mombasawala@broadcom.com>
Reviewed-by: Martin Krastev <martin.krastev@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240722184313.181318-3-zack.rusin@broadcom.com
drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c