diff options
| -rw-r--r-- | arch/powerpc/include/asm/systbl.h | 62 | ||||
| -rw-r--r-- | arch/powerpc/kernel/sys_ppc32.c | 301 |
2 files changed, 31 insertions, 332 deletions
diff --git a/arch/powerpc/include/asm/systbl.h b/arch/powerpc/include/asm/systbl.h index 66a21c15e7cb..d906f33441c6 100644 --- a/arch/powerpc/include/asm/systbl.h +++ b/arch/powerpc/include/asm/systbl.h | |||
| @@ -10,8 +10,8 @@ SYSCALL_SPU(read) | |||
| 10 | SYSCALL_SPU(write) | 10 | SYSCALL_SPU(write) |
| 11 | COMPAT_SYS_SPU(open) | 11 | COMPAT_SYS_SPU(open) |
| 12 | SYSCALL_SPU(close) | 12 | SYSCALL_SPU(close) |
| 13 | COMPAT_SYS_SPU(waitpid) | 13 | SYSCALL_SPU(waitpid) |
| 14 | COMPAT_SYS_SPU(creat) | 14 | SYSCALL_SPU(creat) |
| 15 | SYSCALL_SPU(link) | 15 | SYSCALL_SPU(link) |
| 16 | SYSCALL_SPU(unlink) | 16 | SYSCALL_SPU(unlink) |
| 17 | COMPAT_SYS(execve) | 17 | COMPAT_SYS(execve) |
| @@ -36,13 +36,13 @@ SYSCALL(pause) | |||
| 36 | COMPAT_SYS(utime) | 36 | COMPAT_SYS(utime) |
| 37 | SYSCALL(ni_syscall) | 37 | SYSCALL(ni_syscall) |
| 38 | SYSCALL(ni_syscall) | 38 | SYSCALL(ni_syscall) |
| 39 | COMPAT_SYS_SPU(access) | 39 | SYSCALL_SPU(access) |
| 40 | COMPAT_SYS_SPU(nice) | 40 | SYSCALL_SPU(nice) |
| 41 | SYSCALL(ni_syscall) | 41 | SYSCALL(ni_syscall) |
| 42 | SYSCALL_SPU(sync) | 42 | SYSCALL_SPU(sync) |
| 43 | COMPAT_SYS_SPU(kill) | 43 | SYSCALL_SPU(kill) |
| 44 | SYSCALL_SPU(rename) | 44 | SYSCALL_SPU(rename) |
| 45 | COMPAT_SYS_SPU(mkdir) | 45 | SYSCALL_SPU(mkdir) |
| 46 | SYSCALL_SPU(rmdir) | 46 | SYSCALL_SPU(rmdir) |
| 47 | SYSCALL_SPU(dup) | 47 | SYSCALL_SPU(dup) |
| 48 | SYSCALL_SPU(pipe) | 48 | SYSCALL_SPU(pipe) |
| @@ -60,10 +60,10 @@ SYSCALL(ni_syscall) | |||
| 60 | COMPAT_SYS_SPU(ioctl) | 60 | COMPAT_SYS_SPU(ioctl) |
| 61 | COMPAT_SYS_SPU(fcntl) | 61 | COMPAT_SYS_SPU(fcntl) |
| 62 | SYSCALL(ni_syscall) | 62 | SYSCALL(ni_syscall) |
| 63 | COMPAT_SYS_SPU(setpgid) | 63 | SYSCALL_SPU(setpgid) |
| 64 | SYSCALL(ni_syscall) | 64 | SYSCALL(ni_syscall) |
| 65 | SYSX(sys_ni_syscall,sys_olduname, sys_olduname) | 65 | SYSX(sys_ni_syscall,sys_olduname, sys_olduname) |
| 66 | COMPAT_SYS_SPU(umask) | 66 | SYSCALL_SPU(umask) |
| 67 | SYSCALL_SPU(chroot) | 67 | SYSCALL_SPU(chroot) |
| 68 | COMPAT_SYS(ustat) | 68 | COMPAT_SYS(ustat) |
| 69 | SYSCALL_SPU(dup2) | 69 | SYSCALL_SPU(dup2) |
| @@ -72,24 +72,24 @@ SYSCALL_SPU(getpgrp) | |||
| 72 | SYSCALL_SPU(setsid) | 72 | SYSCALL_SPU(setsid) |
| 73 | SYS32ONLY(sigaction) | 73 | SYS32ONLY(sigaction) |
| 74 | SYSCALL_SPU(sgetmask) | 74 | SYSCALL_SPU(sgetmask) |
| 75 | COMPAT_SYS_SPU(ssetmask) | 75 | SYSCALL_SPU(ssetmask) |
| 76 | SYSCALL_SPU(setreuid) | 76 | SYSCALL_SPU(setreuid) |
| 77 | SYSCALL_SPU(setregid) | 77 | SYSCALL_SPU(setregid) |
| 78 | #define compat_sys_sigsuspend sys_sigsuspend | 78 | #define compat_sys_sigsuspend sys_sigsuspend |
| 79 | SYS32ONLY(sigsuspend) | 79 | SYS32ONLY(sigsuspend) |
| 80 | COMPAT_SYS(sigpending) | 80 | COMPAT_SYS(sigpending) |
| 81 | COMPAT_SYS_SPU(sethostname) | 81 | SYSCALL_SPU(sethostname) |
| 82 | COMPAT_SYS_SPU(setrlimit) | 82 | COMPAT_SYS_SPU(setrlimit) |
| 83 | COMPAT_SYS(old_getrlimit) | 83 | COMPAT_SYS(old_getrlimit) |
| 84 | COMPAT_SYS_SPU(getrusage) | 84 | COMPAT_SYS_SPU(getrusage) |
| 85 | COMPAT_SYS_SPU(gettimeofday) | 85 | COMPAT_SYS_SPU(gettimeofday) |
| 86 | COMPAT_SYS_SPU(settimeofday) | 86 | COMPAT_SYS_SPU(settimeofday) |
| 87 | COMPAT_SYS_SPU(getgroups) | 87 | SYSCALL_SPU(getgroups) |
| 88 | COMPAT_SYS_SPU(setgroups) | 88 | SYSCALL_SPU(setgroups) |
| 89 | SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select) | 89 | SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select) |
| 90 | SYSCALL_SPU(symlink) | 90 | SYSCALL_SPU(symlink) |
| 91 | OLDSYS(lstat) | 91 | OLDSYS(lstat) |
| 92 | COMPAT_SYS_SPU(readlink) | 92 | SYSCALL_SPU(readlink) |
| 93 | SYSCALL(uselib) | 93 | SYSCALL(uselib) |
| 94 | SYSCALL(swapon) | 94 | SYSCALL(swapon) |
| 95 | SYSCALL(reboot) | 95 | SYSCALL(reboot) |
| @@ -100,14 +100,14 @@ COMPAT_SYS_SPU(truncate) | |||
| 100 | COMPAT_SYS_SPU(ftruncate) | 100 | COMPAT_SYS_SPU(ftruncate) |
| 101 | SYSCALL_SPU(fchmod) | 101 | SYSCALL_SPU(fchmod) |
| 102 | SYSCALL_SPU(fchown) | 102 | SYSCALL_SPU(fchown) |
| 103 | COMPAT_SYS_SPU(getpriority) | 103 | SYSCALL_SPU(getpriority) |
| 104 | COMPAT_SYS_SPU(setpriority) | 104 | SYSCALL_SPU(setpriority) |
| 105 | SYSCALL(ni_syscall) | 105 | SYSCALL(ni_syscall) |
| 106 | COMPAT_SYS(statfs) | 106 | COMPAT_SYS(statfs) |
| 107 | COMPAT_SYS(fstatfs) | 107 | COMPAT_SYS(fstatfs) |
| 108 | SYSCALL(ni_syscall) | 108 | SYSCALL(ni_syscall) |
| 109 | COMPAT_SYS_SPU(socketcall) | 109 | COMPAT_SYS_SPU(socketcall) |
| 110 | COMPAT_SYS_SPU(syslog) | 110 | SYSCALL_SPU(syslog) |
| 111 | COMPAT_SYS_SPU(setitimer) | 111 | COMPAT_SYS_SPU(setitimer) |
| 112 | COMPAT_SYS_SPU(getitimer) | 112 | COMPAT_SYS_SPU(getitimer) |
| 113 | COMPAT_SYS_SPU(newstat) | 113 | COMPAT_SYS_SPU(newstat) |
| @@ -125,7 +125,7 @@ COMPAT_SYS(ipc) | |||
| 125 | SYSCALL_SPU(fsync) | 125 | SYSCALL_SPU(fsync) |
| 126 | SYS32ONLY(sigreturn) | 126 | SYS32ONLY(sigreturn) |
| 127 | PPC_SYS(clone) | 127 | PPC_SYS(clone) |
| 128 | COMPAT_SYS_SPU(setdomainname) | 128 | SYSCALL_SPU(setdomainname) |
| 129 | SYSCALL_SPU(newuname) | 129 | SYSCALL_SPU(newuname) |
| 130 | SYSCALL(ni_syscall) | 130 | SYSCALL(ni_syscall) |
| 131 | COMPAT_SYS_SPU(adjtimex) | 131 | COMPAT_SYS_SPU(adjtimex) |
| @@ -136,10 +136,10 @@ SYSCALL(init_module) | |||
| 136 | SYSCALL(delete_module) | 136 | SYSCALL(delete_module) |
| 137 | SYSCALL(ni_syscall) | 137 | SYSCALL(ni_syscall) |
| 138 | SYSCALL(quotactl) | 138 | SYSCALL(quotactl) |
| 139 | COMPAT_SYS_SPU(getpgid) | 139 | SYSCALL_SPU(getpgid) |
| 140 | SYSCALL_SPU(fchdir) | 140 | SYSCALL_SPU(fchdir) |
| 141 | SYSCALL_SPU(bdflush) | 141 | SYSCALL_SPU(bdflush) |
| 142 | COMPAT_SYS(sysfs) | 142 | SYSCALL_SPU(sysfs) |
| 143 | SYSX_SPU(ppc64_personality,ppc64_personality,sys_personality) | 143 | SYSX_SPU(ppc64_personality,ppc64_personality,sys_personality) |
| 144 | SYSCALL(ni_syscall) | 144 | SYSCALL(ni_syscall) |
| 145 | SYSCALL_SPU(setfsuid) | 145 | SYSCALL_SPU(setfsuid) |
| @@ -151,21 +151,21 @@ SYSCALL_SPU(flock) | |||
| 151 | SYSCALL_SPU(msync) | 151 | SYSCALL_SPU(msync) |
| 152 | COMPAT_SYS_SPU(readv) | 152 | COMPAT_SYS_SPU(readv) |
| 153 | COMPAT_SYS_SPU(writev) | 153 | COMPAT_SYS_SPU(writev) |
| 154 | COMPAT_SYS_SPU(getsid) | 154 | SYSCALL_SPU(getsid) |
| 155 | SYSCALL_SPU(fdatasync) | 155 | SYSCALL_SPU(fdatasync) |
| 156 | COMPAT_SYS(sysctl) | 156 | COMPAT_SYS(sysctl) |
| 157 | SYSCALL_SPU(mlock) | 157 | SYSCALL_SPU(mlock) |
| 158 | SYSCALL_SPU(munlock) | 158 | SYSCALL_SPU(munlock) |
| 159 | SYSCALL_SPU(mlockall) | 159 | SYSCALL_SPU(mlockall) |
| 160 | SYSCALL_SPU(munlockall) | 160 | SYSCALL_SPU(munlockall) |
| 161 | COMPAT_SYS_SPU(sched_setparam) | 161 | SYSCALL_SPU(sched_setparam) |
| 162 | COMPAT_SYS_SPU(sched_getparam) | 162 | SYSCALL_SPU(sched_getparam) |
| 163 | COMPAT_SYS_SPU(sched_setscheduler) | 163 | SYSCALL_SPU(sched_setscheduler) |
| 164 | COMPAT_SYS_SPU(sched_getscheduler) | 164 | SYSCALL_SPU(sched_getscheduler) |
| 165 | SYSCALL_SPU(sched_yield) | 165 | SYSCALL_SPU(sched_yield) |
| 166 | COMPAT_SYS_SPU(sched_get_priority_max) | 166 | SYSCALL_SPU(sched_get_priority_max) |
| 167 | COMPAT_SYS_SPU(sched_get_priority_min) | 167 | SYSCALL_SPU(sched_get_priority_min) |
| 168 | SYSX_SPU(sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval_wrapper,sys_sched_rr_get_interval) | 168 | COMPAT_SYS_SPU(sched_rr_get_interval) |
| 169 | COMPAT_SYS_SPU(nanosleep) | 169 | COMPAT_SYS_SPU(nanosleep) |
| 170 | SYSCALL_SPU(mremap) | 170 | SYSCALL_SPU(mremap) |
| 171 | SYSCALL_SPU(setresuid) | 171 | SYSCALL_SPU(setresuid) |
| @@ -175,7 +175,7 @@ SYSCALL_SPU(poll) | |||
| 175 | SYSCALL(ni_syscall) | 175 | SYSCALL(ni_syscall) |
| 176 | SYSCALL_SPU(setresgid) | 176 | SYSCALL_SPU(setresgid) |
| 177 | SYSCALL_SPU(getresgid) | 177 | SYSCALL_SPU(getresgid) |
| 178 | COMPAT_SYS_SPU(prctl) | 178 | SYSCALL_SPU(prctl) |
| 179 | COMPAT_SYS(rt_sigreturn) | 179 | COMPAT_SYS(rt_sigreturn) |
| 180 | COMPAT_SYS(rt_sigaction) | 180 | COMPAT_SYS(rt_sigaction) |
| 181 | COMPAT_SYS(rt_sigprocmask) | 181 | COMPAT_SYS(rt_sigprocmask) |
| @@ -254,7 +254,7 @@ COMPAT_SYS_SPU(clock_gettime) | |||
| 254 | COMPAT_SYS_SPU(clock_getres) | 254 | COMPAT_SYS_SPU(clock_getres) |
| 255 | COMPAT_SYS_SPU(clock_nanosleep) | 255 | COMPAT_SYS_SPU(clock_nanosleep) |
| 256 | SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext) | 256 | SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext) |
| 257 | COMPAT_SYS_SPU(tgkill) | 257 | SYSCALL_SPU(tgkill) |
| 258 | COMPAT_SYS_SPU(utimes) | 258 | COMPAT_SYS_SPU(utimes) |
| 259 | COMPAT_SYS_SPU(statfs64) | 259 | COMPAT_SYS_SPU(statfs64) |
| 260 | COMPAT_SYS_SPU(fstatfs64) | 260 | COMPAT_SYS_SPU(fstatfs64) |
| @@ -277,8 +277,8 @@ COMPAT_SYS(add_key) | |||
| 277 | COMPAT_SYS(request_key) | 277 | COMPAT_SYS(request_key) |
| 278 | COMPAT_SYS(keyctl) | 278 | COMPAT_SYS(keyctl) |
| 279 | COMPAT_SYS(waitid) | 279 | COMPAT_SYS(waitid) |
| 280 | COMPAT_SYS(ioprio_set) | 280 | SYSCALL(ioprio_set) |
| 281 | COMPAT_SYS(ioprio_get) | 281 | SYSCALL(ioprio_get) |
| 282 | SYSCALL(inotify_init) | 282 | SYSCALL(inotify_init) |
| 283 | SYSCALL(inotify_add_watch) | 283 | SYSCALL(inotify_add_watch) |
| 284 | SYSCALL(inotify_rm_watch) | 284 | SYSCALL(inotify_rm_watch) |
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c index 8a93778ed9f5..dbc44ba5b078 100644 --- a/arch/powerpc/kernel/sys_ppc32.c +++ b/arch/powerpc/kernel/sys_ppc32.c | |||
| @@ -61,16 +61,6 @@ asmlinkage long ppc32_select(u32 n, compat_ulong_t __user *inp, | |||
| 61 | return compat_sys_select((int)n, inp, outp, exp, compat_ptr(tvp_x)); | 61 | return compat_sys_select((int)n, inp, outp, exp, compat_ptr(tvp_x)); |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | /* Note: it is necessary to treat option as an unsigned int, | ||
| 65 | * with the corresponding cast to a signed int to insure that the | ||
| 66 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 67 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 68 | */ | ||
| 69 | asmlinkage long compat_sys_sysfs(u32 option, u32 arg1, u32 arg2) | ||
| 70 | { | ||
| 71 | return sys_sysfs((int)option, arg1, arg2); | ||
| 72 | } | ||
| 73 | |||
| 74 | #ifdef CONFIG_SYSVIPC | 64 | #ifdef CONFIG_SYSVIPC |
| 75 | long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr, | 65 | long compat_sys_ipc(u32 call, u32 first, u32 second, u32 third, compat_uptr_t ptr, |
| 76 | u32 fifth) | 66 | u32 fifth) |
| @@ -156,125 +146,6 @@ asmlinkage long compat_sys_sendfile64_wrapper(u32 out_fd, u32 in_fd, | |||
| 156 | (off_t __user *)offset, count); | 146 | (off_t __user *)offset, count); |
| 157 | } | 147 | } |
| 158 | 148 | ||
| 159 | /* Note: it is necessary to treat option as an unsigned int, | ||
| 160 | * with the corresponding cast to a signed int to insure that the | ||
| 161 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 162 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 163 | */ | ||
| 164 | asmlinkage long compat_sys_prctl(u32 option, u32 arg2, u32 arg3, u32 arg4, u32 arg5) | ||
| 165 | { | ||
| 166 | return sys_prctl((int)option, | ||
| 167 | (unsigned long) arg2, | ||
| 168 | (unsigned long) arg3, | ||
| 169 | (unsigned long) arg4, | ||
| 170 | (unsigned long) arg5); | ||
| 171 | } | ||
| 172 | |||
| 173 | /* Note: it is necessary to treat pid as an unsigned int, | ||
| 174 | * with the corresponding cast to a signed int to insure that the | ||
| 175 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 176 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 177 | */ | ||
| 178 | asmlinkage long compat_sys_sched_rr_get_interval_wrapper(u32 pid, | ||
| 179 | struct compat_timespec __user *interval) | ||
| 180 | { | ||
| 181 | return compat_sys_sched_rr_get_interval((int)pid, interval); | ||
| 182 | } | ||
| 183 | |||
| 184 | /* Note: it is necessary to treat mode as an unsigned int, | ||
| 185 | * with the corresponding cast to a signed int to insure that the | ||
| 186 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 187 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 188 | */ | ||
| 189 | asmlinkage long compat_sys_access(const char __user * filename, u32 mode) | ||
| 190 | { | ||
| 191 | return sys_access(filename, (int)mode); | ||
| 192 | } | ||
| 193 | |||
| 194 | |||
| 195 | /* Note: it is necessary to treat mode as an unsigned int, | ||
| 196 | * with the corresponding cast to a signed int to insure that the | ||
| 197 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 198 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 199 | */ | ||
| 200 | asmlinkage long compat_sys_creat(const char __user * pathname, u32 mode) | ||
| 201 | { | ||
| 202 | return sys_creat(pathname, (int)mode); | ||
| 203 | } | ||
| 204 | |||
| 205 | |||
| 206 | /* Note: it is necessary to treat pid and options as unsigned ints, | ||
| 207 | * with the corresponding cast to a signed int to insure that the | ||
| 208 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 209 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 210 | */ | ||
| 211 | asmlinkage long compat_sys_waitpid(u32 pid, unsigned int __user * stat_addr, u32 options) | ||
| 212 | { | ||
| 213 | return sys_waitpid((int)pid, stat_addr, (int)options); | ||
| 214 | } | ||
| 215 | |||
| 216 | |||
| 217 | /* Note: it is necessary to treat gidsetsize as an unsigned int, | ||
| 218 | * with the corresponding cast to a signed int to insure that the | ||
| 219 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 220 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 221 | */ | ||
| 222 | asmlinkage long compat_sys_getgroups(u32 gidsetsize, gid_t __user *grouplist) | ||
| 223 | { | ||
| 224 | return sys_getgroups((int)gidsetsize, grouplist); | ||
| 225 | } | ||
| 226 | |||
| 227 | |||
| 228 | /* Note: it is necessary to treat pid as an unsigned int, | ||
| 229 | * with the corresponding cast to a signed int to insure that the | ||
| 230 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 231 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 232 | */ | ||
| 233 | asmlinkage long compat_sys_getpgid(u32 pid) | ||
| 234 | { | ||
| 235 | return sys_getpgid((int)pid); | ||
| 236 | } | ||
| 237 | |||
| 238 | |||
| 239 | |||
| 240 | /* Note: it is necessary to treat pid as an unsigned int, | ||
| 241 | * with the corresponding cast to a signed int to insure that the | ||
| 242 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 243 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 244 | */ | ||
| 245 | asmlinkage long compat_sys_getsid(u32 pid) | ||
| 246 | { | ||
| 247 | return sys_getsid((int)pid); | ||
| 248 | } | ||
| 249 | |||
| 250 | |||
| 251 | /* Note: it is necessary to treat pid and sig as unsigned ints, | ||
| 252 | * with the corresponding cast to a signed int to insure that the | ||
| 253 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 254 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 255 | */ | ||
| 256 | asmlinkage long compat_sys_kill(u32 pid, u32 sig) | ||
| 257 | { | ||
| 258 | return sys_kill((int)pid, (int)sig); | ||
| 259 | } | ||
| 260 | |||
| 261 | |||
| 262 | /* Note: it is necessary to treat mode as an unsigned int, | ||
| 263 | * with the corresponding cast to a signed int to insure that the | ||
| 264 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 265 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 266 | */ | ||
| 267 | asmlinkage long compat_sys_mkdir(const char __user * pathname, u32 mode) | ||
| 268 | { | ||
| 269 | return sys_mkdir(pathname, (int)mode); | ||
| 270 | } | ||
| 271 | |||
| 272 | long compat_sys_nice(u32 increment) | ||
| 273 | { | ||
| 274 | /* sign extend increment */ | ||
| 275 | return sys_nice((int)increment); | ||
| 276 | } | ||
| 277 | |||
| 278 | off_t ppc32_lseek(unsigned int fd, u32 offset, unsigned int origin) | 149 | off_t ppc32_lseek(unsigned int fd, u32 offset, unsigned int origin) |
| 279 | { | 150 | { |
| 280 | /* sign extend n */ | 151 | /* sign extend n */ |
| @@ -293,172 +164,6 @@ long compat_sys_ftruncate(int fd, u32 length) | |||
| 293 | return sys_ftruncate(fd, (int)length); | 164 | return sys_ftruncate(fd, (int)length); |
| 294 | } | 165 | } |
| 295 | 166 | ||
| 296 | /* Note: it is necessary to treat bufsiz as an unsigned int, | ||
| 297 | * with the corresponding cast to a signed int to insure that the | ||
| 298 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 299 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 300 | */ | ||
| 301 | asmlinkage long compat_sys_readlink(const char __user * path, char __user * buf, u32 bufsiz) | ||
| 302 | { | ||
| 303 | return sys_readlink(path, buf, (int)bufsiz); | ||
| 304 | } | ||
| 305 | |||
| 306 | /* Note: it is necessary to treat option as an unsigned int, | ||
| 307 | * with the corresponding cast to a signed int to insure that the | ||
| 308 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 309 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 310 | */ | ||
| 311 | asmlinkage long compat_sys_sched_get_priority_max(u32 policy) | ||
| 312 | { | ||
| 313 | return sys_sched_get_priority_max((int)policy); | ||
| 314 | } | ||
| 315 | |||
| 316 | |||
| 317 | /* Note: it is necessary to treat policy as an unsigned int, | ||
| 318 | * with the corresponding cast to a signed int to insure that the | ||
| 319 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 320 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 321 | */ | ||
| 322 | asmlinkage long compat_sys_sched_get_priority_min(u32 policy) | ||
| 323 | { | ||
| 324 | return sys_sched_get_priority_min((int)policy); | ||
| 325 | } | ||
| 326 | |||
| 327 | |||
| 328 | /* Note: it is necessary to treat pid as an unsigned int, | ||
| 329 | * with the corresponding cast to a signed int to insure that the | ||
| 330 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 331 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 332 | */ | ||
| 333 | asmlinkage long compat_sys_sched_getparam(u32 pid, struct sched_param __user *param) | ||
| 334 | { | ||
| 335 | return sys_sched_getparam((int)pid, param); | ||
| 336 | } | ||
| 337 | |||
| 338 | |||
| 339 | /* Note: it is necessary to treat pid as an unsigned int, | ||
| 340 | * with the corresponding cast to a signed int to insure that the | ||
| 341 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 342 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 343 | */ | ||
| 344 | asmlinkage long compat_sys_sched_getscheduler(u32 pid) | ||
| 345 | { | ||
| 346 | return sys_sched_getscheduler((int)pid); | ||
| 347 | } | ||
| 348 | |||
| 349 | |||
| 350 | /* Note: it is necessary to treat pid as an unsigned int, | ||
| 351 | * with the corresponding cast to a signed int to insure that the | ||
| 352 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 353 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 354 | */ | ||
| 355 | asmlinkage long compat_sys_sched_setparam(u32 pid, struct sched_param __user *param) | ||
| 356 | { | ||
| 357 | return sys_sched_setparam((int)pid, param); | ||
| 358 | } | ||
| 359 | |||
| 360 | |||
| 361 | /* Note: it is necessary to treat pid and policy as unsigned ints, | ||
| 362 | * with the corresponding cast to a signed int to insure that the | ||
| 363 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 364 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 365 | */ | ||
| 366 | asmlinkage long compat_sys_sched_setscheduler(u32 pid, u32 policy, struct sched_param __user *param) | ||
| 367 | { | ||
| 368 | return sys_sched_setscheduler((int)pid, (int)policy, param); | ||
| 369 | } | ||
| 370 | |||
| 371 | |||
| 372 | /* Note: it is necessary to treat len as an unsigned int, | ||
| 373 | * with the corresponding cast to a signed int to insure that the | ||
| 374 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 375 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 376 | */ | ||
| 377 | asmlinkage long compat_sys_setdomainname(char __user *name, u32 len) | ||
| 378 | { | ||
| 379 | return sys_setdomainname(name, (int)len); | ||
| 380 | } | ||
| 381 | |||
| 382 | |||
| 383 | /* Note: it is necessary to treat gidsetsize as an unsigned int, | ||
| 384 | * with the corresponding cast to a signed int to insure that the | ||
| 385 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 386 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 387 | */ | ||
| 388 | asmlinkage long compat_sys_setgroups(u32 gidsetsize, gid_t __user *grouplist) | ||
| 389 | { | ||
| 390 | return sys_setgroups((int)gidsetsize, grouplist); | ||
| 391 | } | ||
| 392 | |||
| 393 | |||
| 394 | asmlinkage long compat_sys_sethostname(char __user *name, u32 len) | ||
| 395 | { | ||
| 396 | /* sign extend len */ | ||
| 397 | return sys_sethostname(name, (int)len); | ||
| 398 | } | ||
| 399 | |||
| 400 | |||
| 401 | /* Note: it is necessary to treat pid and pgid as unsigned ints, | ||
| 402 | * with the corresponding cast to a signed int to insure that the | ||
| 403 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 404 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 405 | */ | ||
| 406 | asmlinkage long compat_sys_setpgid(u32 pid, u32 pgid) | ||
| 407 | { | ||
| 408 | return sys_setpgid((int)pid, (int)pgid); | ||
| 409 | } | ||
| 410 | |||
| 411 | long compat_sys_getpriority(u32 which, u32 who) | ||
| 412 | { | ||
| 413 | /* sign extend which and who */ | ||
| 414 | return sys_getpriority((int)which, (int)who); | ||
| 415 | } | ||
| 416 | |||
| 417 | long compat_sys_setpriority(u32 which, u32 who, u32 niceval) | ||
| 418 | { | ||
| 419 | /* sign extend which, who and niceval */ | ||
| 420 | return sys_setpriority((int)which, (int)who, (int)niceval); | ||
| 421 | } | ||
| 422 | |||
| 423 | long compat_sys_ioprio_get(u32 which, u32 who) | ||
| 424 | { | ||
| 425 | /* sign extend which and who */ | ||
| 426 | return sys_ioprio_get((int)which, (int)who); | ||
| 427 | } | ||
| 428 | |||
| 429 | long compat_sys_ioprio_set(u32 which, u32 who, u32 ioprio) | ||
| 430 | { | ||
| 431 | /* sign extend which, who and ioprio */ | ||
| 432 | return sys_ioprio_set((int)which, (int)who, (int)ioprio); | ||
| 433 | } | ||
| 434 | |||
| 435 | /* Note: it is necessary to treat newmask as an unsigned int, | ||
| 436 | * with the corresponding cast to a signed int to insure that the | ||
| 437 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 438 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 439 | */ | ||
| 440 | asmlinkage long compat_sys_ssetmask(u32 newmask) | ||
| 441 | { | ||
| 442 | return sys_ssetmask((int) newmask); | ||
| 443 | } | ||
| 444 | |||
| 445 | asmlinkage long compat_sys_syslog(u32 type, char __user * buf, u32 len) | ||
| 446 | { | ||
| 447 | /* sign extend len */ | ||
| 448 | return sys_syslog(type, buf, (int)len); | ||
| 449 | } | ||
| 450 | |||
| 451 | |||
| 452 | /* Note: it is necessary to treat mask as an unsigned int, | ||
| 453 | * with the corresponding cast to a signed int to insure that the | ||
| 454 | * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) | ||
| 455 | * and the register representation of a signed int (msr in 64-bit mode) is performed. | ||
| 456 | */ | ||
| 457 | asmlinkage long compat_sys_umask(u32 mask) | ||
| 458 | { | ||
| 459 | return sys_umask((int)mask); | ||
| 460 | } | ||
| 461 | |||
| 462 | unsigned long compat_sys_mmap2(unsigned long addr, size_t len, | 167 | unsigned long compat_sys_mmap2(unsigned long addr, size_t len, |
| 463 | unsigned long prot, unsigned long flags, | 168 | unsigned long prot, unsigned long flags, |
| 464 | unsigned long fd, unsigned long pgoff) | 169 | unsigned long fd, unsigned long pgoff) |
| @@ -467,12 +172,6 @@ unsigned long compat_sys_mmap2(unsigned long addr, size_t len, | |||
| 467 | return sys_mmap(addr, len, prot, flags, fd, pgoff << 12); | 172 | return sys_mmap(addr, len, prot, flags, fd, pgoff << 12); |
| 468 | } | 173 | } |
| 469 | 174 | ||
| 470 | long compat_sys_tgkill(u32 tgid, u32 pid, int sig) | ||
| 471 | { | ||
| 472 | /* sign extend tgid, pid */ | ||
| 473 | return sys_tgkill((int)tgid, (int)pid, sig); | ||
| 474 | } | ||
| 475 | |||
| 476 | /* | 175 | /* |
| 477 | * long long munging: | 176 | * long long munging: |
| 478 | * The 32 bit ABI passes long longs in an odd even register pair. | 177 | * The 32 bit ABI passes long longs in an odd even register pair. |
