]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm: missing idr_preload_end in drm_gem_flink_ioctl
authorArtem Savkov <artem.savkov@gmail.com>
Wed, 20 Feb 2013 02:16:13 +0000 (13:16 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 20 Feb 2013 05:53:45 +0000 (16:53 +1100)
Added missing idr_preload_end calls in drm_gem_flink_ioctl().  Without
those preemption stays disabled resulting in lots of "scheduling while
atomic" BUGs.

Signed-off-by: Artem Savkov <artem.savkov@gmail.com>
Cc: David Airlie <airlied@linux.ie>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/gpu/drm/drm_gem.c

index 6577514941be984fbfc24257d27379a89cdd802e..f1700ef27d1407fb341211a35269337a6f4f00bf 100644 (file)
@@ -456,6 +456,7 @@ drm_gem_flink_ioctl(struct drm_device *dev, void *data,
                obj->name = ret;
                args->name = (uint64_t) obj->name;
                spin_unlock(&dev->object_name_lock);
+               idr_preload_end();
 
                if (ret < 0)
                        goto err;
@@ -465,6 +466,7 @@ drm_gem_flink_ioctl(struct drm_device *dev, void *data,
        } else {
                args->name = (uint64_t) obj->name;
                spin_unlock(&dev->object_name_lock);
+               idr_preload_end();
                ret = 0;
        }