]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Only finalize atomic_obj if it was initialized
authorMario Limonciello <mario.limonciello@amd.com>
Tue, 15 Jul 2025 19:41:46 +0000 (14:41 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 28 Jul 2025 20:28:34 +0000 (16:28 -0400)
[Why]
If amdgpu_dm failed to initalize before amdgpu_dm_initialize_drm_device()
completed then freeing atomic_obj will lead to list corruption.

[How]
Check if atomic_obj state is initialized before trying to free.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Ivan Lipski <ivan.lipski@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 468c9c5a6773e9dd03aa7efdfe0ca6eff0c2eb93..5db0df2b0ecb30b9df9652e6beb10fabfa80dd86 100644 (file)
@@ -5410,7 +5410,8 @@ fail:
 
 static void amdgpu_dm_destroy_drm_device(struct amdgpu_display_manager *dm)
 {
-       drm_atomic_private_obj_fini(&dm->atomic_obj);
+       if (dm->atomic_obj.state)
+               drm_atomic_private_obj_fini(&dm->atomic_obj);
 }
 
 /******************************************************************************