summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/panfrost/panfrost_job.h
diff options
context:
space:
mode:
authorSteven Price <steven.price@arm.com>2022-05-19 16:20:03 +0100
committerSteven Price <steven.price@arm.com>2022-05-25 09:14:22 +0100
commit6e516faf04317db2c46cbec4e3b78b4653a5b109 (patch)
treef8d32ff533589db83c32342b913b5efde8f7eed2 /drivers/gpu/drm/panfrost/panfrost_job.h
parentedbc7960bef7fd71ef1e44d0df15b864784b14c8 (diff)
downloadlwn-6e516faf04317db2c46cbec4e3b78b4653a5b109.tar.gz
lwn-6e516faf04317db2c46cbec4e3b78b4653a5b109.zip
drm/panfrost: Job should reference MMU not file_priv
For a while now it's been allowed for a MMU context to outlive it's corresponding panfrost_priv, however the job structure still references panfrost_priv to get hold of the MMU context. If panfrost_priv has been freed this is a use-after-free which I've been able to trigger resulting in a splat. To fix this, drop the reference to panfrost_priv in the job structure and add a direct reference to the MMU structure which is what's actually needed. Fixes: 7fdc48cc63a3 ("drm/panfrost: Make sure MMU context lifetime is not bound to panfrost_priv") Signed-off-by: Steven Price <steven.price@arm.com> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220519152003.81081-1-steven.price@arm.com
Diffstat (limited to 'drivers/gpu/drm/panfrost/panfrost_job.h')
-rw-r--r--drivers/gpu/drm/panfrost/panfrost_job.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/panfrost/panfrost_job.h b/drivers/gpu/drm/panfrost/panfrost_job.h
index 77e6d0e6f612..8becc1ba0eb9 100644
--- a/drivers/gpu/drm/panfrost/panfrost_job.h
+++ b/drivers/gpu/drm/panfrost/panfrost_job.h
@@ -17,7 +17,7 @@ struct panfrost_job {
struct kref refcount;
struct panfrost_device *pfdev;
- struct panfrost_file_priv *file_priv;
+ struct panfrost_mmu *mmu;
/* Fence to be signaled by IRQ handler when the job is complete. */
struct dma_fence *done_fence;