Date: Sun, 25 Aug 2013 15:29:23 +0000 (UTC) From: Jean-Sebastien Pedron <dumbbell@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254878 - head/sys/dev/drm2/ttm Message-ID: <201308251529.r7PFTNG5067870@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dumbbell Date: Sun Aug 25 15:29:23 2013 New Revision: 254878 URL: http://svnweb.freebsd.org/changeset/base/254878 Log: drm/ttm: Fix a reversed condition and add missing locks This allows to run OpenGL applications on at least two test machines with the Radeon driver. Approved by: kib@ Modified: head/sys/dev/drm2/ttm/ttm_bo.c Modified: head/sys/dev/drm2/ttm/ttm_bo.c ============================================================================== --- head/sys/dev/drm2/ttm/ttm_bo.c Sun Aug 25 15:26:45 2013 (r254877) +++ head/sys/dev/drm2/ttm/ttm_bo.c Sun Aug 25 15:29:23 2013 (r254878) @@ -145,7 +145,7 @@ ttm_bo_wait_unreserved_locked(struct ttm flags = 0; wmsg = "ttbowu"; } - while (!ttm_bo_is_reserved(bo)) { + while (ttm_bo_is_reserved(bo)) { ret = -msleep(bo, &bo->glob->lru_lock, flags, wmsg, 0); if (ret != 0) break; @@ -281,14 +281,15 @@ int ttm_bo_reserve(struct ttm_buffer_obj int put_count = 0; int ret; + mtx_lock(&bo->glob->lru_lock); ret = ttm_bo_reserve_nolru(bo, interruptible, no_wait, use_sequence, sequence); if (likely(ret == 0)) { - mtx_lock(&glob->lru_lock); put_count = ttm_bo_del_from_lru(bo); mtx_unlock(&glob->lru_lock); ttm_bo_list_ref_sub(bo, put_count, true); - } + } else + mtx_unlock(&bo->glob->lru_lock); return ret; } @@ -333,13 +334,14 @@ int ttm_bo_reserve_slowpath(struct ttm_b struct ttm_bo_global *glob = bo->glob; int put_count, ret; + mtx_lock(&glob->lru_lock); ret = ttm_bo_reserve_slowpath_nolru(bo, interruptible, sequence); if (likely(!ret)) { - mtx_lock(&glob->lru_lock); put_count = ttm_bo_del_from_lru(bo); mtx_unlock(&glob->lru_lock); ttm_bo_list_ref_sub(bo, put_count, true); - } + } else + mtx_unlock(&glob->lru_lock); return ret; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308251529.r7PFTNG5067870>