X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=mm%2Fvmalloc.c;h=80660a0f989b6371dfa08406de6cd11bfd136382;hb=3250845d0526407330592dd43b9f1354b6fe7a14;hp=91f44e78c516f67ff9969f47679bcefa22eed61d;hpb=b5db6c57c9fb7068cf50e82c27886cc00b9cd78e;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;