]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
drm/radeon: fix memory leak in radeon_ring_restore() on lock failure
authorYuho Choi <dbgh9129@gmail.com>
Thu, 16 Apr 2026 19:55:37 +0000 (15:55 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 17 Apr 2026 19:41:16 +0000 (15:41 -0400)
commit82f1d6042611d45b8b9de423bbcb4e0ced9ec62b
treef6d017f8526c4a661799834724815ea01c599c73
parentce3b24eb3ee8f82de851535f516bf21f83e82259
drm/radeon: fix memory leak in radeon_ring_restore() on lock failure

radeon_ring_restore() takes ownership of the data buffer allocated by
radeon_ring_backup(). The caller (radeon_gpu_reset()) only frees it in
the non-restore branch; in the restore branch it relies on
radeon_ring_restore() to free it.

If radeon_ring_lock() fails, the function returned early without calling
kvfree(data), leaking the ring backup buffer on every GPU reset that
fails at the lock stage. During repeated GPU resets this causes
cumulative kernel memory exhaustion.

Free data before returning the error.

Fixes: 55d7c22192be ("drm/radeon: implement ring saving on reset v4")
Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_ring.c