diff options
-rw-r--r-- | mm/cma.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/cma.c b/mm/cma.c index 474c644a0dc6d..a951a3b3ed367 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -58,7 +58,9 @@ unsigned long cma_get_size(struct cma *cma) static unsigned long cma_bitmap_aligned_mask(struct cma *cma, int align_order) { - return (1UL << (align_order >> cma->order_per_bit)) - 1; + if (align_order <= cma->order_per_bit) + return 0; + return (1UL << (align_order - cma->order_per_bit)) - 1; } static unsigned long cma_bitmap_maxno(struct cma *cma) |