Commit 1ff9fc70 authored by Umesh Nerlige Ramappa's avatar Umesh Nerlige Ramappa Committed by John Harrison

drm/i915/pmu: Fix wakeref leak in PMU busyness during reset

GuC PMU busyness gets gt wakeref if awake, but fails to release the
wakeref if a reset is in progress. Release the wakeref if it was
acquried successfully.

v2: Simplify the fix (Ashutosh)

Fixes: 2a67b18e ("drm/i915/pmu: Fix synchronization of PMU callback with reset")
Signed-off-by: default avatarUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211207020239.43402-1-umesh.nerlige.ramappa@intel.com
parent 0b64e2e4
...@@ -1206,7 +1206,7 @@ static ktime_t guc_engine_busyness(struct intel_engine_cs *engine, ktime_t *now) ...@@ -1206,7 +1206,7 @@ static ktime_t guc_engine_busyness(struct intel_engine_cs *engine, ktime_t *now)
* start_gt_clk is derived from GuC state. To get a consistent * start_gt_clk is derived from GuC state. To get a consistent
* view of activity, we query the GuC state only if gt is awake. * view of activity, we query the GuC state only if gt is awake.
*/ */
if (intel_gt_pm_get_if_awake(gt) && !in_reset) { if (!in_reset && intel_gt_pm_get_if_awake(gt)) {
stats_saved = *stats; stats_saved = *stats;
gt_stamp_saved = guc->timestamp.gt_stamp; gt_stamp_saved = guc->timestamp.gt_stamp;
guc_update_engine_gt_clks(engine); guc_update_engine_gt_clks(engine);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment