Patch "drm/msm: Put back the vaddr in submit_reloc()" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm/msm: Put back the vaddr in submit_reloc()
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-msm-put-back-the-vaddr-in-submit_reloc.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Fri Aug 4 13:32:40 PDT 2017
From: Jordan Crouse <[email protected]>
Date: Tue, 20 Dec 2016 08:54:30 -0700
Subject: drm/msm: Put back the vaddr in submit_reloc()
From: Jordan Crouse <[email protected]>
[ Upstream commit 6490abc4bc35fa4f3bdb9c7e49096943c50e29ea ]
The error cases in submit_reloc() need to put back the virtual address of the bo before failling. Add a single failure path for the function.
--- drivers/gpu/drm/msm/msm_gem_submit.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)
drivers/gpu/drm/msm/msm_gem_submit.c +9 -6
@@ -290,7 +290,7 @@ static int submit_reloc(struct msm_gem_s {uint32_t i, last_offset =0 ;uint32_t *ptr; -int ret; +int ret =0 ;if (offset %4 ) {DRM_ERROR ("non-aligned cmdstream buffer: %u\n" , offset);
@@ -317,12 +317,13 @@ static int submit_reloc(struct msm_gem_s ret =copy_from_user (&submit_reloc, userptr,sizeof (submit_reloc));if (ret) -return -EFAULT ; + goto out;if (submit_reloc.submit_offset %4 ) {DRM_ERROR ("non-aligned reloc offset: %u\n" , submit_reloc.submit_offset); -return -EINVAL ; + ret = -EINVAL ; + goto out; }/* offset in dwords: */
@@ -331,12 +332,13 @@ static int submit_reloc(struct msm_gem_sif ((off >= (obj->base.size /4 )) || (off < last_offset)) {DRM_ERROR ("invalid offset %u at reloc %u\n" , off, i); -return -EINVAL ; + ret = -EINVAL ; + goto out; } ret =submit_bo (submit, submit_reloc.reloc_idx,NULL , &iova, &valid);if (ret) -return ret; + goto out;if (valid)continue ;
@@ -353,9 +355,10 @@ static int submit_reloc(struct msm_gem_s last_offset = off; } +out:msm_gem_put_vaddr_locked (&obj->base); -return 0 ; +return ret; }static void submit_cleanup (struct msm_gem_submit *submit)
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/drm-msm-verify-that-msm_submit_bo_flags-are-set.patch queue-4.9/drm-msm-put-back-the-vaddr-in-submit_reloc.patch queue-4.9/drm-msm-ensure-that-the-hardware-write-pointer-is-valid.patch