|
@@ -64,15 +64,17 @@ static unsigned long cma_bitmap_aligned_mask(struct cma *cma, int align_order)
|
|
|
return (1UL << (align_order - cma->order_per_bit)) - 1;
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * Find a PFN aligned to the specified order and return an offset represented in
|
|
|
+ * order_per_bits.
|
|
|
+ */
|
|
|
static unsigned long cma_bitmap_aligned_offset(struct cma *cma, int align_order)
|
|
|
{
|
|
|
- unsigned int alignment;
|
|
|
-
|
|
|
if (align_order <= cma->order_per_bit)
|
|
|
return 0;
|
|
|
- alignment = 1UL << (align_order - cma->order_per_bit);
|
|
|
- return ALIGN(cma->base_pfn, alignment) -
|
|
|
- (cma->base_pfn >> cma->order_per_bit);
|
|
|
+
|
|
|
+ return (ALIGN(cma->base_pfn, (1UL << align_order))
|
|
|
+ - cma->base_pfn) >> cma->order_per_bit;
|
|
|
}
|
|
|
|
|
|
static unsigned long cma_bitmap_maxno(struct cma *cma)
|