Re: kmemleak warning in efifb_probe

From: Peter Jones
Date: Thu Jul 25 2013 - 11:48:45 EST


On Thu, Jul 25, 2013 at 01:18:31PM +0100, Catalin Marinas wrote:
> On 21 July 2013 16:11, Alexandra N. Kossovsky
> <Alexandra.Kossovsky@xxxxxxxxxxxx> wrote:
> > I am running linux-3.10.0 with kmemleak and see following warnings
> > in /sys/kernel/debug/kmemleak:
> >
> > unreferenced object 0xffff880216fcfe00 (size 512):
> > comm "swapper/0", pid 1, jiffies 4294895429 (age 1415.320s)
> > 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:
> > [<ffffffff813e415c>] kmemleak_alloc+0x21/0x3e
> > [<ffffffff8111c17f>] kmemleak_alloc_recursive.constprop.57+0x16/0x18
> > [<ffffffff8111e63b>] __kmalloc+0xf9/0x144
> > [<ffffffff8123d9cf>] fb_alloc_cmap_gfp+0x47/0xe1
> > [<ffffffff8123da77>] fb_alloc_cmap+0xe/0x10
> > [<ffffffff81aff40a>] efifb_probe+0x3e9/0x48f
> > [<ffffffff812c566f>] platform_drv_probe+0x34/0x5e
> > [<ffffffff812c3e6d>] driver_probe_device+0x98/0x1b4
> > [<ffffffff812c3fd7>] __driver_attach+0x4e/0x6f
> > [<ffffffff812c25bf>] bus_for_each_dev+0x57/0x8a
> > [<ffffffff812c3984>] driver_attach+0x19/0x1b
> > [<ffffffff812c362b>] bus_add_driver+0xde/0x201
> > [<ffffffff812c453f>] driver_register+0x8c/0x110
> > [<ffffffff812c510d>] platform_driver_register+0x41/0x43
> > [<ffffffff812c5127>] platform_driver_probe+0x18/0x8a
> > [<ffffffff81aff002>] efifb_init+0x276/0x295
>
> Does the efifb driver has any way to deallocate the cmap? I don't see
> any explicit call to fb_dealloc_cmap() apart from the error handling.
> My theory is that the efifb driver gets deregistered via
> do_remove_conflicting_framebuffers(). I'm not familiar with this code,
> just commenting from a kmemleak perspective.

You're right, that's the typical deregister path. I'll follow up with a
patch to test.

--
Peter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/