diff options
author | Eric Anholt <eric@anholt.net> | 2008-08-08 14:05:01 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2008-08-08 14:05:01 -0700 |
commit | e1b8e79796b172c356af98eb49107c8abbebfe5a (patch) | |
tree | 4af674ca495ca93535f057ea4c0385c57825c2e4 /linux-core/drm_lock.c | |
parent | 0c47151a571827905c34649208e22f8ec0175d62 (diff) | |
parent | 46e9274e8538e5b0517f611dca99dde611f4e95d (diff) |
Merge branch 'drm-gem'
Conflicts:
shared-core/i915_dma.c
This brings in kernel support and userland interface for intel GEM.
Diffstat (limited to 'linux-core/drm_lock.c')
-rw-r--r-- | linux-core/drm_lock.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/linux-core/drm_lock.c b/linux-core/drm_lock.c index 573213de..a2966efb 100644 --- a/linux-core/drm_lock.c +++ b/linux-core/drm_lock.c @@ -218,22 +218,16 @@ int drm_lock_take(struct drm_lock_data *lock_data, } while (prev != old); spin_unlock_bh(&lock_data->spinlock); - if (_DRM_LOCKING_CONTEXT(old) == context) { - if (old & _DRM_LOCK_HELD) { - if (context != DRM_KERNEL_CONTEXT) { - DRM_ERROR("%d holds heavyweight lock\n", - context); - } - return 0; + /* Warn on recursive locking of user contexts. */ + if (_DRM_LOCKING_CONTEXT(old) == context && _DRM_LOCK_IS_HELD(old)) { + if (context != DRM_KERNEL_CONTEXT) { + DRM_ERROR("%d holds heavyweight lock\n", + context); } + return 0; } - if ((_DRM_LOCKING_CONTEXT(new)) == context && (new & _DRM_LOCK_HELD)) { - /* Have lock */ - - return 1; - } - return 0; + return !_DRM_LOCK_IS_HELD(old); } /** @@ -386,7 +380,6 @@ void drm_idlelock_release(struct drm_lock_data *lock_data) } EXPORT_SYMBOL(drm_idlelock_release); - int drm_i_have_hw_lock(struct drm_device *dev, struct drm_file *file_priv) { |