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 |
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 --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;
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(-)