linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] video: offb: Deallocate the color map
@ 2018-02-13 18:07 ` Mathieu Malaterre
  2018-03-12 15:31   ` Bartlomiej Zolnierkiewicz
  0 siblings, 1 reply; 2+ messages in thread
From: Mathieu Malaterre @ 2018-02-13 18:07 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz
  Cc: Mathieu Malaterre, Rob Herring, dri-devel, linux-fbdev, linux-kernel

The function offb_destroy did not deallocate the color map leaving some
memory around after destruction. Call the color map deallocate function to
remove the memory leak.

Handle another case where color map should have been deallocated during an
error code path.

Fix memory leaks reported by kmemleak:

# dmesg
...
[ 1884.719941] kmemleak: 3 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
# cat /sys/kernel/debug/kmemleak
unreferenced object 0xde3d9000 (size 512):
  comm "swapper", pid 1, jiffies 4294892827 (age 1906.784s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 aa aa aa aa aa aa aa aa  ................
    55 55 55 55 55 55 55 55 ff ff ff ff ff ff ff ff  UUUUUUUU........
  backtrace:
    [<f1433400>] fb_alloc_cmap_gfp+0x54/0x15c
    [<cb6b409b>] offb_init_nodriver+0x8e8/0xa3c
    [<b5a1c019>] offb_init+0xd0/0x164
    [<322f82a3>] do_one_initcall+0x4c/0x178
    [<b592db9f>] kernel_init_freeable+0x138/0x1cc
    [<2a17fa0e>] kernel_init+0x24/0x118
    [<4079749a>] ret_from_kernel_thread+0x5c/0x64
unreferenced object 0xde3d9200 (size 512):
  comm "swapper", pid 1, jiffies 4294892827 (age 1906.784s)
  hex dump (first 32 bytes):
    00 00 00 00 aa aa aa aa 00 00 00 00 55 55 aa aa  ............UU..
    55 55 55 55 ff ff ff ff 55 55 55 55 ff ff ff ff  UUUU....UUUU....
  backtrace:
    [<4bf3594d>] fb_alloc_cmap_gfp+0x6c/0x15c
    [<cb6b409b>] offb_init_nodriver+0x8e8/0xa3c
    [<b5a1c019>] offb_init+0xd0/0x164
    [<322f82a3>] do_one_initcall+0x4c/0x178
    [<b592db9f>] kernel_init_freeable+0x138/0x1cc
    [<2a17fa0e>] kernel_init+0x24/0x118
    [<4079749a>] ret_from_kernel_thread+0x5c/0x64
unreferenced object 0xde3d9600 (size 512):
  comm "swapper", pid 1, jiffies 4294892827 (age 1906.784s)
  hex dump (first 32 bytes):
    00 00 aa aa 00 00 aa aa 00 00 aa aa 00 00 aa aa  ................
    55 55 ff ff 55 55 ff ff 55 55 ff ff 55 55 ff ff  UU..UU..UU..UU..
  backtrace:
    [<23a3ea03>] fb_alloc_cmap_gfp+0x84/0x15c
    [<cb6b409b>] offb_init_nodriver+0x8e8/0xa3c
    [<b5a1c019>] offb_init+0xd0/0x164
    [<322f82a3>] do_one_initcall+0x4c/0x178
    [<b592db9f>] kernel_init_freeable+0x138/0x1cc
    [<2a17fa0e>] kernel_init+0x24/0x118
    [<4079749a>] ret_from_kernel_thread+0x5c/0x64

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 drivers/video/fbdev/offb.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
index 6f65d132eba1..30786445de04 100644
--- a/drivers/video/fbdev/offb.c
+++ b/drivers/video/fbdev/offb.c
@@ -282,6 +282,7 @@ static void offb_destroy(struct fb_info *info)
 	if (info->screen_base)
 		iounmap(info->screen_base);
 	release_mem_region(info->apertures->ranges[0].base, info->apertures->ranges[0].size);
+	fb_dealloc_cmap(&info->cmap);
 	framebuffer_release(info);
 }
 
