mm/cma_debug.c: fix the break condition in cma_maxchunk_get()
If not find zero bit in find_next_zero_bit(), it will return the size parameter passed in, so the start bit should be compared with bitmap_maxno rather than cma->count. Although getting maxchunk is working fine due to zero value of order_per_bit currently, the operation will be stuck if order_per_bit is set as non-zero. Link: http://lkml.kernel.org/r/20190319092734.276-1-zbestahu@gmail.com Signed-off-by: Yue Hu <huyue2@yulong.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Joe Perches <joe@perches.com> Cc: David Rientjes <rientjes@google.com> Cc: Dmitry Safonov <d.safonov@partner.samsung.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
3b775998ec
commit
f0fd50504a
|
@ -56,7 +56,7 @@ static int cma_maxchunk_get(void *data, u64 *val)
|
|||
mutex_lock(&cma->lock);
|
||||
for (;;) {
|
||||
start = find_next_zero_bit(cma->bitmap, bitmap_maxno, end);
|
||||
if (start >= cma->count)
|
||||
if (start >= bitmap_maxno)
|
||||
break;
|
||||
end = find_next_bit(cma->bitmap, bitmap_maxno, start);
|
||||
maxchunk = max(end - start, maxchunk);
|
||||
|
|
Loading…
Reference in New Issue