|
@@ -734,9 +734,11 @@ static long parse_pages_arg(const char *str, unsigned long min,
|
|
|
|
|
|
if (pages == 0 && min == 0) {
|
|
|
/* leave number of pages at 0 */
|
|
|
- } else if (pages < (1UL << 31) && !is_power_of_2(pages)) {
|
|
|
+ } else if (!is_power_of_2(pages)) {
|
|
|
/* round pages up to next power of 2 */
|
|
|
- pages = next_pow2(pages);
|
|
|
+ pages = next_pow2_l(pages);
|
|
|
+ if (!pages)
|
|
|
+ return -EINVAL;
|
|
|
pr_info("rounding mmap pages size to %lu bytes (%lu pages)\n",
|
|
|
pages * page_size, pages);
|
|
|
}
|