drm/i915/uc: do not free err log on uc_fini
We need to keep the GuC error logs around to debug the load failure, so we can't clean them in the error unwind, which includes uc_fini(). Moving the cleanup to driver remove ensures that the logs stick around long enough for us to dump them. v2: reword commit msg (John) Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: John Harrison <John.C.Harrison@Intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20200326181121.16869-7-daniele.ceraolospurio@intel.com
This commit is contained in:
parent
293a554801
commit
a9410a6250
@ -635,8 +635,7 @@ void intel_gt_driver_remove(struct intel_gt *gt)
|
||||
{
|
||||
__intel_gt_disable(gt);
|
||||
|
||||
intel_uc_fini_hw(>->uc);
|
||||
intel_uc_fini(>->uc);
|
||||
intel_uc_driver_remove(>->uc);
|
||||
|
||||
intel_engines_release(gt);
|
||||
}
|
||||
|
@ -131,6 +131,13 @@ static void __uc_free_load_err_log(struct intel_uc *uc)
|
||||
i915_gem_object_put(log);
|
||||
}
|
||||
|
||||
void intel_uc_driver_remove(struct intel_uc *uc)
|
||||
{
|
||||
intel_uc_fini_hw(uc);
|
||||
intel_uc_fini(uc);
|
||||
__uc_free_load_err_log(uc);
|
||||
}
|
||||
|
||||
static inline bool guc_communication_enabled(struct intel_guc *guc)
|
||||
{
|
||||
return intel_guc_ct_enabled(&guc->ct);
|
||||
@ -311,8 +318,6 @@ static void __uc_fini(struct intel_uc *uc)
|
||||
{
|
||||
intel_huc_fini(&uc->huc);
|
||||
intel_guc_fini(&uc->guc);
|
||||
|
||||
__uc_free_load_err_log(uc);
|
||||
}
|
||||
|
||||
static int __uc_sanitize(struct intel_uc *uc)
|
||||
|
@ -34,6 +34,7 @@ struct intel_uc {
|
||||
|
||||
void intel_uc_init_early(struct intel_uc *uc);
|
||||
void intel_uc_driver_late_release(struct intel_uc *uc);
|
||||
void intel_uc_driver_remove(struct intel_uc *uc);
|
||||
void intel_uc_init_mmio(struct intel_uc *uc);
|
||||
void intel_uc_reset_prepare(struct intel_uc *uc);
|
||||
void intel_uc_suspend(struct intel_uc *uc);
|
||||
|
Loading…
x
Reference in New Issue
Block a user