git: drm - Fix a second X lockup w/radeon ttm
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Jan 15 13:02:38 PST 2015
commit 5fd16c59eed4b0560ae53e41715827f3a1309036
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Jan 15 12:59:51 2015 -0800
drm - Fix a second X lockup w/radeon ttm
* Code which releases bo->reserved and wakes up waiters was
not interlocked against wait_event_common() used to wait
for the release. This can result in a race where the
release occurs inbetween the wait's test and its sleep,
preventing the wait from ever waking up.
* This is different from the recent dev_pager_mtx deadlock which
was recently fixed, but in the same code path.
* Roll the release of bo->reserved into a static function
and throw the bo->event_queue.lock around the actual
release to fix the race.
Summary of changes:
sys/dev/drm/ttm/ttm_bo.c | 33 ++++++++++++++++++++-------------
1 file changed, 20 insertions(+), 13 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5fd16c59eed4b0560ae53e41715827f3a1309036
--
DragonFly BSD source repository
More information about the Commits
mailing list