[PATCH v2 2/2] drm/xe: Allow to inject error in early probe

Francois Dugast francois.dugast at intel.com
Wed Mar 12 08:20:16 UTC 2025


On Tue, Mar 11, 2025 at 11:34:56AM -0700, Lucas De Marchi wrote:
> Allow to test if driver behaves correctly when xe_pcode_probe_early()
> fails. Note that this is not sufficient for testing survivability mode
> as it's still required to read the hw to check for errors, which doesn't
> happen on an injected failure.
> 
> To complete the early probe coverage, allow injection in the other
> functions as well: xe_mmio_probe_early() and xe_device_probe_early().
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>

Reviewed-by: Francois Dugast <francois.dugast at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_device.c | 1 +
>  drivers/gpu/drm/xe/xe_mmio.c   | 1 +
>  drivers/gpu/drm/xe/xe_pcode.c  | 2 ++
>  3 files changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 023290e5be392..1b443f54ee16a 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -728,6 +728,7 @@ int xe_device_probe_early(struct xe_device *xe)
>  
>  	return 0;
>  }
> +ALLOW_ERROR_INJECTION(xe_device_probe_early, ERRNO); /* See xe_pci_probe() */
>  
>  static int probe_has_flat_ccs(struct xe_device *xe)
>  {
> diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
> index 70a36e7775466..e1470fcf95d6d 100644
> --- a/drivers/gpu/drm/xe/xe_mmio.c
> +++ b/drivers/gpu/drm/xe/xe_mmio.c
> @@ -138,6 +138,7 @@ int xe_mmio_probe_early(struct xe_device *xe)
>  
>  	return devm_add_action_or_reset(xe->drm.dev, mmio_fini, xe);
>  }
> +ALLOW_ERROR_INJECTION(xe_mmio_probe_early, ERRNO); /* See xe_pci_probe() */
>  
>  /**
>   * xe_mmio_init() - Initialize an MMIO instance
> diff --git a/drivers/gpu/drm/xe/xe_pcode.c b/drivers/gpu/drm/xe/xe_pcode.c
> index 9333ce776a6e5..cf955b3ed52cd 100644
> --- a/drivers/gpu/drm/xe/xe_pcode.c
> +++ b/drivers/gpu/drm/xe/xe_pcode.c
> @@ -7,6 +7,7 @@
>  
>  #include <linux/delay.h>
>  #include <linux/errno.h>
> +#include <linux/error-injection.h>
>  
>  #include <drm/drm_managed.h>
>  
> @@ -323,3 +324,4 @@ int xe_pcode_probe_early(struct xe_device *xe)
>  {
>  	return xe_pcode_ready(xe, false);
>  }
> +ALLOW_ERROR_INJECTION(xe_pcode_probe_early, ERRNO); /* See xe_pci_probe */
> 
> -- 
> 2.48.1
> 


More information about the Intel-xe mailing list