• Pekka Enberg's avatar
    kmemleak: Don't scan uninitialized memory when kmemcheck is enabled · 8e019366
    Pekka Enberg authored
    Ingo Molnar reported the following kmemcheck warning when running both
    kmemleak and kmemcheck enabled:
    
      PM: Adding info for No Bus:vcsa7
      WARNING: kmemcheck: Caught 32-bit read from uninitialized memory
      (f6f6e1a4)
      d873f9f600000000c42ae4c1005c87f70000000070665f666978656400000000
       i i i i u u u u i i i i i i i i i i i i i i i i i i i i i u u u
               ^
    
      Pid: 3091, comm: kmemleak Not tainted (2.6.31-rc7-tip #1303) P4DC6
      EIP: 0060:[<c110301f>] EFLAGS: 00010006 CPU: 0
      EIP is at scan_block+0x3f/0xe0
      EAX: f40bd700 EBX: f40bd780 ECX: f16b46c0 EDX: 00000001
      ESI: f6f6e1a4 EDI: 00000000 EBP: f10f3f4c ESP: c2605fcc
       DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
      CR0: 8005003b CR2: e89a4844 CR3: 30ff1000 CR4: 000006f0
      DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      DR6: ffff4ff0 DR7: 00000400
       [<c110313c>] scan_object+0x7c/0xf0
       [<c1103389>] kmemleak_scan+0x1d9/0x400
       [<c1103a3c>] kmemleak_scan_thread+0x4c/0xb0
       [<c10819d4>] kthread+0x74/0x80
       [<c10257db>] kernel_thread_helper+0x7/0x3c
       [<ffffffff>] 0xffffffff
      kmemleak: 515 new suspected memory leaks (see
      /sys/kernel/debug/kmemleak)
      kmemleak: 42 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
    
    The problem here is that kmemleak will scan partially initialized
    objects that makes kmemcheck complain. Fix that up by skipping
    uninitialized memory regions when kmemcheck is enabled.
    Reported-by: default avatarIngo Molnar <mingo@elte.hu>
    Acked-by: default avatarIngo Molnar <mingo@elte.hu>
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
    8e019366
kmemleak.c 46.5 KB