|
@@ -1330,16 +1330,8 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
|
|
|
struct vm_struct *area;
|
|
|
|
|
|
BUG_ON(in_interrupt());
|
|
|
- if (flags & VM_IOREMAP) {
|
|
|
- int bit = fls(size);
|
|
|
-
|
|
|
- if (bit > IOREMAP_MAX_ORDER)
|
|
|
- bit = IOREMAP_MAX_ORDER;
|
|
|
- else if (bit < PAGE_SHIFT)
|
|
|
- bit = PAGE_SHIFT;
|
|
|
-
|
|
|
- align = 1ul << bit;
|
|
|
- }
|
|
|
+ if (flags & VM_IOREMAP)
|
|
|
+ align = 1ul << clamp(fls(size), PAGE_SHIFT, IOREMAP_MAX_ORDER);
|
|
|
|
|
|
size = PAGE_ALIGN(size);
|
|
|
if (unlikely(!size))
|