|
|
@@ -371,23 +371,26 @@ err:
|
|
|
#ifdef CONFIG_CMA_DEBUG
|
|
|
static void cma_debug_show_areas(struct cma *cma)
|
|
|
{
|
|
|
- unsigned long next_zero_bit, next_set_bit;
|
|
|
+ unsigned long next_zero_bit, next_set_bit, nr_zero;
|
|
|
unsigned long start = 0;
|
|
|
- unsigned int nr_zero, nr_total = 0;
|
|
|
+ unsigned long nr_part, nr_total = 0;
|
|
|
+ unsigned long nbits = cma_bitmap_maxno(cma);
|
|
|
|
|
|
mutex_lock(&cma->lock);
|
|
|
pr_info("number of available pages: ");
|
|
|
for (;;) {
|
|
|
- next_zero_bit = find_next_zero_bit(cma->bitmap, cma->count, start);
|
|
|
- if (next_zero_bit >= cma->count)
|
|
|
+ next_zero_bit = find_next_zero_bit(cma->bitmap, nbits, start);
|
|
|
+ if (next_zero_bit >= nbits)
|
|
|
break;
|
|
|
- next_set_bit = find_next_bit(cma->bitmap, cma->count, next_zero_bit);
|
|
|
+ next_set_bit = find_next_bit(cma->bitmap, nbits, next_zero_bit);
|
|
|
nr_zero = next_set_bit - next_zero_bit;
|
|
|
- pr_cont("%s%u@%lu", nr_total ? "+" : "", nr_zero, next_zero_bit);
|
|
|
- nr_total += nr_zero;
|
|
|
+ nr_part = nr_zero << cma->order_per_bit;
|
|
|
+ pr_cont("%s%lu@%lu", nr_total ? "+" : "", nr_part,
|
|
|
+ next_zero_bit);
|
|
|
+ nr_total += nr_part;
|
|
|
start = next_zero_bit + nr_zero;
|
|
|
}
|
|
|
- pr_cont("=> %u free of %lu total pages\n", nr_total, cma->count);
|
|
|
+ pr_cont("=> %lu free of %lu total pages\n", nr_total, cma->count);
|
|
|
mutex_unlock(&cma->lock);
|
|
|
}
|
|
|
#else
|