aboutsummaryrefslogtreecommitdiffstats
path: root/mm/cma_debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/cma_debug.c')
-rw-r--r--mm/cma_debug.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/mm/cma_debug.c b/mm/cma_debug.c
index 22190a7fd58e..f8e4b60db167 100644
--- a/mm/cma_debug.c
+++ b/mm/cma_debug.c
@@ -39,7 +39,7 @@ static int cma_used_get(void *data, u64 *val)
39 39
40 mutex_lock(&cma->lock); 40 mutex_lock(&cma->lock);
41 /* pages counter is smaller than sizeof(int) */ 41 /* pages counter is smaller than sizeof(int) */
42 used = bitmap_weight(cma->bitmap, (int)cma->count); 42 used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma));
43 mutex_unlock(&cma->lock); 43 mutex_unlock(&cma->lock);
44 *val = (u64)used << cma->order_per_bit; 44 *val = (u64)used << cma->order_per_bit;
45 45
@@ -52,13 +52,14 @@ static int cma_maxchunk_get(void *data, u64 *val)
52 struct cma *cma = data; 52 struct cma *cma = data;
53 unsigned long maxchunk = 0; 53 unsigned long maxchunk = 0;
54 unsigned long start, end = 0; 54 unsigned long start, end = 0;
55 unsigned long bitmap_maxno = cma_bitmap_maxno(cma);
55 56
56 mutex_lock(&cma->lock); 57 mutex_lock(&cma->lock);
57 for (;;) { 58 for (;;) {
58 start = find_next_zero_bit(cma->bitmap, cma->count, end); 59 start = find_next_zero_bit(cma->bitmap, bitmap_maxno, end);
59 if (start >= cma->count) 60 if (start >= cma->count)
60 break; 61 break;
61 end = find_next_bit(cma->bitmap, cma->count, start); 62 end = find_next_bit(cma->bitmap, bitmap_maxno, start);
62 maxchunk = max(end - start, maxchunk); 63 maxchunk = max(end - start, maxchunk);
63 } 64 }
64 mutex_unlock(&cma->lock); 65 mutex_unlock(&cma->lock);