diff options
author | Steven Price <steven.price@arm.com> | 2022-05-19 16:20:03 +0100 |
---|---|---|
committer | Steven Price <steven.price@arm.com> | 2022-05-25 09:14:22 +0100 |
commit | 6e516faf04317db2c46cbec4e3b78b4653a5b109 (patch) | |
tree | f8d32ff533589db83c32342b913b5efde8f7eed2 /drivers/gpu/drm/panfrost/panfrost_job.h | |
parent | edbc7960bef7fd71ef1e44d0df15b864784b14c8 (diff) | |
download | lwn-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.h | 2 |
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; |