summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/nvmap/nvmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/tegra/nvmap/nvmap.c')
-rw-r--r--drivers/video/tegra/nvmap/nvmap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/video/tegra/nvmap/nvmap.c b/drivers/video/tegra/nvmap/nvmap.c
index e5d829b3d05d..4e84c05dab48 100644
--- a/drivers/video/tegra/nvmap/nvmap.c
+++ b/drivers/video/tegra/nvmap/nvmap.c
@@ -594,12 +594,15 @@ phys_addr_t _nvmap_pin(struct nvmap_client *client,
if (h->heap_pgalloc && h->pgalloc.dirty)
ret = map_iovmm_area(h);
if (ret)
- goto err_out;
+ goto err_out_unpin;
phys = handle_phys(h);
}
return phys;
+err_out_unpin:
+ nvmap_handle_get(h);
+ handle_unpin(client, h, true);
err_out:
atomic_dec(&ref->pin);
nvmap_handle_put(h);