diff --git a/mm/mmap.c b/mm/mmap.c index 14e6bfdebbb82de95dfc3d463d0865642ca6de3f..c5127aaf2d7e8eb328e5ace8b9e9c959b0d5cf0b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1443,6 +1443,10 @@ unsigned long do_mmap(struct file *file, unsigned long addr, if (flags & MAP_FIXED_NOREPLACE) flags |= MAP_FIXED; + /* MAP_EXECUTABLE and MAP_XPM is exclusive */ + if (flags & MAP_EXECUTABLE) + flags &= ~MAP_XPM; + if (!(flags & MAP_FIXED)) addr = round_hint_to_min(addr);