kmemleak: powerpc: skip scanning holes in the .bss section
authorCatalin Marinas <[email protected]>
Sat, 6 Apr 2019 01:38:49 +0000 (18:38 -0700)
committerLinus Torvalds <[email protected]>
Sat, 6 Apr 2019 02:02:30 +0000 (16:02 -1000)
commit298a32b132087550d3fa80641ca58323c5dfd4d9
tree7428c4cc1afa43e980a92408f94c185e39ffc31f
parent5f074f3e192f10c9fade898b9b3b8812e3d83342
kmemleak: powerpc: skip scanning holes in the .bss section

Commit 2d4f567103ff ("KVM: PPC: Introduce kvm_tmp framework") adds
kvm_tmp[] into the .bss section and then free the rest of unused spaces
back to the page allocator.

kernel_init
  kvm_guest_init
    kvm_free_tmp
      free_reserved_area
        free_unref_page
          free_unref_page_prepare

With DEBUG_PAGEALLOC=y, it will unmap those pages from kernel.  As the
result, kmemleak scan will trigger a panic when it scans the .bss
section with unmapped pages.

This patch creates dedicated kmemleak objects for the .data, .bss and
potentially .data..ro_after_init sections to allow partial freeing via
the kmemleak_free_part() in the powerpc kvm_free_tmp() function.

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Catalin Marinas <[email protected]>
Reported-by: Qian Cai <[email protected]>
Acked-by: Michael Ellerman <[email protected]> (powerpc)
Tested-by: Qian Cai <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Avi Kivity <[email protected]>
Cc: Paolo Bonzini <[email protected]>
Cc: Radim Krcmar <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
arch/powerpc/kernel/kvm.c
mm/kmemleak.c