]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915: Handle GPU hangs during fault gracefully.
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 7 Nov 2010 09:18:22 +0000 (09:18 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sun, 7 Nov 2010 09:18:22 +0000 (09:18 +0000)
Instead of killing the process, just return no page found and reschedule
the process giving the GPU some time to (hopefully) recover.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_gem.c

index 47c665eeaf174da1dbbc59fe6fa7dc3f1e6643e1..7c91bf2bbdfdb2e42460092610cb63d81a0499c5 100644 (file)
@@ -1340,11 +1340,12 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
        mutex_unlock(&dev->struct_mutex);
 
        switch (ret) {
+       case -EAGAIN:
+               set_need_resched();
        case 0:
        case -ERESTARTSYS:
                return VM_FAULT_NOPAGE;
        case -ENOMEM:
-       case -EAGAIN:
                return VM_FAULT_OOM;
        default:
                return VM_FAULT_SIGBUS;