diff options
Diffstat (limited to 'mm/mmap.c')
| -rw-r--r-- | mm/mmap.c | 24 |
1 files changed, 24 insertions, 0 deletions
| @@ -1088,6 +1088,30 @@ out: | |||
| 1088 | return retval; | 1088 | return retval; |
| 1089 | } | 1089 | } |
| 1090 | 1090 | ||
| 1091 | #ifdef __ARCH_WANT_SYS_OLD_MMAP | ||
| 1092 | struct mmap_arg_struct { | ||
| 1093 | unsigned long addr; | ||
| 1094 | unsigned long len; | ||
| 1095 | unsigned long prot; | ||
| 1096 | unsigned long flags; | ||
| 1097 | unsigned long fd; | ||
| 1098 | unsigned long offset; | ||
| 1099 | }; | ||
| 1100 | |||
| 1101 | SYSCALL_DEFINE1(old_mmap, struct mmap_arg_struct __user *, arg) | ||
| 1102 | { | ||
| 1103 | struct mmap_arg_struct a; | ||
| 1104 | |||
| 1105 | if (copy_from_user(&a, arg, sizeof(a))) | ||
| 1106 | return -EFAULT; | ||
| 1107 | if (a.offset & ~PAGE_MASK) | ||
| 1108 | return -EINVAL; | ||
| 1109 | |||
| 1110 | return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, | ||
| 1111 | a.offset >> PAGE_SHIFT); | ||
| 1112 | } | ||
| 1113 | #endif /* __ARCH_WANT_SYS_OLD_MMAP */ | ||
| 1114 | |||
| 1091 | /* | 1115 | /* |
| 1092 | * Some shared mappigns will want the pages marked read-only | 1116 | * Some shared mappigns will want the pages marked read-only |
| 1093 | * to track write events. If so, we'll downgrade vm_page_prot | 1117 | * to track write events. If so, we'll downgrade vm_page_prot |
