> -----Original Message-----
> From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On Behalf Of
> Chris Wilson
> Sent: Wednesday, April 09, 2014 9:20 AM
> To: intel-gfx@lists.freedesktop.org
> Subject: [Intel-gfx] [PATCH 4/6] drm/i915: Mark device as wedged if we fail to
> resume
> 
> During module load, if we fail to initialise the rings, we abort the load 
> reporting
> EIO. However during resume, even though we report EIO as we fail to
> reinitialize the ringbuffers, the resume continues and the device is restored 
> -
> albeit in a non-functional state. As we cannot execute any commands on the
> GPU, it is effectively wedged, mark it so.
> 
> As we now preserve the ringbuffers across resume, this should prevent UXA
> from falling into the trap of repeatedly sending invalid batchbuffers and
> dropping all further rendering into /dev/null.
> 
> Reported-and-tested-by: Jiri Kosina <jkos...@suse.cz>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=76554
> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c
> b/drivers/gpu/drm/i915/i915_drv.c index 5d8250f7145d..629f8164a547 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -569,8 +569,10 @@ static int __i915_drm_thaw(struct drm_device *dev,
> bool restore_gtt_mappings)
>               drm_mode_config_reset(dev);
> 
>               mutex_lock(&dev->struct_mutex);
> -
> -             error = i915_gem_init_hw(dev);
> +             if (i915_gem_init_hw(dev)) {
> +                     DRM_ERROR("failed to re-initialize GPU, declaring
> wedged!\n");

The "int error = 0;" is not needed anymore. Other than that:

Reviewed-by: Oscar Mateo <oscar.ma...@intel.com>

> +                     atomic_set_mask(I915_WEDGED, &dev_priv-
> >gpu_error.reset_counter);
> +             }
>               mutex_unlock(&dev->struct_mutex);
> 
>               /* We need working interrupts for modeset enabling ... */ @@
> -613,7 +615,7 @@ static int __i915_drm_thaw(struct drm_device *dev, bool
> restore_gtt_mappings)
>       mutex_unlock(&dev_priv->modeset_restore_lock);
> 
>       intel_runtime_pm_put(dev_priv);
> -     return error;
> +     return 0;
>  }
> 
>  static int i915_drm_thaw(struct drm_device *dev)
> --
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to