]> git.baikalelectronics.ru Git - kernel.git/commit
drm/vc4: kms: Clear the HVS FIFO commit pointer once done
authorMaxime Ripard <maxime@cerno.tech>
Wed, 17 Nov 2021 09:45:25 +0000 (10:45 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Mon, 29 Nov 2021 14:17:57 +0000 (15:17 +0100)
commitdba2d0a8ca9027f65fa57d0cce28df6b46faf53c
tree53fc0d2e37d9c733362f7a48dd0699c914c5a74e
parent78c63b51888365eaddafa5a6424bb99ac0086e35
drm/vc4: kms: Clear the HVS FIFO commit pointer once done

Commit 4c39a07c7800 ("drm/vc4: kms: Wait on previous FIFO users before a
commit") introduced a wait on the previous commit done on a given HVS
FIFO.

However, we never cleared that pointer once done. Since
drm_crtc_commit_put can free the drm_crtc_commit structure directly if
we were the last user, this means that it can lead to a use-after free
if we were to duplicate the state, and that stale pointer would even be
copied to the new state.

Set the pointer to NULL once we're done with the wait so that we don't
carry over a pointer to a free'd structure.

Fixes: 4c39a07c7800 ("drm/vc4: kms: Wait on previous FIFO users before a commit")
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Tested-by: Jian-Hong Pan <jhp@endlessos.org>
Link: https://lore.kernel.org/r/20211117094527.146275-5-maxime@cerno.tech
drivers/gpu/drm/vc4/vc4_kms.c