kmemleak: account for tagged pointers when calculating pointer range
authorAndrey Konovalov <[email protected]>
Thu, 21 Feb 2019 06:19:16 +0000 (22:19 -0800)
committerLinus Torvalds <[email protected]>
Thu, 21 Feb 2019 17:01:00 +0000 (09:01 -0800)
commita2f775751d964e638818487544fa8320180d106e
tree8f57aa384bdf7f56a130c853ccb257b048269205
parent53128245b43daad600d9fe72940206570e064112
kmemleak: account for tagged pointers when calculating pointer range

kmemleak keeps two global variables, min_addr and max_addr, which store
the range of valid (encountered by kmemleak) pointer values, which it
later uses to speed up pointer lookup when scanning blocks.

With tagged pointers this range will get bigger than it needs to be.  This
patch makes kmemleak untag pointers before saving them to min_addr and
max_addr and when performing a lookup.

Link: http://lkml.kernel.org/r/16e887d442986ab87fe87a755815ad92fa431a5f.1550066133.git.andreyknvl@google.com
Signed-off-by: Andrey Konovalov <[email protected]>
Tested-by: Qian Cai <[email protected]>
Acked-by: Catalin Marinas <[email protected]>
Cc: Alexander Potapenko <[email protected]>
Cc: Andrey Ryabinin <[email protected]>
Cc: Christoph Lameter <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Dmitry Vyukov <[email protected]>
Cc: Evgeniy Stepanov <[email protected]>
Cc: Joonsoo Kim <[email protected]>
Cc: Kostya Serebryany <[email protected]>
Cc: Pekka Enberg <[email protected]>
Cc: Vincenzo Frascino <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/kmemleak.c
mm/slab.h
mm/slab_common.c
mm/slub.c