X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=mm%2Fvmalloc.c;h=80660a0f989b6371dfa08406de6cd11bfd136382;hb=fdd4c6149a71ff1da98317adb6f18c28f75a6e3f;hp=91f44e78c516f67ff9969f47679bcefa22eed61d;hpb=0524b422fa39fe3dd9454c8667da283241dde9e7;p=cascardo%2Flinux.git diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 91f44e78c516..80660a0f989b 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1359,14 +1359,14 @@ static struct vm_struct *__get_vm_area_node(unsigned long size, struct vm_struct *area; BUG_ON(in_interrupt()); - if (flags & VM_IOREMAP) - align = 1ul << clamp_t(int, fls_long(size), - PAGE_SHIFT, IOREMAP_MAX_ORDER); - size = PAGE_ALIGN(size); if (unlikely(!size)) return NULL; + if (flags & VM_IOREMAP) + align = 1ul << clamp_t(int, get_count_order_long(size), + PAGE_SHIFT, IOREMAP_MAX_ORDER); + area = kzalloc_node(sizeof(*area), gfp_mask & GFP_RECLAIM_MASK, node); if (unlikely(!area)) return NULL;