| From f27fe7cb3f931e1b9348eea865616a1c9af9d968 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 26 Oct 2024 11:56:34 +0800 |
| Subject: fbdev: sh7760fb: Fix a possible memory leak in sh7760fb_alloc_mem() |
| |
| From: Zhen Lei <thunder.leizhen@huawei.com> |
| |
| [ Upstream commit f89d17ae2ac42931be2a0153fecbf8533280c927 ] |
| |
| 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> |
| Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> |
| Signed-off-by: Helge Deller <deller@gmx.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/video/fbdev/sh7760fb.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c |
| index 6adf048c1bae8..62e28d315d815 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; |
| -- |
| 2.43.0 |
| |