aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/sys_sparc_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/kernel/sys_sparc_32.c')
-rw-r--r--arch/sparc/kernel/sys_sparc_32.c31
1 files changed, 4 insertions, 27 deletions
diff --git a/arch/sparc/kernel/sys_sparc_32.c b/arch/sparc/kernel/sys_sparc_32.c
index 10c43bea32c7..36f6f26d9cec 100644
--- a/arch/sparc/kernel/sys_sparc_32.c
+++ b/arch/sparc/kernel/sys_sparc_32.c
@@ -234,31 +234,6 @@ int sparc_mmap_check(unsigned long addr, unsigned long len)
234} 234}
235 235
236/* Linux version of mmap */ 236/* Linux version of mmap */
237static unsigned long do_mmap2(unsigned long addr, unsigned long len,
238 unsigned long prot, unsigned long flags, unsigned long fd,
239 unsigned long pgoff)
240{
241 struct file * file = NULL;
242 unsigned long retval = -EBADF;
243
244 if (!(flags & MAP_ANONYMOUS)) {
245 file = fget(fd);
246 if (!file)
247 goto out;
248 }
249
250 len = PAGE_ALIGN(len);
251 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
252
253 down_write(&current->mm->mmap_sem);
254 retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
255 up_write(&current->mm->mmap_sem);
256
257 if (file)
258 fput(file);
259out:
260 return retval;
261}
262 237
263asmlinkage unsigned long sys_mmap2(unsigned long addr, unsigned long len, 238asmlinkage unsigned long sys_mmap2(unsigned long addr, unsigned long len,
264 unsigned long prot, unsigned long flags, unsigned long fd, 239 unsigned long prot, unsigned long flags, unsigned long fd,
@@ -266,14 +241,16 @@ asmlinkage unsigned long sys_mmap2(unsigned long addr, unsigned long len,
266{ 241{
267 /* Make sure the shift for mmap2 is constant (12), no matter what PAGE_SIZE 242 /* Make sure the shift for mmap2 is constant (12), no matter what PAGE_SIZE
268 we have. */ 243 we have. */
269 return do_mmap2(addr, len, prot, flags, fd, pgoff >> (PAGE_SHIFT - 12)); 244 return sys_mmap_pgoff(addr, len, prot, flags, fd,
245 pgoff >> (PAGE_SHIFT - 12));
270} 246}
271 247
272asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len, 248asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len,
273 unsigned long prot, unsigned long flags, unsigned long fd, 249 unsigned long prot, unsigned long flags, unsigned long fd,
274 unsigned long off) 250 unsigned long off)
275{ 251{
276 return do_mmap2(addr, len, prot, flags, fd, off >> PAGE_SHIFT); 252 /* no alignment check? */
253 return sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT);
277} 254}
278 255
279long sparc_remap_file_pages(unsigned long start, unsigned long size, 256long sparc_remap_file_pages(unsigned long start, unsigned long size,