Usually segment and region tables are 16k aligned due to the way the
buddy allocator works.  This is not true for the vmem code which only
asks for a 4k alignment. In order to be consistent enforce a 16k
alignment here as well.
This alignment will be assumed and therefore is required by the
pageattr code.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
 
 static void __ref *vmem_alloc_pages(unsigned int order)
 {
+       unsigned long size = PAGE_SIZE << order;
+
        if (slab_is_available())
                return (void *)__get_free_pages(GFP_KERNEL, order);
-       return alloc_bootmem_pages((1 << order) * PAGE_SIZE);
+       return alloc_bootmem_align(size, size);
 }
 
 static inline pud_t *vmem_pud_alloc(void)