lkml.org 
[lkml]   [2023]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v5.10 1/1] drm/amdgpu: add error handling for drm_fb_helper_initial_config
Date
The type of return value of drm_fb_helper_initial_config is int, 
which may return wrong result, so we add error handling for it
to reclaim memory resource, and return when an error occurs.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: d38ceaf99ed0 (drm/amdgpu: add core driver (v4))
Signed-off-by: Danila Chernetsov <listdansp@mail.ru>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
index 43f29ee0e3b0..e445a2c9f569 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -348,8 +348,17 @@ int amdgpu_fbdev_init(struct amdgpu_device *adev)
if (!amdgpu_device_has_dc_support(adev))
drm_helper_disable_unused_functions(adev_to_drm(adev));

- drm_fb_helper_initial_config(&rfbdev->helper, bpp_sel);
- return 0;
+ ret = drm_fb_helper_initial_config(&rfbdev->helper, bpp_sel);
+ if (ret)
+ goto fini;
+
+ return 0;
+
+fini:
+ drm_fb_helper_fini(&rfbdev->helper);
+
+ kfree(rfbdev);
+ return ret;
}

void amdgpu_fbdev_fini(struct amdgpu_device *adev)
--
2.25.1
\
 
 \ /
  Last update: 2023-03-27 00:55    [W:0.044 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site