OSDN Git Service

winsys/amdgpu: avoid double simple_mtx_unlock()
authorJonathan Gray <jsg@jsg.id.au>
Thu, 28 Nov 2019 05:56:30 +0000 (16:56 +1100)
committerDylan Baker <dylan@pnwbakers.com>
Tue, 3 Dec 2019 18:23:20 +0000 (10:23 -0800)
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.

This occurs in amdgpu_winsys_create() after
cb446dc0fa5c68f681108f4613560543aa4cf553
winsys/amdgpu: Add amdgpu_screen_winsys

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Cc: 19.2 19.3 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 3fe3bde4f2c8813e13fa2992212ca46a894e68b6)

src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c

index 568d385..2a34141 100644 (file)
@@ -326,7 +326,6 @@ amdgpu_winsys_create(int fd, const struct pipe_screen_config *config,
    aws = util_hash_table_get(dev_tab, dev);
    if (aws) {
       pipe_reference(NULL, &aws->reference);
-      simple_mtx_unlock(&dev_tab_mutex);
 
       /* Release the device handle, because we don't need it anymore.
        * This function is returning an existing winsys instance, which