|
@@ -15,6 +15,7 @@
|
|
|
#include <linux/pagemap.h>
|
|
|
#include <linux/slab.h>
|
|
|
#include <linux/sysctl.h>
|
|
|
+#include <linux/log2.h>
|
|
|
#include <asm/mman.h>
|
|
|
#include <asm/pgalloc.h>
|
|
|
#include <asm/tlb.h>
|
|
@@ -182,7 +183,7 @@ static int __init hugetlb_setup_sz(char *str)
|
|
|
tr_pages = 0x15557000UL;
|
|
|
|
|
|
size = memparse(str, &str);
|
|
|
- if (*str || (size & (size-1)) || !(tr_pages & size) ||
|
|
|
+ if (*str || !is_power_of_2(size) || !(tr_pages & size) ||
|
|
|
size <= PAGE_SIZE ||
|
|
|
size >= (1UL << PAGE_SHIFT << MAX_ORDER)) {
|
|
|
printk(KERN_WARNING "Invalid huge page size specified\n");
|