Thread (9 messages) 9 messages, 4 authors, 2021-12-02

Re: [PATCH] kmemleak: fix kmemleak false positive report with HW tag-based kasan enable

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2021-11-28 00:22:36
Also in: linux-mediatek, linux-mm, lkml

On Thu, 25 Nov 2021 17:13:36 +0100 Andrey Konovalov [off-list ref] wrote:
quoted
quoted
kmemleak_object *object)
 static struct kmemleak_object *lookup_object(unsigned long ptr, int
alias)
 {
      struct rb_node *rb = object_tree_root.rb_node;
+     unsigned long untagged_ptr = (unsigned
long)kasan_reset_tag((void *)ptr);

      while (rb) {
              struct kmemleak_object *object =
                      rb_entry(rb, struct kmemleak_object, rb_node);
-             if (ptr < object->pointer)
+             unsigned long untagged_objp;
+
+             untagged_objp = (unsigned long)kasan_reset_tag((void
*)object->pointer);
The two lines above can be squashed together.
That would make a too-long line even longer.  In fact I think it's
better to go the other way:
--- a/mm/kmemleak.c~kmemleak-fix-kmemleak-false-positive-report-with-hw-tag-based-kasan-enable-fix
+++ a/mm/kmemleak.c
@@ -384,10 +384,10 @@ static struct kmemleak_object *lookup_ob
 	unsigned long untagged_ptr = (unsigned long)kasan_reset_tag((void *)ptr);
 
 	while (rb) {
-		struct kmemleak_object *object =
-			rb_entry(rb, struct kmemleak_object, rb_node);
+		struct kmemleak_object *object;
 		unsigned long untagged_objp;
 
+		object = rb_entry(rb, struct kmemleak_object, rb_node);
 		untagged_objp = (unsigned long)kasan_reset_tag((void *)object->pointer);
 
 		if (untagged_ptr < untagged_objp)
_


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help