egl/dri2: avoid undefined unlocks

unlocks were incorrectly added to paths using dri2_egl_display() as
well as those using dri2_egl_display_lock()

pthread_mutex_unlock() when unlocked is documented by posix as
being undefined behaviour.  On OpenBSD pthread_mutex_unlock() will call
abort(3) if this happens.

Fixes: f1efe037df ("egl/dri2: Add display lock")
Reviewed-by: Rob Clark <robclark@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20712>
(cherry picked from commit 0594b3c143)
This commit is contained in:
Jonathan Gray 2023-01-15 13:48:10 +11:00 committed by Eric Engestrom
parent 16fc1641cc
commit 8e2e275985
2 changed files with 1 additions and 5 deletions

View file

@ -1696,7 +1696,7 @@
"description": "egl/dri2: avoid undefined unlocks",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "f1efe037dfd82d95b025a3ddf58b669758b8d69a"
},

View file

@ -2452,8 +2452,6 @@ dri2_get_sync_values_chromium(_EGLDisplay *disp, _EGLSurface *surf,
if (dri2_dpy->vtbl->get_sync_values)
ret = dri2_dpy->vtbl->get_sync_values(disp, surf, ust, msc, sbc);
mtx_unlock(&dri2_dpy->lock);
return ret;
}
@ -2578,8 +2576,6 @@ dri2_query_surface(_EGLDisplay *disp, _EGLSurface *surf,
ret = dri2_dpy->vtbl->query_surface(disp, surf, attribute, value);
}
mtx_unlock(&dri2_dpy->lock);
return ret;
}