]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm: cma: simplify cma_debug_show_areas()
authorYury Norov (NVIDIA) <yury.norov@gmail.com>
Sat, 19 Jul 2025 20:53:59 +0000 (16:53 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 25 Jul 2025 02:12:36 +0000 (19:12 -0700)
The function opencodes for_each_clear_bitrange().  Fix that and drop most
of housekeeping code.

Link: https://lkml.kernel.org/r/20250719205401.399475-2-yury.norov@gmail.com
Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
Acked-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/cma.c

index 0cd6f061021f49975c23b75a658e26a8bf359d8f..2ffa4befb99abfa8da9dc350029fc3913e75fd8d 100644 (file)
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -751,8 +751,7 @@ int __init cma_declare_contiguous_nid(phys_addr_t base,
 
 static void cma_debug_show_areas(struct cma *cma)
 {
-       unsigned long next_zero_bit, next_set_bit, nr_zero;
-       unsigned long start;
+       unsigned long start, end;
        unsigned long nr_part;
        unsigned long nbits;
        int r;
@@ -763,22 +762,12 @@ static void cma_debug_show_areas(struct cma *cma)
        for (r = 0; r < cma->nranges; r++) {
                cmr = &cma->ranges[r];
 
-               start = 0;
                nbits = cma_bitmap_maxno(cma, cmr);
 
                pr_info("range %d: ", r);
-               for (;;) {
-                       next_zero_bit = find_next_zero_bit(cmr->bitmap,
-                                                          nbits, start);
-                       if (next_zero_bit >= nbits)
-                               break;
-                       next_set_bit = find_next_bit(cmr->bitmap, nbits,
-                                                    next_zero_bit);
-                       nr_zero = next_set_bit - next_zero_bit;
-                       nr_part = nr_zero << cma->order_per_bit;
-                       pr_cont("%s%lu@%lu", start ? "+" : "", nr_part,
-                               next_zero_bit);
-                       start = next_zero_bit + nr_zero;
+               for_each_clear_bitrange(start, end, cmr->bitmap, nbits) {
+                       nr_part = (end - start) << cma->order_per_bit;
+                       pr_cont("%s%lu@%lu", start ? "+" : "", nr_part, start);
                }
                pr_info("\n");
        }