When vc4_save_hang_state() encounters an early return condition, it
returns without freeing the previously allocated `kernel_state`,
leaking memory.
Add the missing kfree() calls in both early return paths.
Fixes: 214613656b51 ("drm/vc4: Add an interface for capturing the GPU state
after a hang.")
Signed-off-by: Maíra Canal <[email protected]>
---
drivers/gpu/drm/vc4/vc4_gem.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c
index
ab16164b5edaf382b9c4bf1f08766748cac77fcc..f943ff7da28ae528c0fdfac76e989a2d5286d193
100644
--- a/drivers/gpu/drm/vc4/vc4_gem.c
+++ b/drivers/gpu/drm/vc4/vc4_gem.c
@@ -172,6 +172,7 @@ vc4_save_hang_state(struct drm_device *dev)
exec[1] = vc4_first_render_job(vc4);
if (!exec[0] && !exec[1]) {
spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+ kfree(kernel_state);
return;
}
@@ -192,6 +193,7 @@ vc4_save_hang_state(struct drm_device *dev)
if (!kernel_state->bo) {
spin_unlock_irqrestore(&vc4->job_lock, irqflags);
+ kfree(kernel_state);
return;
}
--
2.52.0