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

Author: José Roberto de Souza <[email protected]>
Date:   Tue Oct  3 08:54:35 2023 -0700

iris: Lock bufmgr->lock before call vma_free() in error path

vma_free() requires that bufmgr->lock is held.

Signed-off-by: José Roberto de Souza <[email protected]>
Reviewed-by: Paulo Zanoni <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25571>

---

 src/gallium/drivers/iris/iris_bufmgr.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/gallium/drivers/iris/iris_bufmgr.c 
b/src/gallium/drivers/iris/iris_bufmgr.c
index be728be918a..e7e55049f36 100644
--- a/src/gallium/drivers/iris/iris_bufmgr.c
+++ b/src/gallium/drivers/iris/iris_bufmgr.c
@@ -1248,7 +1248,9 @@ iris_bo_alloc(struct iris_bufmgr *bufmgr,
    return bo;
 
 err_vm_alloc:
+   simple_mtx_lock(&bufmgr->lock);
    vma_free(bufmgr, bo->address, bo->size);
+   simple_mtx_unlock(&bufmgr->lock);
 err_free:
    simple_mtx_lock(&bufmgr->lock);
    bo_free(bo);
@@ -1324,7 +1326,9 @@ iris_bo_create_userptr(struct iris_bufmgr *bufmgr, const 
char *name,
    return bo;
 
 err_vma_free:
+   simple_mtx_lock(&bufmgr->lock);
    vma_free(bufmgr, bo->address, bo->size);
+   simple_mtx_unlock(&bufmgr->lock);
 err_close:
    bufmgr->kmd_backend->gem_close(bufmgr, bo);
 err_free:

Reply via email to