]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
kmemleak-enable-tracking-for-percpu-pointers-v2
authorPavel Tikhomirov <ptikhomirov@virtuozzo.com>
Wed, 31 Jul 2024 02:54:09 +0000 (10:54 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Sat, 17 Aug 2024 00:52:35 +0000 (17:52 -0700)
rename confusing scan_pointer to pointer_update_refs and move it just
after update_refs

Link: https://lkml.kernel.org/r/20240731025526.157529-2-ptikhomirov@virtuozzo.com
Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Wei Yongjun <weiyongjun1@huawei.com>
Cc: Chen Jun <chenjun102@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/kmemleak.c

index 4babfead5078f58f756f7f5fc5ae70f6937b4d1a..6b498c6d9c34a3609c3b74023b897eba68ea2fd0 100644 (file)
@@ -1362,28 +1362,7 @@ static void update_refs(struct kmemleak_object *object)
        }
 }
 
-/*
- * Memory scanning is a long process and it needs to be interruptible. This
- * function checks whether such interrupt condition occurred.
- */
-static int scan_should_stop(void)
-{
-       if (!kmemleak_enabled)
-               return 1;
-
-       /*
-        * This function may be called from either process or kthread context,
-        * hence the need to check for both stop conditions.
-        */
-       if (current->mm)
-               return signal_pending(current);
-       else
-               return kthread_should_stop();
-
-       return 0;
-}
-
-static void scan_pointer(struct kmemleak_object *scanned,
+static void pointer_update_refs(struct kmemleak_object *scanned,
                         unsigned long pointer, unsigned int objflags)
 {
        struct kmemleak_object *object;
@@ -1441,6 +1420,27 @@ static void scan_pointer(struct kmemleak_object *scanned,
        }
 }
 
+/*
+ * Memory scanning is a long process and it needs to be interruptible. This
+ * function checks whether such interrupt condition occurred.
+ */
+static int scan_should_stop(void)
+{
+       if (!kmemleak_enabled)
+               return 1;
+
+       /*
+        * This function may be called from either process or kthread context,
+        * hence the need to check for both stop conditions.
+        */
+       if (current->mm)
+               return signal_pending(current);
+       else
+               return kthread_should_stop();
+
+       return 0;
+}
+
 /*
  * Scan a memory block (exclusive range) for valid pointers and add those
  * found to the gray list.
@@ -1464,8 +1464,8 @@ static void scan_block(void *_start, void *_end,
                pointer = *(unsigned long *)kasan_reset_tag((void *)ptr);
                kasan_enable_current();
 
-               scan_pointer(scanned, pointer, 0);
-               scan_pointer(scanned, pointer, OBJECT_PERCPU);
+               pointer_update_refs(scanned, pointer, 0);
+               pointer_update_refs(scanned, pointer, OBJECT_PERCPU);
        }
        raw_spin_unlock_irqrestore(&kmemleak_lock, flags);
 }