diff options
| author | 2010-11-07 09:18:22 +0000 | |
|---|---|---|
| committer | 2010-11-07 09:18:22 +0000 | |
| commit | 045e769ab69ce94dedbcdcfd46c2578b385c2986 (patch) | |
| tree | efd9e70e491820bc3d8bad2eb03d56bae223ce43 | |
| parent | drm/i915: kill mappable/fenceable disdinction (diff) | |
| download | linux-dev-045e769ab69ce94dedbcdcfd46c2578b385c2986.tar.xz linux-dev-045e769ab69ce94dedbcdcfd46c2578b385c2986.zip | |
drm/i915: Handle GPU hangs during fault gracefully.
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>
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 47c665eeaf17..7c91bf2bbdfd 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -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; |
