summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_lock.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-08-27 08:55:28 +1000
committerDave Airlie <airlied@redhat.com>2010-08-27 09:10:28 +1000
commit08f2e669a81b5906adf6e4716f92d99d7966d224 (patch)
treebe304dca3a8d141cfd6d27c40afd45aa1ea7b34a /drivers/gpu/drm/drm_lock.c
parent12acd90f0b97a4ce4574ca1e951cbca026e92560 (diff)
downloadlinux-08f2e669a81b5906adf6e4716f92d99d7966d224.tar.gz
linux-08f2e669a81b5906adf6e4716f92d99d7966d224.tar.bz2
linux-08f2e669a81b5906adf6e4716f92d99d7966d224.zip
drm: fix regression in drm locking since BKL removal.
This locking path needs proper auditing but probably too late for changes at this point for 2.6.36, so lets go with the quick fix, which is to drop the lock around schedule. Reported-by: Andreas Schwab <schwab@linux-m68k.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_lock.c')
-rw-r--r--drivers/gpu/drm/drm_lock.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
index e2f70a516c34..9bf93bc9a32c 100644
--- a/drivers/gpu/drm/drm_lock.c
+++ b/drivers/gpu/drm/drm_lock.c
@@ -92,7 +92,9 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
}
/* Contention */
+ mutex_unlock(&drm_global_mutex);
schedule();
+ mutex_lock(&drm_global_mutex);
if (signal_pending(current)) {
ret = -EINTR;
break;