Switch error injection testing from i915_inject_probe_failure to ALLOW_ERROR_INJECTION.
Signed-off-by: Juha-Pekka Heikkila <[email protected]> --- .../gpu/drm/i915/display/intel_connector.c | 14 +---- .../drm/i915/display/intel_display_driver.c | 5 +- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 4 +- drivers/gpu/drm/i915/gt/intel_gt.c | 9 +-- drivers/gpu/drm/i915/gt/intel_gt_print.h | 5 +- drivers/gpu/drm/i915/gt/intel_lrc.c | 4 -- drivers/gpu/drm/i915/gt/intel_wopcm.c | 3 - drivers/gpu/drm/i915/gt/intel_wopcm.h | 1 + drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 8 +-- drivers/gpu/drm/i915/gt/uc/intel_huc.c | 4 -- drivers/gpu/drm/i915/gt/uc/intel_uc.c | 17 +----- drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 60 +------------------ drivers/gpu/drm/i915/i915_driver.c | 12 +--- drivers/gpu/drm/i915/i915_params.c | 5 -- drivers/gpu/drm/i915/i915_params.h | 1 - drivers/gpu/drm/i915/i915_pci.c | 6 +- drivers/gpu/drm/i915/i915_utils.c | 30 +--------- drivers/gpu/drm/i915/i915_utils.h | 22 +------ drivers/gpu/drm/i915/intel_gvt.c | 3 - drivers/gpu/drm/i915/intel_uncore.c | 4 +- drivers/gpu/drm/xe/display/ext/i915_utils.c | 11 ---- 21 files changed, 18 insertions(+), 210 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c index 6a55854db5b6..aa8ac1130f5f 100644 --- a/drivers/gpu/drm/i915/display/intel_connector.c +++ b/drivers/gpu/drm/i915/display/intel_connector.c @@ -155,27 +155,17 @@ void intel_connector_destroy(struct drm_connector *connector) int intel_connector_register(struct drm_connector *_connector) { struct intel_connector *connector = to_intel_connector(_connector); - struct drm_i915_private *i915 = to_i915(_connector->dev); int ret; ret = intel_panel_register(connector); if (ret) - goto err; - - if (i915_inject_probe_failure(i915)) { - ret = -EFAULT; - goto err_panel; - } + return ret; intel_connector_debugfs_add(connector); return 0; - -err_panel: - intel_panel_unregister(connector); -err: - return ret; } +ALLOW_ERROR_INJECTION(intel_connector_register, ERRNO); void intel_connector_unregister(struct drm_connector *_connector) { diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c index f84a0b26b7a6..d53a76e30222 100644 --- a/drivers/gpu/drm/i915/display/intel_display_driver.c +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c @@ -205,12 +205,8 @@ void intel_display_driver_early_probe(struct intel_display *display) /* part #1: call before irq install */ int intel_display_driver_probe_noirq(struct intel_display *display) { - struct drm_i915_private *i915 = to_i915(display->drm); int ret; - if (i915_inject_probe_failure(i915)) - return -ENODEV; - if (HAS_DISPLAY(display)) { ret = drm_vblank_init(display->drm, INTEL_NUM_PIPES(display)); @@ -319,6 +315,7 @@ int intel_display_driver_probe_noirq(struct intel_display *display) return ret; } +ALLOW_ERROR_INJECTION(intel_display_driver_probe_noirq, ERRNO); static void set_display_access(struct intel_display *display, bool any_task_allowed, diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c index b721bbd23356..98a3a7a9de50 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c @@ -963,9 +963,6 @@ int intel_engines_init_mmio(struct intel_gt *gt) drm_WARN_ON(&i915->drm, engine_mask & GENMASK(BITS_PER_TYPE(mask) - 1, I915_NUM_ENGINES)); - if (i915_inject_probe_failure(i915)) - return -ENODEV; - for (class = 0; class < MAX_ENGINE_CLASS + 1; ++class) { setup_logical_ids(gt, logical_ids, class); @@ -1007,6 +1004,7 @@ int intel_engines_init_mmio(struct intel_gt *gt) intel_engines_free(gt); return err; } +ALLOW_ERROR_INJECTION(intel_engines_init_mmio, ERRNO); void intel_engine_init_execlists(struct intel_engine_cs *engine) { diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c index 3d3b1ba76e2b..ac527d878820 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt.c +++ b/drivers/gpu/drm/i915/gt/intel_gt.c @@ -686,10 +686,6 @@ int intel_gt_init(struct intel_gt *gt) { int err; - err = i915_inject_probe_error(gt->i915, -ENODEV); - if (err) - return err; - intel_gt_init_workarounds(gt); /* @@ -740,10 +736,6 @@ int intel_gt_init(struct intel_gt *gt) if (err) goto err_gt; - err = i915_inject_probe_error(gt->i915, -EIO); - if (err) - goto err_gt; - intel_uc_init_late(>->uc); intel_migrate_init(>->migrate, gt); @@ -766,6 +758,7 @@ int intel_gt_init(struct intel_gt *gt) intel_uncore_forcewake_put(gt->uncore, FORCEWAKE_ALL); return err; } +ALLOW_ERROR_INJECTION(intel_gt_init, ERRNO); void intel_gt_driver_remove(struct intel_gt *gt) { diff --git a/drivers/gpu/drm/i915/gt/intel_gt_print.h b/drivers/gpu/drm/i915/gt/intel_gt_print.h index 7fdc78c79273..48f0afd05fd8 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt_print.h +++ b/drivers/gpu/drm/i915/gt/intel_gt_print.h @@ -36,10 +36,7 @@ #define gt_probe_error(_gt, _fmt, ...) \ do { \ - if (i915_error_injected()) \ - gt_dbg(_gt, _fmt, ##__VA_ARGS__); \ - else \ - gt_err(_gt, _fmt, ##__VA_ARGS__); \ + gt_err(_gt, _fmt, ##__VA_ARGS__); \ } while (0) #define gt_WARN(_gt, _condition, _fmt, ...) \ diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c index c481b56fa67d..2d33839b0413 100644 --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@ -1909,10 +1909,6 @@ void lrc_init_wa_ctx(struct intel_engine_cs *engine) __i915_gem_object_flush_map(wa_ctx->vma->obj, 0, batch_ptr - batch); __i915_gem_object_release_map(wa_ctx->vma->obj); - /* Verify that we can handle failure to setup the wa_ctx */ - if (!err) - err = i915_inject_probe_error(engine->i915, -ENODEV); - err_unpin: if (err) i915_vma_unpin(wa_ctx->vma); diff --git a/drivers/gpu/drm/i915/gt/intel_wopcm.c b/drivers/gpu/drm/i915/gt/intel_wopcm.c index 7ebbcc191c2d..dd9edef6a8c1 100644 --- a/drivers/gpu/drm/i915/gt/intel_wopcm.c +++ b/drivers/gpu/drm/i915/gt/intel_wopcm.c @@ -251,9 +251,6 @@ void intel_wopcm_init(struct intel_wopcm *wopcm) GEM_BUG_ON(huc_fw_size >= wopcm_size); GEM_BUG_ON(ctx_rsvd + WOPCM_RESERVED_SIZE >= wopcm_size); - if (i915_inject_probe_failure(i915)) - return; - if (__wopcm_regs_locked(gt->uncore, &guc_wopcm_base, &guc_wopcm_size)) { drm_dbg(&i915->drm, "GuC WOPCM is already locked [%uK, %uK)\n", guc_wopcm_base / SZ_1K, guc_wopcm_size / SZ_1K); diff --git a/drivers/gpu/drm/i915/gt/intel_wopcm.h b/drivers/gpu/drm/i915/gt/intel_wopcm.h index d2038b6de5e7..73dc6ff3a894 100644 --- a/drivers/gpu/drm/i915/gt/intel_wopcm.h +++ b/drivers/gpu/drm/i915/gt/intel_wopcm.h @@ -56,4 +56,5 @@ static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm) void intel_wopcm_init_early(struct intel_wopcm *wopcm); void intel_wopcm_init(struct intel_wopcm *wopcm); +int intel_wopcm_init_inject_failure(void); #endif diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c index 2c651ec024ef..f1e53312ed90 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c @@ -266,10 +266,6 @@ int intel_guc_ct_init(struct intel_guc_ct *ct) u32 *cmds; int err; - err = i915_inject_probe_error(guc_to_i915(guc), -ENXIO); - if (err) - return err; - GEM_BUG_ON(ct->vma); blob_size = 2 * CTB_DESC_SIZE + CTB_H2G_BUFFER_SIZE + CTB_G2H_BUFFER_SIZE; @@ -306,6 +302,7 @@ int intel_guc_ct_init(struct intel_guc_ct *ct) return 0; } +ALLOW_ERROR_INJECTION(intel_guc_ct_init, ERRNO); /** * intel_guc_ct_fini - Fini buffer-based communication @@ -1394,9 +1391,6 @@ static void ct_dead_ct_worker_func(struct work_struct *w) if (ct->dead_ct_reported) return; - if (i915_error_injected()) - return; - ct->dead_ct_reported = true; guc_info(guc, "CTB is dead - reason=0x%X\n", ct->dead_ct_reason); diff --git a/drivers/gpu/drm/i915/gt/uc/intel_huc.c b/drivers/gpu/drm/i915/gt/uc/intel_huc.c index 456d3372eef8..f3249b98c992 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c @@ -541,10 +541,6 @@ int intel_huc_auth(struct intel_huc *huc, enum intel_huc_authentication_type typ if (intel_huc_is_authenticated(huc, type)) return -EEXIST; - ret = i915_inject_probe_error(gt->i915, -ENXIO); - if (ret) - goto fail; - switch (type) { case INTEL_HUC_AUTH_BY_GUC: ret = intel_guc_auth_huc(guc, intel_guc_ggtt_offset(guc, huc->fw.rsa_data)); diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c index 4a3493e8d433..bd07c72a66fc 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c @@ -60,10 +60,6 @@ static int __intel_uc_reset_hw(struct intel_uc *uc) int ret; u32 guc_status; - ret = i915_inject_probe_error(gt->i915, -ENXIO); - if (ret) - return ret; - ret = intel_reset_guc(gt); if (ret) { gt_err(gt, "Failed to reset GuC, ret = %d\n", ret); @@ -220,15 +216,10 @@ static void guc_handle_mmio_msg(struct intel_guc *guc) static int guc_enable_communication(struct intel_guc *guc) { struct intel_gt *gt = guc_to_gt(guc); - struct drm_i915_private *i915 = gt->i915; int ret; GEM_BUG_ON(intel_guc_ct_enabled(&guc->ct)); - ret = i915_inject_probe_error(i915, -ENXIO); - if (ret) - return ret; - ret = intel_guc_ct_enable(&guc->ct); if (ret) return ret; @@ -323,9 +314,6 @@ static int __uc_init(struct intel_uc *uc) if (!intel_uc_uses_guc(uc)) return 0; - if (i915_inject_probe_failure(uc_to_gt(uc)->i915)) - return -ENOMEM; - ret = intel_guc_init(guc); if (ret) return ret; @@ -338,6 +326,7 @@ static int __uc_init(struct intel_uc *uc) return 0; } +ALLOW_ERROR_INJECTION(__uc_init, ERRNO); static void __uc_fini(struct intel_uc *uc) { @@ -381,10 +370,6 @@ static int uc_init_wopcm(struct intel_uc *uc) GEM_BUG_ON(!(size & GUC_WOPCM_SIZE_MASK)); GEM_BUG_ON(size & ~GUC_WOPCM_SIZE_MASK); - err = i915_inject_probe_error(gt->i915, -ENXIO); - if (err) - return err; - mask = GUC_WOPCM_SIZE_MASK | GUC_WOPCM_SIZE_LOCKED; err = intel_uncore_write_and_verify(uncore, GUC_WOPCM_SIZE, size, mask, size | GUC_WOPCM_SIZE_LOCKED); diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c index e848a04a80dc..fd04fe892c28 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c @@ -542,43 +542,6 @@ void intel_uc_fw_init_early(struct intel_uc_fw *uc_fw, INTEL_UC_FIRMWARE_NOT_SUPPORTED); } -static void __force_fw_fetch_failures(struct intel_uc_fw *uc_fw, int e) -{ - struct drm_i915_private *i915 = __uc_fw_to_gt(uc_fw)->i915; - bool user = e == -EINVAL; - - if (i915_inject_probe_error(i915, e)) { - /* non-existing blob */ - uc_fw->file_selected.path = "<invalid>"; - uc_fw->user_overridden = user; - } else if (i915_inject_probe_error(i915, e)) { - /* require next major version */ - uc_fw->file_wanted.ver.major += 1; - uc_fw->file_wanted.ver.minor = 0; - uc_fw->user_overridden = user; - } else if (i915_inject_probe_error(i915, e)) { - /* require next minor version */ - uc_fw->file_wanted.ver.minor += 1; - uc_fw->user_overridden = user; - } else if (uc_fw->file_wanted.ver.major && - i915_inject_probe_error(i915, e)) { - /* require prev major version */ - uc_fw->file_wanted.ver.major -= 1; - uc_fw->file_wanted.ver.minor = 0; - uc_fw->user_overridden = user; - } else if (uc_fw->file_wanted.ver.minor && - i915_inject_probe_error(i915, e)) { - /* require prev minor version - hey, this should work! */ - uc_fw->file_wanted.ver.minor -= 1; - uc_fw->user_overridden = user; - } else if (user && i915_inject_probe_error(i915, e)) { - /* officially unsupported platform */ - uc_fw->file_wanted.ver.major = 0; - uc_fw->file_wanted.ver.minor = 0; - uc_fw->user_overridden = true; - } -} - static void uc_unpack_css_version(struct intel_uc_fw_ver *ver, u32 css_value) { /* Get version numbers from the CSS header */ @@ -766,7 +729,7 @@ static int guc_check_version_range(struct intel_uc_fw *uc_fw) return -EINVAL; } - return i915_inject_probe_error(gt->i915, -EINVAL); + return 0; } static int check_fw_header(struct intel_gt *gt, @@ -905,13 +868,6 @@ int intel_uc_fw_fetch(struct intel_uc_fw *uc_fw) GEM_BUG_ON(!gt->wopcm.size); GEM_BUG_ON(!intel_uc_fw_is_enabled(uc_fw)); - err = i915_inject_probe_error(i915, -ENXIO); - if (err) - goto fail; - - __force_fw_fetch_failures(uc_fw, -EINVAL); - __force_fw_fetch_failures(uc_fw, -ESTALE); - err = try_firmware_load(uc_fw, &fw); memcpy(&file_ideal, &uc_fw->file_wanted, sizeof(file_ideal)); @@ -1088,10 +1044,6 @@ static int uc_fw_xfer(struct intel_uc_fw *uc_fw, u32 dst_offset, u32 dma_flags) u64 offset; int ret; - ret = i915_inject_probe_error(gt->i915, -ETIMEDOUT); - if (ret) - return ret; - intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL); /* Set the source address for the uCode */ @@ -1155,16 +1107,11 @@ int intel_uc_fw_mark_load_failed(struct intel_uc_fw *uc_fw, int err) */ int intel_uc_fw_upload(struct intel_uc_fw *uc_fw, u32 dst_offset, u32 dma_flags) { - struct intel_gt *gt = __uc_fw_to_gt(uc_fw); int err; /* make sure the status was cleared the last time we reset the uc */ GEM_BUG_ON(intel_uc_fw_is_loaded(uc_fw)); - err = i915_inject_probe_error(gt->i915, -ENOEXEC); - if (err) - return err; - if (!intel_uc_fw_is_loadable(uc_fw)) return -ENOEXEC; @@ -1198,10 +1145,6 @@ static int uc_fw_rsa_data_create(struct intel_uc_fw *uc_fw) void *vaddr; int err; - err = i915_inject_probe_error(gt->i915, -ENXIO); - if (err) - return err; - if (!uc_fw_need_rsa_in_memory(uc_fw)) return 0; @@ -1243,6 +1186,7 @@ static int uc_fw_rsa_data_create(struct intel_uc_fw *uc_fw) i915_vma_unpin_and_release(&vma, 0); return err; } +ALLOW_ERROR_INJECTION(uc_fw_rsa_data_create, ERRNO); static void uc_fw_rsa_data_destroy(struct intel_uc_fw *uc_fw) { diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c index b46cb54ef5dc..a0ff6cb89853 100644 --- a/drivers/gpu/drm/i915/i915_driver.c +++ b/drivers/gpu/drm/i915/i915_driver.c @@ -223,9 +223,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) struct intel_display *display = dev_priv->display; int ret = 0; - if (i915_inject_probe_failure(dev_priv)) - return -ENODEV; - intel_device_info_runtime_init_early(dev_priv); intel_step_init(dev_priv); @@ -275,6 +272,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) i915_workqueues_cleanup(dev_priv); return ret; } +ALLOW_ERROR_INJECTION(i915_driver_early_probe, ERRNO); /** * i915_driver_late_release - cleanup the setup done in @@ -317,9 +315,6 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv) struct intel_gt *gt; int ret, i; - if (i915_inject_probe_failure(dev_priv)) - return -ENODEV; - ret = intel_gmch_bridge_setup(dev_priv); if (ret < 0) return ret; @@ -357,6 +352,7 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv) return ret; } +ALLOW_ERROR_INJECTION(i915_driver_mmio_probe, ERRNO); /** * i915_driver_mmio_release - cleanup the setup done in i915_driver_mmio_probe() @@ -464,9 +460,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv) struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); int ret; - if (i915_inject_probe_failure(dev_priv)) - return -ENODEV; - if (HAS_PPGTT(dev_priv)) { if (intel_vgpu_active(dev_priv) && !intel_vgpu_has_full_ppgtt(dev_priv)) { @@ -594,6 +587,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv) i915_perf_fini(dev_priv); return ret; } +ALLOW_ERROR_INJECTION(i915_driver_hw_probe, ERRNO); /** * i915_driver_hw_remove - cleanup the setup done in i915_driver_hw_probe() diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c index 37746dd619fd..34ed82bb1b1a 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c @@ -110,11 +110,6 @@ i915_param_named_unsafe(huc_firmware_path, charp, 0400, i915_param_named_unsafe(gsc_firmware_path, charp, 0400, "GSC firmware path to use instead of the default one"); -#if IS_ENABLED(CONFIG_DRM_I915_DEBUG) -i915_param_named_unsafe(inject_probe_failure, uint, 0400, - "Force an error after a number of failure check points (0:disabled (default), N:force failure at the Nth failure check point)"); -#endif - #if IS_ENABLED(CONFIG_DRM_I915_GVT) i915_param_named(enable_gvt, bool, 0400, "Enable support for Intel GVT-g graphics virtualization host support(default:false)"); diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h index 0fbcb5b6d7bf..4d9d4cd3220d 100644 --- a/drivers/gpu/drm/i915/i915_params.h +++ b/drivers/gpu/drm/i915/i915_params.h @@ -55,7 +55,6 @@ struct drm_printer; param(bool, memtest, false, 0400) \ param(int, mmio_debug, -IS_ENABLED(CONFIG_DRM_I915_DEBUG_MMIO), 0600) \ param(unsigned int, reset, 3, 0600) \ - param(unsigned int, inject_probe_failure, 0, 0) \ param(char *, force_probe, CONFIG_DRM_I915_FORCE_PROBE, 0400) \ param(unsigned int, request_timeout_ms, CONFIG_DRM_I915_REQUEST_TIMEOUT, CONFIG_DRM_I915_REQUEST_TIMEOUT ? 0600 : 0) \ param(unsigned int, lmem_size, 0, 0400) \ diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c index b2e311f4791a..d966a00520f1 100644 --- a/drivers/gpu/drm/i915/i915_pci.c +++ b/drivers/gpu/drm/i915/i915_pci.c @@ -999,11 +999,6 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) if (err) return err; - if (i915_inject_probe_failure(pdev_to_i915(pdev))) { - i915_pci_remove(pdev); - return -ENODEV; - } - err = i915_live_selftests(pdev); if (err) { i915_pci_remove(pdev); @@ -1018,6 +1013,7 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) return 0; } +ALLOW_ERROR_INJECTION(i915_pci_probe, ERRNO); static void i915_pci_shutdown(struct pci_dev *pdev) { diff --git a/drivers/gpu/drm/i915/i915_utils.c b/drivers/gpu/drm/i915/i915_utils.c index 49f7ed413132..cd3fc51ccf83 100644 --- a/drivers/gpu/drm/i915/i915_utils.c +++ b/drivers/gpu/drm/i915/i915_utils.c @@ -16,37 +16,9 @@ void add_taint_for_CI(struct drm_i915_private *i915, unsigned int taint) drm_notice(&i915->drm, "CI tainted: %#x by %pS\n", taint, __builtin_return_address(0)); - /* Failures that occur during fault injection testing are expected */ - if (!i915_error_injected()) - __add_taint_for_CI(taint); + __add_taint_for_CI(taint); } -#if IS_ENABLED(CONFIG_DRM_I915_DEBUG) -static unsigned int i915_probe_fail_count; - -int __i915_inject_probe_error(struct drm_i915_private *i915, int err, - const char *func, int line) -{ - if (i915_probe_fail_count >= i915_modparams.inject_probe_failure) - return 0; - - if (++i915_probe_fail_count < i915_modparams.inject_probe_failure) - return 0; - - drm_info(&i915->drm, "Injecting failure %d at checkpoint %u [%s:%d]\n", - err, i915_modparams.inject_probe_failure, func, line); - - i915_modparams.inject_probe_failure = 0; - return err; -} - -bool i915_error_injected(void) -{ - return i915_probe_fail_count && !i915_modparams.inject_probe_failure; -} - -#endif - bool i915_vtd_active(struct drm_i915_private *i915) { if (device_iommu_mapped(i915->drm.dev)) diff --git a/drivers/gpu/drm/i915/i915_utils.h b/drivers/gpu/drm/i915/i915_utils.h index a0c892e4c40d..5f01a9ca07c2 100644 --- a/drivers/gpu/drm/i915/i915_utils.h +++ b/drivers/gpu/drm/i915/i915_utils.h @@ -41,28 +41,8 @@ struct drm_i915_private; #define MISSING_CASE(x) WARN(1, "Missing case (%s == %ld)\n", \ __stringify(x), (long)(x)) -#if IS_ENABLED(CONFIG_DRM_I915_DEBUG) - -int __i915_inject_probe_error(struct drm_i915_private *i915, int err, - const char *func, int line); -#define i915_inject_probe_error(_i915, _err) \ - __i915_inject_probe_error((_i915), (_err), __func__, __LINE__) -bool i915_error_injected(void); - -#else - -#define i915_inject_probe_error(i915, e) ({ BUILD_BUG_ON_INVALID(i915); 0; }) -#define i915_error_injected() false - -#endif - -#define i915_inject_probe_failure(i915) i915_inject_probe_error((i915), -ENODEV) - #define i915_probe_error(i915, fmt, ...) ({ \ - if (i915_error_injected()) \ - drm_dbg(&(i915)->drm, fmt, ##__VA_ARGS__); \ - else \ - drm_err(&(i915)->drm, fmt, ##__VA_ARGS__); \ + drm_err(&(i915)->drm, fmt, ##__VA_ARGS__); \ }) #define fetch_and_zero(ptr) ({ \ diff --git a/drivers/gpu/drm/i915/intel_gvt.c b/drivers/gpu/drm/i915/intel_gvt.c index dae9dce7d1b3..ee4097ca0b85 100644 --- a/drivers/gpu/drm/i915/intel_gvt.c +++ b/drivers/gpu/drm/i915/intel_gvt.c @@ -236,9 +236,6 @@ EXPORT_SYMBOL_NS_GPL(intel_gvt_clear_ops, "I915_GVT"); */ int intel_gvt_init(struct drm_i915_private *dev_priv) { - if (i915_inject_probe_failure(dev_priv)) - return -ENODEV; - mutex_lock(&intel_gvt_mutex); list_add_tail(&dev_priv->vgpu.entry, &intel_gvt_devices); if (intel_gvt_ops) diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c index 8cb59f8d1f4c..aed0adadf31b 100644 --- a/drivers/gpu/drm/i915/intel_uncore.c +++ b/drivers/gpu/drm/i915/intel_uncore.c @@ -2070,9 +2070,6 @@ static int __fw_domain_init(struct intel_uncore *uncore, GEM_BUG_ON(domain_id >= FW_DOMAIN_ID_COUNT); GEM_BUG_ON(uncore->fw_domain[domain_id]); - if (i915_inject_probe_failure(uncore->i915)) - return -ENOMEM; - d = kzalloc(sizeof(*d), GFP_KERNEL); if (!d) return -ENOMEM; @@ -2116,6 +2113,7 @@ static int __fw_domain_init(struct intel_uncore *uncore, return 0; } +ALLOW_ERROR_INJECTION(__fw_domain_init, ERRNO); static void fw_domain_fini(struct intel_uncore *uncore, enum forcewake_domain_id domain_id) diff --git a/drivers/gpu/drm/xe/display/ext/i915_utils.c b/drivers/gpu/drm/xe/display/ext/i915_utils.c index 1421c2a7b64d..111f03e542bc 100644 --- a/drivers/gpu/drm/xe/display/ext/i915_utils.c +++ b/drivers/gpu/drm/xe/display/ext/i915_utils.c @@ -14,14 +14,3 @@ bool i915_vtd_active(struct drm_i915_private *i915) /* Running as a guest, we assume the host is enforcing VT'd */ return i915_run_as_guest(); } - -#if IS_ENABLED(CONFIG_DRM_I915_DEBUG) - -/* i915 specific, just put here for shutting it up */ -int __i915_inject_probe_error(struct drm_i915_private *i915, int err, - const char *func, int line) -{ - return 0; -} - -#endif -- 2.43.0
