drm/i915: Split alloc from init for lrc
[linux-2.6-block.git] / drivers / gpu / drm / i915 / i915_gem_execbuffer.c
index 83577c6159624230ea70ec4bc6f9f5214fa1c504..98952b4b9e7f3259700146bf70cd40eff63e4165 100644 (file)
@@ -32,6 +32,7 @@
 #include "i915_trace.h"
 #include "intel_drv.h"
 #include <linux/dma_remapping.h>
+#include <linux/uaccess.h>
 
 #define  __EXEC_OBJECT_HAS_PIN (1<<31)
 #define  __EXEC_OBJECT_HAS_FENCE (1<<30)
@@ -458,7 +459,7 @@ i915_gem_execbuffer_relocate_entry(struct drm_i915_gem_object *obj,
        }
 
        /* We can't wait for rendering with pagefaults disabled */
-       if (obj->active && in_atomic())
+       if (obj->active && pagefault_disabled())
                return -EFAULT;
 
        if (use_cpu_reloc(obj))
@@ -1008,7 +1009,7 @@ i915_gem_validate_context(struct drm_device *dev, struct drm_file *file,
        }
 
        if (i915.enable_execlists && !ctx->engine[ring->id].state) {
-               int ret = intel_lr_context_deferred_create(ctx, ring);
+               int ret = intel_lr_context_deferred_alloc(ctx, ring);
                if (ret) {
                        DRM_DEBUG("Could not create LRC %u: %d\n", ctx_id, ret);
                        return ERR_PTR(ret);