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, };