From: Thomas Hellstrom Date: Fri, 20 Nov 2015 19:43:50 +0000 (-0800) Subject: drm/ttm: Fixed a read/write lock imbalance X-Git-Tag: v3.16.35~811 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=23fe87e5a17ab204a85988d2f6d49e0a71e15a62;p=thirdparty%2Fkernel%2Fstable.git drm/ttm: Fixed a read/write lock imbalance commit 025af189fb44250206dd8a32fa4a682392af3301 upstream. In ttm_write_lock(), the uninterruptible path should call __ttm_write_lock() not __ttm_read_lock(). This fixes a vmwgfx hang on F23 start up. syeh: Extracted this from one of Thomas' internal patches. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh Signed-off-by: Luis Henriques --- diff --git a/drivers/gpu/drm/ttm/ttm_lock.c b/drivers/gpu/drm/ttm/ttm_lock.c index 6a954544727f3..f154fb1929bd1 100644 --- a/drivers/gpu/drm/ttm/ttm_lock.c +++ b/drivers/gpu/drm/ttm/ttm_lock.c @@ -180,7 +180,7 @@ int ttm_write_lock(struct ttm_lock *lock, bool interruptible) spin_unlock(&lock->lock); } } else - wait_event(lock->queue, __ttm_read_lock(lock)); + wait_event(lock->queue, __ttm_write_lock(lock)); return ret; }