[PATCH] prevent NULL mmap in topdown model

Prevent the topdown allocator from allocating mmap areas all the way
down to address zero.

We still allow a MAP_FIXED mapping of page 0 (needed for various things,
ranging from Wine and DOSEMU to people who want to allow speculative
loads off a NULL pointer).

Tested by Chris Wright.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Linus Torvalds and committed by
Linus Torvalds
49a43876 05d3794a

+2 -2
+2 -2
mm/mmap.c
··· 1244 addr = mm->free_area_cache; 1245 1246 /* make sure it can fit in the remaining address space */ 1247 - if (addr >= len) { 1248 vma = find_vma(mm, addr-len); 1249 if (!vma || addr <= vma->vm_start) 1250 /* remember the address as a hint for next time */ ··· 1266 1267 /* try just below the current vma->vm_start */ 1268 addr = vma->vm_start-len; 1269 - } while (len <= vma->vm_start); 1270 1271 /* 1272 * A failed mmap() very likely causes application failure,
··· 1244 addr = mm->free_area_cache; 1245 1246 /* make sure it can fit in the remaining address space */ 1247 + if (addr > len) { 1248 vma = find_vma(mm, addr-len); 1249 if (!vma || addr <= vma->vm_start) 1250 /* remember the address as a hint for next time */ ··· 1266 1267 /* try just below the current vma->vm_start */ 1268 addr = vma->vm_start-len; 1269 + } while (len < vma->vm_start); 1270 1271 /* 1272 * A failed mmap() very likely causes application failure,