]> git.baikalelectronics.ru Git - kernel.git/commit
drm/etnaviv: reap idle mapping if it doesn't match the softpin address
authorLucas Stach <l.stach@pengutronix.de>
Thu, 14 Jul 2022 10:31:43 +0000 (12:31 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jan 2023 10:11:57 +0000 (11:11 +0100)
commitbf2a1add9771cb1fc376028d0d412032df77f5d2
tree297002f94f6542816c6714fdc72f65d518fd6d92
parentb59b39835cd9f6ee0c1fe110c3d3dbaf990cbed8
drm/etnaviv: reap idle mapping if it doesn't match the softpin address

commit 7dfc8ca44682ef028ee4db4a23f272aa62d75945 upstream.

When a idle BO, which is held open by another process, gets freed by
userspace and subsequently referenced again by e.g. importing it again,
userspace may assign a different softpin VA than the last time around.
As the kernel GEM object still exists, we likely have a idle mapping
with the old VA still cached, if it hasn't been reaped in the meantime.

As the context matches, we then simply try to resurrect this mapping by
increasing the refcount. As the VA in this mapping does not match the
new softpin address, we consequently fail the otherwise valid submit.
Instead of failing, reap the idle mapping.

Cc: stable@vger.kernel.org # 5.19
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Guido Günther <agx@sigxcpu.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/etnaviv/etnaviv_gem.c