[Intel-gfx] [PATCH v3] drm/i915: Mark i915.inject_load_failure as being hit

Michał Winiarski michal.winiarski at intel.com
Wed Jun 6 14:50:09 UTC 2018


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 <chris at chris-wilson.co.uk>
> Cc: Michał Winiarski <michal.winiarski at intel.com>
> Cc: Imre Deak <imre.deak at intel.com>

If the other Michał doesn't mind ;)

Reviewed-by: Michał Winiarski <michal.winiarski at 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
> 


More information about the Intel-gfx mailing list