]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe: Allow to inject error in early probe
authorLucas De Marchi <lucas.demarchi@intel.com>
Fri, 14 Mar 2025 13:54:27 +0000 (06:54 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Fri, 21 Mar 2025 18:48:22 +0000 (11:48 -0700)
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().

Reviewed-by: Francois Dugast <francois.dugast@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250314-fix-survivability-v5-3-fdb3559ea965@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_device.c
drivers/gpu/drm/xe/xe_mmio.c
drivers/gpu/drm/xe/xe_pcode.c

index 0e8805f93468dcf2ad39f54ebf5bd75a69f63918..1ffb7d1f6be6652bd41b534f0691ff5aea04d572 100644 (file)
@@ -735,6 +735,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)
 {
index 13e06a956ceb04d3e13eeeb0efcf63131b254006..096c38cc51c8362c47855d45e7017d84f6f7a8d4 100644 (file)
@@ -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
index 9333ce776a6e50c48e64dafd4480c3e507f0a90c..cf955b3ed52cd0704e499d60de7374b71db6f6d8 100644 (file)
@@ -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 */