diff --git a/kernel/syscall.c b/kernel/syscall.c index eb39e71e..f11fdbda 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -1689,6 +1689,9 @@ do_mmap(const uintptr_t addr0, const size_t len0, const int prot, if (flags & MAP_HUGETLB) { pgshift = (flags >> MAP_HUGE_SHIFT) & 0x3F; + if (!pgshift) { + pgshift = ihk_mc_get_linux_default_huge_page_shift(); + } p2align = pgshift - PAGE_SHIFT; } else if ((((flags & MAP_PRIVATE) && (flags & MAP_ANONYMOUS)) @@ -5709,6 +5712,9 @@ int do_shmget(const key_t key, const size_t size, const int shmflg) if (shmflg & SHM_HUGETLB) { pgshift = (shmflg >> SHM_HUGE_SHIFT) & 0x3F; + if (!pgshift) { + pgshift = ihk_mc_get_linux_default_huge_page_shift(); + } } else if (proc->thp_disable) { pgshift = PAGE_SHIFT; } else {