From c2fd92f12d0afcc2376e90c6337b4bbdd25dd2a6 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Wed, 4 Jul 2012 22:18:42 +0200 Subject: [PATCH] --- yaml --- r: 318661 b: refs/heads/master c: a9340ccab547f24e3b398b7e3ebd792827ff1be1 h: refs/heads/master i: 318659: 9d15a451c1ab6e97212969f7584101588acd25a8 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 15032badb749..d467eeb416b5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0a6759c6bacb3998e3d9a7cf690177051238ad87 +refs/heads/master: a9340ccab547f24e3b398b7e3ebd792827ff1be1 diff --git a/trunk/drivers/gpu/drm/i915/i915_gem.c b/trunk/drivers/gpu/drm/i915/i915_gem.c index 7d285554333f..2b54142a46ed 100644 --- a/trunk/drivers/gpu/drm/i915/i915_gem.c +++ b/trunk/drivers/gpu/drm/i915/i915_gem.c @@ -1141,6 +1141,11 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) out: switch (ret) { case -EIO: + /* If this -EIO is due to a gpu hang, give the reset code a + * chance to clean up the mess. Otherwise return the proper + * SIGBUS. */ + if (!atomic_read(&dev_priv->mm.wedged)) + return VM_FAULT_SIGBUS; case -EAGAIN: /* Give the error handler a chance to run and move the * objects off the GPU active list. Next time we service the