]> git.baikalelectronics.ru Git - kernel.git/commit
drm/panfrost: Make sure MMU context lifetime is not bound to panfrost_priv
authorBoris Brezillon <boris.brezillon@collabora.com>
Mon, 21 Jun 2021 13:38:56 +0000 (15:38 +0200)
committerBoris Brezillon <boris.brezillon@collabora.com>
Thu, 24 Jun 2021 07:25:56 +0000 (09:25 +0200)
commit7db5dbac4401fad9505d1e7954d7b77d7e69ec97
treef27b690510267a2c25d52c2ea3867945fc8f265a
parent4635b6cd6a741bafe5f0dd0f722973e32de3e43d
drm/panfrost: Make sure MMU context lifetime is not bound to panfrost_priv

Jobs can be in-flight when the file descriptor is closed (either because
the process did not terminate properly, or because it didn't wait for
all GPU jobs to be finished), and apparently panfrost_job_close() does
not cancel already running jobs. Let's refcount the MMU context object
so it's lifetime is no longer bound to the FD lifetime and running jobs
can finish properly without generating spurious page faults.

Reported-by: Icecream95 <ixn@keemail.me>
Fixes: 3ec76f27f11d ("drm/panfrost: Implement per FD address spaces")
Cc: <stable@vger.kernel.org>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210621133907.1683899-2-boris.brezillon@collabora.com
drivers/gpu/drm/panfrost/panfrost_device.h
drivers/gpu/drm/panfrost/panfrost_drv.c
drivers/gpu/drm/panfrost/panfrost_gem.c
drivers/gpu/drm/panfrost/panfrost_job.c
drivers/gpu/drm/panfrost/panfrost_mmu.c
drivers/gpu/drm/panfrost/panfrost_mmu.h