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 47c665e..7c91bf2 100644 (file)
@@ -1340,11 +1340,12 @@ unlock:
        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;