Module: Mesa
Branch: main
Commit: 16de8e99cf6500758295c73aaf878366caf99065
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=16de8e99cf6500758295c73aaf878366caf99065

Author: Danylo Piliaiev <dpilia...@igalia.com>
Date:   Thu Nov  2 14:02:37 2023 +0100

freedreno/replay: Correctly free iova on msm backend

Signed-off-by: Danylo Piliaiev <dpilia...@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26101>

---

 src/freedreno/decode/replay.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/freedreno/decode/replay.c b/src/freedreno/decode/replay.c
index 8955dcd88b1..eefecb1505d 100644
--- a/src/freedreno/decode/replay.c
+++ b/src/freedreno/decode/replay.c
@@ -634,6 +634,19 @@ buffer_mem_free(struct device *dev, struct buffer *buf)
    if (dev->has_set_iova) {
       munmap(buf->map, buf->size);
 
+      struct drm_msm_gem_info req_iova = {
+         .handle = buf->gem_handle,
+         .info = MSM_INFO_SET_IOVA,
+         .value = 0,
+      };
+
+      int ret = drmCommandWriteRead(dev->fd, DRM_MSM_GEM_INFO, &req_iova,
+                                    sizeof(req_iova));
+      if (ret < 0) {
+         err(1, "MSM_INFO_SET_IOVA(0) failed! %d", ret);
+         return;
+      }
+
       struct drm_gem_close req = {
          .handle = buf->gem_handle,
       };

Reply via email to