diff options
author | Yury Norov (NVIDIA) <yury.norov@gmail.com> | 2025-07-19 16:53:59 -0400 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2025-07-24 19:12:36 -0700 |
commit | 77c50f9147eabcf726f62c73167bb9d9e8621a43 (patch) | |
tree | daca6b4f1dbd1f9f045ac32be4fcd9cc9d8a4a6e | |
parent | 476d87d6a06146125e8f16edbe845a7bcf6a2e57 (diff) |
mm: cma: simplify cma_debug_show_areas()
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>
-rw-r--r-- | mm/cma.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/mm/cma.c b/mm/cma.c index 0cd6f061021f4..2ffa4befb99ab 100644 --- 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"); } |