@@ -520,6 +521,7 @@ static void __init offb_init_fb(const char *name,
 	return;
 
 out_err:
+	fb_dealloc_cmap(&info->cmap);
 	iounmap(info->screen_base);
 out_aper:
 	iounmap(par->cmap_adr);
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] video: offb: Deallocate the color map
  2018-02-13 18:07 ` [PATCH] video: offb: Deallocate the color map Mathieu Malaterre
@ 2018-03-12 15:31   ` Bartlomiej Zolnierkiewicz
  0 siblings, 0 replies; 2+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2018-03-12 15:31 UTC (permalink / raw)
  To: Mathieu Malaterre; +Cc: Rob Herring, dri-devel, linux-fbdev, linux-kernel

On Tuesday, February 13, 2018 07:07:45 PM Mathieu Malaterre wrote:
> The function offb_destroy did not deallocate the color map leaving some
> memory around after destruction. Call the color map deallocate function to
> remove the memory leak.
> 
> Handle another case where color map should have been deallocated during an
> error code path.
> 
> Fix memory leaks reported by kmemleak:
> 
> # dmesg
> ...
> [ 1884.719941] kmemleak: 3 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
> # cat /sys/kernel/debug/kmemleak
> unreferenced object 0xde3d9000 (size 512):
>   comm "swapper", pid 1, jiffies 4294892827 (age 1906.784s)
>   hex dump (first 32 bytes):
>     00 00 00 00 00 00 00 00 aa aa aa aa aa aa aa aa  ................
>     55 55 55 55 55 55 55 55 ff ff ff ff ff ff ff ff  UUUUUUUU........
>   backtrace:
>     [<f1433400>] fb_alloc_cmap_gfp+0x54/0x15c
>     [<cb6b409b>] offb_init_nodriver+0x8e8/0xa3c
>     [<b5a1c019>] offb_init+0xd0/0x164
>     [<322f82a3>] do_one_initcall+0x4c/0x178
>     [<b592db9f>] kernel_init_freeable+0x138/0x1cc
>     [<2a17fa0e>] kernel_init+0x24/0x118
>     [<4079749a>] ret_from_kernel_thread+0x5c/0x64
> unreferenced object 0xde3d9200 (size 512):
>   comm "swapper", pid 1, jiffies 4294892827 (age 1906.784s)
>   hex dump (first 32 bytes):
>     00 00 00 00 aa aa aa aa 00 00 00 00 55 55 aa aa  ............UU..
>     55 55 55 55 ff ff ff ff 55 55 55 55 ff ff ff ff  UUUU....UUUU....
>   backtrace:
>     [<4bf3594d>] fb_alloc_cmap_gfp+0x6c/0x15c
>     [<cb6b409b>] offb_init_nodriver+0x8e8/0xa3c
>     [<b5a1c019>] offb_init+0xd0/0x164
>     [<322f82a3>] do_one_initcall+0x4c/0x178
>     [<b592db9f>] kernel_init_freeable+0x138/0x1cc
>     [<2a17fa0e>] kernel_init+0x24/0x118
>     [<4079749a>] ret_from_kernel_thread+0x5c/0x64
> unreferenced object 0xde3d9600 (size 512):
>   comm "swapper", pid 1, jiffies 4294892827 (age 1906.784s)
>   hex dump (first 32 bytes):
>     00 00 aa aa 00 00 aa aa 00 00 aa aa 00 00 aa aa  ................
>     55 55 ff ff 55 55 ff ff 55 55 ff ff 55 55 ff ff  UU..UU..UU..UU..
>   backtrace:
>     [<23a3ea03>] fb_alloc_cmap_gfp+0x84/0x15c
>     [<cb6b409b>] offb_init_nodriver+0x8e8/0xa3c
>     [<b5a1c019>] offb_init+0xd0/0x164
>     [<322f82a3>] do_one_initcall+0x4c/0x178
>     [<b592db9f>] kernel_init_freeable+0x138/0x1cc
>     [<2a17fa0e>] kernel_init+0x24/0x118
>     [<4079749a>] ret_from_kernel_thread+0x5c/0x64
> 
> Signed-off-by: Mathieu Malaterre <malat@debian.org>

Patch queued for 4.17, thanks.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-03-12 15:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20180213180825epcas1p44674e978de3188bb9a42970b28e20d52@epcas1p4.samsung.com>
2018-02-13 18:07 ` [PATCH] video: offb: Deallocate the color map Mathieu Malaterre
2018-03-12 15:31   ` Bartlomiej Zolnierkiewicz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).