aboutsummaryrefslogtreecommitdiffstats
path: root/mm/nommu.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2009-09-24 07:33:48 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-24 20:20:29 -0400
commit06aab5a3084e1d825384fa353e6df4c7949c8683 (patch)
treef4db2f267151e2173b86ee4b945bf07688d6ffd2 /mm/nommu.c
parent934831d060ccd5471ecbc562804a8d3ccd6e562c (diff)
NOMMU: Ignore mmap() address param as it is a hint
Ignore the address parameter given to NOMMU mmap() as it is a hint, rather than giving an error if it's non-zero. MAP_FIXED still gets an error. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/nommu.c')
-rw-r--r--mm/nommu.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/nommu.c b/mm/nommu.c
index 6a002abcb58f..c73aa4753d79 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -826,7 +826,7 @@ static int validate_mmap_request(struct file *file,
826 int ret; 826 int ret;
827 827
828 /* do the simple checks first */ 828 /* do the simple checks first */
829 if (flags & MAP_FIXED || addr) { 829 if (flags & MAP_FIXED) {
830 printk(KERN_DEBUG 830 printk(KERN_DEBUG
831 "%d: Can't do fixed-address/overlay mmap of RAM\n", 831 "%d: Can't do fixed-address/overlay mmap of RAM\n",
832 current->pid); 832 current->pid);
@@ -1182,9 +1182,6 @@ unsigned long do_mmap_pgoff(struct file *file,
1182 1182
1183 kenter(",%lx,%lx,%lx,%lx,%lx", addr, len, prot, flags, pgoff); 1183 kenter(",%lx,%lx,%lx,%lx,%lx", addr, len, prot, flags, pgoff);
1184 1184
1185 if (!(flags & MAP_FIXED))
1186 addr = round_hint_to_min(addr);
1187
1188 /* decide whether we should attempt the mapping, and if so what sort of 1185 /* decide whether we should attempt the mapping, and if so what sort of
1189 * mapping */ 1186 * mapping */
1190 ret = validate_mmap_request(file, addr, len, prot, flags, pgoff, 1187 ret = validate_mmap_request(file, addr, len, prot, flags, pgoff,
@@ -1194,6 +1191,9 @@ unsigned long do_mmap_pgoff(struct file *file,
1194 return ret; 1191 return ret;
1195 } 1192 }
1196 1193
1194 /* we ignore the address hint */
1195 addr = 0;
1196
1197 /* we've determined that we can make the mapping, now translate what we 1197 /* we've determined that we can make the mapping, now translate what we
1198 * now know into VMA flags */ 1198 * now know into VMA flags */
1199 vm_flags = determine_vm_flags(file, prot, flags, capabilities); 1199 vm_flags = determine_vm_flags(file, prot, flags, capabilities);