Reviewed-by: Mikko Perttunen <mperttunen@xxxxxxxxxx>
On 05/23/2017 03:14 AM, Dmitry Osipenko wrote:
In case of relocations / waitchecks patching failure the jobs pins stay
referenced till DRM file get closed, wasting memory. Add the missed
unpinning.
Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx>
---
drivers/gpu/host1x/job.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/host1x/job.c b/drivers/gpu/host1x/job.c
index d9933828fe87..14f3f957ffab 100644
--- a/drivers/gpu/host1x/job.c
+++ b/drivers/gpu/host1x/job.c
@@ -592,22 +592,20 @@ int host1x_job_pin(struct host1x_job *job, struct device *dev)
err = do_relocs(job, g->bo);
if (err)
- break;
+ goto out;
err = do_waitchks(job, host, g->bo);
if (err)
- break;
+ goto out;
}
- if (IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL) && !err) {
- err = copy_gathers(job, dev);
- if (err) {
- host1x_job_unpin(job);
- return err;
- }
- }
+ if (!IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL))
+ goto out;
+ err = copy_gathers(job, dev);
out:
+ if (err)
+ host1x_job_unpin(job);
wmb();
return err;
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html