From 7dbeb18777a4dc1e7eb3c6bc4da3e72456afc8fc Mon Sep 17 00:00:00 2001 From: Robert Noland Date: Thu, 23 Oct 2008 15:42:49 -0400 Subject: [FreeBSD] This check isn't correct and causes at least mga to lockup. --- bsd-core/drm_lock.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'bsd-core/drm_lock.c') diff --git a/bsd-core/drm_lock.c b/bsd-core/drm_lock.c index 685b0ea3..dec7281a 100644 --- a/bsd-core/drm_lock.c +++ b/bsd-core/drm_lock.c @@ -102,17 +102,15 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv) { struct drm_lock *lock = data; + DRM_DEBUG("%d (pid %d) requests unlock (0x%08x), flags = 0x%08x\n", + lock->context, DRM_CURRENTPID, dev->lock.hw_lock->lock, + lock->flags); + if (lock->context == DRM_KERNEL_CONTEXT) { DRM_ERROR("Process %d using kernel context %d\n", DRM_CURRENTPID, lock->context); return EINVAL; } - /* Check that the context unlock being requested actually matches - * who currently holds the lock. - */ - if (!_DRM_LOCK_IS_HELD(dev->lock.hw_lock->lock) || - _DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock) != lock->context) - return EINVAL; DRM_SPINLOCK(&dev->tsk_lock); if (dev->locked_task_call != NULL) { -- cgit v1.2.3