Reclaim buffers locked fixup.
authorThomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Tue, 19 Dec 2006 22:14:11 +0000 (23:14 +0100)
committerThomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Tue, 19 Dec 2006 22:14:11 +0000 (23:14 +0100)
Avoid calling reclaim_buffers_locked if we don't have a
hardware lock.

Improve reclaim_buffers_locked deadlock error formatting.

linux-core/drm_fops.c

index b60ced3..ac20573 100644 (file)
@@ -426,7 +426,7 @@ int drm_release(struct inode *inode, struct file *filp)
                  current->pid, (long)old_encode_dev(priv->head->device),
                  dev->open_count);
 
-       if (dev->driver->reclaim_buffers_locked) {
+       if (dev->driver->reclaim_buffers_locked && dev->lock.hw_lock) {
                unsigned long _end = jiffies + DRM_HZ*3;
 
                do {
@@ -446,12 +446,12 @@ int drm_release(struct inode *inode, struct file *filp)
                         * holds the lock. Then we can run reclaim buffers locked anyway.
                         */
 
-                       DRM_ERROR("Reclaim buffers locked deadlock.\n");
-                       DRM_ERROR("This is probably a single thread having multiple\n");
-                       DRM_ERROR("DRM file descriptors open either dying or "
-                                 "closing file descriptors\n");
-                       DRM_ERROR("while having the lock. I will not reclaim buffers.\n");
-                       DRM_ERROR("Locking context is 0x%08x\n",
+                       DRM_ERROR("Reclaim buffers locked deadlock.\n"
+                                 "\tThis is probably a single thread having multiple\n"
+                                 "\tDRM file descriptors open either dying or"
+                                 " closing file descriptors\n"
+                                 "\twhile having the lock. I will not reclaim buffers.\n"
+                                 "\tLocking context is 0x%08x\n",
                                  _DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock));
                }
        } else if (drm_i_have_hw_lock(filp)) {