diff options
Diffstat (limited to 'mm/nommu.c')
| -rw-r--r-- | mm/nommu.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/mm/nommu.c b/mm/nommu.c index b9b5cceb1b68..605ace8982a8 100644 --- a/mm/nommu.c +++ b/mm/nommu.c | |||
| @@ -1428,6 +1428,30 @@ out: | |||
| 1428 | return retval; | 1428 | return retval; |
| 1429 | } | 1429 | } |
| 1430 | 1430 | ||
| 1431 | #ifdef __ARCH_WANT_SYS_OLD_MMAP | ||
| 1432 | struct mmap_arg_struct { | ||
| 1433 | unsigned long addr; | ||
| 1434 | unsigned long len; | ||
| 1435 | unsigned long prot; | ||
| 1436 | unsigned long flags; | ||
| 1437 | unsigned long fd; | ||
| 1438 | unsigned long offset; | ||
| 1439 | }; | ||
| 1440 | |||
| 1441 | SYSCALL_DEFINE1(old_mmap, struct mmap_arg_struct __user *, arg) | ||
| 1442 | { | ||
| 1443 | struct mmap_arg_struct a; | ||
| 1444 | |||
| 1445 | if (copy_from_user(&a, arg, sizeof(a))) | ||
| 1446 | return -EFAULT; | ||
| 1447 | if (a.offset & ~PAGE_MASK) | ||
| 1448 | return -EINVAL; | ||
| 1449 | |||
| 1450 | return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, | ||
| 1451 | a.offset >> PAGE_SHIFT); | ||
| 1452 | } | ||
| 1453 | #endif /* __ARCH_WANT_SYS_OLD_MMAP */ | ||
| 1454 | |||
| 1431 | /* | 1455 | /* |
| 1432 | * split a vma into two pieces at address 'addr', a new vma is allocated either | 1456 | * split a vma into two pieces at address 'addr', a new vma is allocated either |
| 1433 | * for the first part or the tail. | 1457 | * for the first part or the tail. |
