mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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: Yury Norov (NVIDIA) <yury.norov@gmail.com> Acked-by: David Hildenbrand <david@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
77c50f9147
commit
c79147e4b0
@@ -56,16 +56,8 @@ 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;
|
||||
|
||||
Reference in New Issue
Block a user