On Wed, Jun 06, 2018 at 03:41:53PM +0100, Chris Wilson wrote:
> When we reach the magic value and do inject a fault into our module load,
> mark the module option as being hit. Since we fail from inside pci
> probe, the module load isn't actually aborted and the module (and
> paramters) are left lingering. igt can then inspect the parameter on its
> synchronous completion of modprobe to see if the fault injection was
> successful, and will keeping on injecting new faults until the module
> succeeds in loading having surpassed the number of fault points.
> 
> v2: Reset to 0 after being hit;
> 
> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
> Cc: Michał Winiarski <michal.winiar...@intel.com>
> Cc: Imre Deak <imre.d...@intel.com>

If the other Michał doesn't mind ;)

Reviewed-by: Michał Winiarski <michal.winiar...@intel.com>

-Michał

> ---
>  drivers/gpu/drm/i915/i915_drv.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 6b599b1837dc..be71fdf8d92e 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -67,6 +67,7 @@ bool __i915_inject_load_failure(const char *func, int line)
>       if (++i915_load_fail_count == i915_modparams.inject_load_failure) {
>               DRM_INFO("Injecting failure at checkpoint %u [%s:%d]\n",
>                        i915_modparams.inject_load_failure, func, line);
> +             i915_modparams.inject_load_failure = 0;
>               return true;
>       }
>  
> @@ -117,16 +118,15 @@ __i915_printk(struct drm_i915_private *dev_priv, const 
> char *level,
>  static bool i915_error_injected(struct drm_i915_private *dev_priv)
>  {
>  #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
> -     return i915_modparams.inject_load_failure &&
> -            i915_load_fail_count == i915_modparams.inject_load_failure;
> +     return i915_load_fail_count && !i915_modparams.inject_load_failure;
>  #else
>       return false;
>  #endif
>  }
>  
> -#define i915_load_error(dev_priv, fmt, ...)                               \
> -     __i915_printk(dev_priv,                                              \
> -                   i915_error_injected(dev_priv) ? KERN_DEBUG : KERN_ERR, \
> +#define i915_load_error(i915, fmt, ...)                                      
>  \
> +     __i915_printk(i915,                                              \
> +                   i915_error_injected(i915) ? KERN_DEBUG : KERN_ERR, \
>                     fmt, ##__VA_ARGS__)
>  
>  /* Map PCH device id to PCH type, or PCH_NONE if unknown. */
> -- 
> 2.17.1
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to