diff --git a/mm/mmap.c b/mm/mmap.c index 09496916ff7a..1df0ed40bf4a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -902,6 +902,7 @@ __get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, if (get_area) { addr = get_area(file, addr, len, pgoff, flags); } else if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) + && !addr /* no hint */ && IS_ALIGNED(len, PMD_SIZE)) { /* Ensures that larger anonymous mappings are THP aligned. */ addr = thp_get_unmapped_area_vmflags(file, addr, len,