Mesa (staging/21.3): panfrost: Avoid double unlock.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 23 22:57:40 UTC 2021


Module: Mesa
Branch: staging/21.3
Commit: 5a1277abbacca9997b9c87c87d75f8596ddedc4a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5a1277abbacca9997b9c87c87d75f8596ddedc4a

Author: Vinson Lee <vlee at freedesktop.org>
Date:   Sun Dec 19 20:08:37 2021 -0800

panfrost: Avoid double unlock.

Fix defect reported by Coverity Scan.

Double unlock (LOCK)
double_unlock: pthread_mutex_unlock unlocks dev->indirect_draw_shaders.lock while it is unlocked.

Fixes: 2e6d94c198e ("panfrost: Add helpers to support indirect draws")
Suggested-by: Alyssa Rosenzweig <alyssa at collabora.com>
Signed-off-by: Vinson Lee <vlee at freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14262>
(cherry picked from commit 9f8a204645c60f16681309a78ca3a28a276ec5fa)

---

 .pick_status.json                    | 2 +-
 src/panfrost/lib/pan_indirect_draw.c | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 1182f9ecba5..eab204b1dcc 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -328,7 +328,7 @@
         "description": "panfrost: Avoid double unlock.",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "2e6d94c198e4d10c82ed3ffd59e85f460bd58950"
     },
diff --git a/src/panfrost/lib/pan_indirect_draw.c b/src/panfrost/lib/pan_indirect_draw.c
index 06c7183936b..3335005f067 100644
--- a/src/panfrost/lib/pan_indirect_draw.c
+++ b/src/panfrost/lib/pan_indirect_draw.c
@@ -1131,7 +1131,6 @@ create_indirect_draw_shader(struct panfrost_device *dev,
                 pan_pack(state, RENDERER_STATE, cfg) {
                         pan_shader_prepare_rsd(&shader_info, address, &cfg);
                 }
-                pthread_mutex_unlock(&dev->indirect_draw_shaders.lock);
 
                 draw_shader->push = shader_info.push;
                 draw_shader->rsd = dev->indirect_draw_shaders.states->ptr.gpu +



More information about the mesa-commit mailing list