[PATCH 2/2] gpu: host1x: Fix refcount leak in buffer cache
Mikko Perttunen
mperttunen at nvidia.com
Mon Feb 7 13:19:32 UTC 2022
The recently introduced buffer cache is causing cached BOs to leak, as
cache entries are dropped when a BO's refcount goes to zero but the
cache itself keeps a reference to each cache BO, causing a circular
reference.
Fix this by not taking a reference to the cached BOs within the cache
itself.
Fixes: 1f39b1dfa53c ("drm/tegra: Implement buffer object cache")
Signed-off-by: Mikko Perttunen <mperttunen at nvidia.com>
---
NOTE
As is, applying this patch reveals a BO refcounting issue in the
DC driver. A fix for that bug should be applied before applying
this patch. I believe Thierry will be posting a fix for that
shortly.
---
drivers/gpu/host1x/bus.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c
index bdee16a0bb8e..66ba04501c94 100644
--- a/drivers/gpu/host1x/bus.c
+++ b/drivers/gpu/host1x/bus.c
@@ -938,9 +938,6 @@ struct host1x_bo_mapping *host1x_bo_pin(struct device *dev, struct host1x_bo *bo
mapping->cache = cache;
list_add_tail(&mapping->entry, &cache->mappings);
-
- /* bump reference count to track the copy in the cache */
- kref_get(&mapping->ref);
}
unlock:
--
2.35.0
More information about the dri-devel
mailing list