summaryrefslogtreecommitdiffstats
path: root/kernel/cpu.c
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2016-10-11 13:55:11 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-11 15:06:33 -0700
commit9099daed9c6991a512c1f74b92ec49daf9408cda (patch)
tree9ebac94f168a0d5d843b715c1d19708d12a1c8c0 /kernel/cpu.c
parent0549a3c02efb350776bc869685a361045efd3a29 (diff)
downloadlinux-9099daed9c6991a512c1f74b92ec49daf9408cda.tar.gz
linux-9099daed9c6991a512c1f74b92ec49daf9408cda.tar.bz2
linux-9099daed9c6991a512c1f74b92ec49daf9408cda.zip
mm: kmemleak: avoid using __va() on addresses that don't have a lowmem mapping
Some of the kmemleak_*() callbacks in memblock, bootmem, CMA convert a physical address to a virtual one using __va(). However, such physical addresses may sometimes be located in highmem and using __va() is incorrect, leading to inconsistent object tracking in kmemleak. The following functions have been added to the kmemleak API and they take a physical address as the object pointer. They only perform the corresponding action if the address has a lowmem mapping: kmemleak_alloc_phys kmemleak_free_part_phys kmemleak_not_leak_phys kmemleak_ignore_phys The affected calling places have been updated to use the new kmemleak API. Link: http://lkml.kernel.org/r/1471531432-16503-1-git-send-email-catalin.marinas@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Reported-by: Vignesh R <vigneshr@ti.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/cpu.c')
0 files changed, 0 insertions, 0 deletions