diff mbox series

video: sh7760fb: Fix a possible memory leak in sh7760fb_alloc_mem()

Message ID 20241026035634.467-1-thunder.leizhen@huawei.com
State New
Headers show
Series video: sh7760fb: Fix a possible memory leak in sh7760fb_alloc_mem() | expand

Commit Message

Leizhen (ThunderTown) Oct. 26, 2024, 3:56 a.m. UTC
When information such as info->screen_base is not ready, calling
sh7760fb_free_mem() does not release memory correctly. Call
dma_free_coherent() instead.

Fixes: 4a25e41831ee ("video: sh7760fb: SH7760/SH7763 LCDC framebuffer driver")
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
---
 drivers/video/fbdev/sh7760fb.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Helge Deller Nov. 14, 2024, 2:28 p.m. UTC | #1
On 10/28/24 11:41, Dmitry Baryshkov wrote:
> On Sat, Oct 26, 2024 at 11:56:34AM +0800, Zhen Lei wrote:
>> When information such as info->screen_base is not ready, calling
>> sh7760fb_free_mem() does not release memory correctly. Call
>> dma_free_coherent() instead.
>>
>> Fixes: 4a25e41831ee ("video: sh7760fb: SH7760/SH7763 LCDC framebuffer driver")
>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
>> ---
>>   drivers/video/fbdev/sh7760fb.c | 3 +--
>>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

applied to fbdev git tree.

Thanks!
Helge
diff mbox series

Patch

diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c
index 3d2a27fefc874a7..130adef2e468697 100644
--- a/drivers/video/fbdev/sh7760fb.c
+++ b/drivers/video/fbdev/sh7760fb.c
@@ -409,12 +409,11 @@  static int sh7760fb_alloc_mem(struct fb_info *info)
 		vram = PAGE_SIZE;
 
 	fbmem = dma_alloc_coherent(info->device, vram, &par->fbdma, GFP_KERNEL);
-
 	if (!fbmem)
 		return -ENOMEM;
 
 	if ((par->fbdma & SH7760FB_DMA_MASK) != SH7760FB_DMA_MASK) {
-		sh7760fb_free_mem(info);
+		dma_free_coherent(info->device, vram, fbmem, par->fbdma);
 		dev_err(info->device, "kernel gave me memory at 0x%08lx, which is"
 			"unusable for the LCDC\n", (unsigned long)par->fbdma);
 		return -ENOMEM;