mm-kmemleak-check-physical-address-when-scan.patch removed from -mm tree
The quilt patch titled
Subject: mm: kmemleak: check physical address when scan
has been removed from the -mm tree. Its filename was
mm-kmemleak-check-physical-address-when-scan.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Patrick Wang <[email protected]>
Subject: mm: kmemleak: check physical address when scan
Date: Sat, 11 Jun 2022 11:55:51 +0800
Check the physical address of objects for its boundary when scan instead of in kmemleak_*_phys().
Fixes 23c2d497de21 ("mm: kmemleak: take a full lowmem check in kmemleak_*_phys()")
Signed-off-by Patrick Wang <[email protected]>
Suggested-by Catalin Marinas <[email protected]>
Reviewed-by Catalin Marinas <[email protected]>
Cc Yee Lee <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
mm/kmemleak.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)
mm/kmemleak.c renamed from mm/kmemleak.c~mm-kmemleak-check-physical-address-when-scan +14 -3
@@ -1184,7 +1184,7 @@ void __ref kmemleak_alloc_phys(phys_addr {pr_debug ("%s(0x%pa, %zu)\n" , __func__, &phys, size); -if (PHYS_PFN (phys) >= min_low_pfn &&PHYS_PFN (phys) < max_low_pfn) +if (kmemleak_enabled)/* * Create object with OBJECT_PHYS flag and * assume min_count 0.
@@ -1204,7 +1204,7 @@ void __ref kmemleak_free_part_phys(phys_ {pr_debug ("%s(0x%pa)\n" , __func__, &phys); -if (PHYS_PFN (phys) >= min_low_pfn &&PHYS_PFN (phys) < max_low_pfn) +if (kmemleak_enabled)delete_object_part ((unsigned long )phys, size, true); }EXPORT_SYMBOL (kmemleak_free_part_phys);
@@ -1218,7 +1218,7 @@ void __ref kmemleak_ignore_phys(phys_add {pr_debug ("%s(0x%pa)\n" , __func__, &phys); -if (PHYS_PFN (phys) >= min_low_pfn &&PHYS_PFN (phys) < max_low_pfn) +if (kmemleak_enabled)make_black_object ((unsigned long )phys, true); }EXPORT_SYMBOL (kmemleak_ignore_phys);
@@ -1493,6 +1493,17 @@ static void kmemleak_scan(void) dump_object_info(object); }#endif + +/* ignore objects outside lowmem (paint them black) */ +if ((object->flags &OBJECT_PHYS ) && + !(object->flags &OBJECT_NO_SCAN )) { +unsigned long phys = object->pointer; + +if (PHYS_PFN (phys) < min_low_pfn || +PHYS_PFN (phys + object->size) >= max_low_pfn) +__paint_it (object,KMEMLEAK_BLACK ); + } +/* reset the reference count (whiten the object) */ object->count =0 ;if (color_gray (object) &&get_object (object))
_
Patches currently in -mm which might be from [email protected] are