drm/i915: Fix memleak in runtime wakeref tracking
If we untrack wakerefs, the actual count may reach zero. However the krealloced owners array is still there and needs to be taken care of. Free the owners unconditionally to fix the leak. Fixes:bd780f37a3
("drm/i915: Track all held rpm wakerefs") Reported-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20190701104442.9319-1-mika.kuoppala@linux.intel.com (cherry picked from commitc5f846eed2
) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
cf8f9aa1ed
commit
fdcc789a4a
|
@ -221,13 +221,11 @@ __untrack_all_wakerefs(struct intel_runtime_pm_debug *debug,
|
|||
static void
|
||||
dump_and_free_wakeref_tracking(struct intel_runtime_pm_debug *debug)
|
||||
{
|
||||
struct drm_printer p;
|
||||
if (debug->count) {
|
||||
struct drm_printer p = drm_debug_printer("i915");
|
||||
|
||||
if (!debug->count)
|
||||
return;
|
||||
|
||||
p = drm_debug_printer("i915");
|
||||
__print_intel_runtime_pm_wakeref(&p, debug);
|
||||
__print_intel_runtime_pm_wakeref(&p, debug);
|
||||
}
|
||||
|
||||
kfree(debug->owners);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue