]> 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)
commit66d740d6052ebd7614fb0b6530f8ece0a1f78919
treef27b690510267a2c25d52c2ea3867945fc8f265a
parente8aa0eddab7cd113c1b4b12d9e7f0a560b46cb8d
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: b11e1b24f72f ("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