summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2020-05-18 14:29:55 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-05-27 17:46:42 +0200
commit57c32a52c3fecb17689e268dd9af201920872600 (patch)
treee3f0e76c62c3894ad92975f5f1d7a9d72fb9bb2f
parent432b103596bd8dd1ca3d4b5b98eb35f45d66c82b (diff)
downloadlinux-57c32a52c3fecb17689e268dd9af201920872600.tar.gz
linux-57c32a52c3fecb17689e268dd9af201920872600.tar.bz2
linux-57c32a52c3fecb17689e268dd9af201920872600.zip
drm/etnaviv: Fix a leak in submit_pin_objects()
commit ad99cb5e783bb03d512092db3387ead9504aad3d upstream. If the mapping address is wrong then we have to release the reference to it before returning -EINVAL. Fixes: 088880ddc0b2 ("drm/etnaviv: implement softpin") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
index aa3e4c3b063a..1ba83a90cdef 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -240,8 +240,10 @@ static int submit_pin_objects(struct etnaviv_gem_submit *submit)
}
if ((submit->flags & ETNA_SUBMIT_SOFTPIN) &&
- submit->bos[i].va != mapping->iova)
+ submit->bos[i].va != mapping->iova) {
+ etnaviv_gem_mapping_unreference(mapping);
return -EINVAL;
+ }
atomic_inc(&etnaviv_obj->gpu_active);