Quoting Michal Wajdeczko (2019-08-17 14:11:42) > We can rely on firmware status AVAILABLE to determine if any > firmware cleanup is required. Also don't unconditionally reset > fw status to SELECTED as we will loose MISSING/ERROR codes. > > Signed-off-by: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > 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 890ae6b4a3d0..527de1fd9d78 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c > @@ -559,18 +559,16 @@ void intel_uc_fw_fini(struct intel_uc_fw *uc_fw) > > /** > * intel_uc_fw_cleanup_fetch - cleanup uC firmware > - * > * @uc_fw: uC firmware > * > * Cleans up uC firmware by releasing the firmware GEM obj. > */ > void intel_uc_fw_cleanup_fetch(struct intel_uc_fw *uc_fw) > { > - struct drm_i915_gem_object *obj; > + if (!intel_uc_fw_is_available(uc_fw)) > + return; > > - obj = fetch_and_zero(&uc_fw->obj); > - if (obj) > - i915_gem_object_put(obj); > + i915_gem_object_put(fetch_and_zero(&uc_fw->obj)); Ok, to have an object requires the fw to have successfully been loaded. Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx