Re: [PATCH 11/15] kmemleak: Remove some of the kmemleak false positives

From: Pekka Enberg
Date: Sat Nov 29 2008 - 06:48:37 EST


Hi Catalin,


On Sat, Nov 29, 2008 at 12:44 PM, Catalin Marinas
<catalin.marinas@xxxxxxx> wrote:
> There are allocations for which the main pointer cannot be found but
> they are not memory leaks. This patch fixes some of them. For more
> information on false positives, see Documentation/kmemleak.txt.
>
> Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxx>
> ---
> drivers/char/vt.c | 7 +++++++
> include/linux/percpu.h | 5 +++++
> 2 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/char/vt.c b/drivers/char/vt.c
> index a5af607..bb024f8 100644
> --- a/drivers/char/vt.c
> +++ b/drivers/char/vt.c
> @@ -104,6 +104,7 @@
> #include <linux/io.h>
> #include <asm/system.h>
> #include <linux/uaccess.h>
> +#include <linux/memleak.h>
>
> #define MAX_NR_CON_DRIVER 16
>
> @@ -2882,6 +2883,12 @@ static int __init con_init(void)
> */
> for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) {
> vc_cons[currcons].d = vc = alloc_bootmem(sizeof(struct vc_data));
> + /*
> + * Kmemleak does not track the memory allocated via
> + * alloc_bootmem() but this block contains pointers to
> + * other blocks allocated via kmalloc.
> + */
> + memleak_alloc(vc, sizeof(struct vc_data), 1);

Can we add some hooks to alloc_bootmem() to handle this? It's somewhat
unfortunate that we need to annotate driver code.

> INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
> visual_init(vc, currcons, 1);
> vc->vc_screenbuf = (unsigned short *)alloc_bootmem(vc->vc_screenbuf_size);
--
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/