From: Arnd Bergmann Date: Thu, 26 Aug 2010 22:55:28 +0000 (+1000) Subject: drm: fix regression in drm locking since BKL removal. X-Git-Tag: v2.6.36-rc3~9^2~3 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=08f2e669a81b5906adf6e4716f92d99d7966d224;p=~emulex%2Finfiniband.git 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 Signed-off-by: Dave Airlie --- diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c index e2f70a516c3..9bf93bc9a32 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;