Commit c79147e4 authored by Yury Norov (NVIDIA)'s avatar Yury Norov (NVIDIA) Committed by Andrew Morton
Browse files

mm: cma: simplify cma_maxchunk_get()

The function opencodes for_each_clear_bitrange().  Fix that and drop most
of housekeeping code.

Link: https://lkml.kernel.org/r/20250719205401.399475-3-yury.norov@gmail.com


Signed-off-by: default avatarYury Norov (NVIDIA) <yury.norov@gmail.com>
Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 77c50f91
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -56,17 +56,9 @@ static int cma_maxchunk_get(void *data, u64 *val)
	for (r = 0; r < cma->nranges; r++) {
		cmr = &cma->ranges[r];
		bitmap_maxno = cma_bitmap_maxno(cma, cmr);
		end = 0;
		for (;;) {
			start = find_next_zero_bit(cmr->bitmap,
						   bitmap_maxno, end);
			if (start >= bitmap_maxno)
				break;
			end = find_next_bit(cmr->bitmap, bitmap_maxno,
					    start);
		for_each_clear_bitrange(start, end, cmr->bitmap, bitmap_maxno)
			maxchunk = max(end - start, maxchunk);
	}
	}
	spin_unlock_irq(&cma->lock);
	*val = (u64)maxchunk << cma->order_per_bit;