diff options
| author | Ingo Molnar <mingo@elte.hu> | 2010-03-15 03:17:33 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2010-03-15 03:17:33 -0400 |
| commit | 12b8aeee3e51654fb95a3baff2e093f2513bb87d (patch) | |
| tree | 73f78d62591b197cd53747e36a2f3d707b79a50b /arch/mips/kernel/syscall.c | |
| parent | 25268498c9e07870323aead10751b7c6e99a3a78 (diff) | |
| parent | a3d3203e4bb40f253b1541e310dc0f9305be7c84 (diff) | |
Merge branch 'linus' into timers/core
Conflicts:
Documentation/feature-removal-schedule.txt
Merge reason: Resolve the conflict, update to upstream.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/mips/kernel/syscall.c')
| -rw-r--r-- | arch/mips/kernel/syscall.c | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 3f7f466190b4..e96b1c30c7aa 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c | |||
| @@ -215,48 +215,6 @@ out: | |||
| 215 | return error; | 215 | return error; |
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | /* | ||
| 219 | * Compacrapability ... | ||
| 220 | */ | ||
| 221 | SYSCALL_DEFINE1(uname, struct old_utsname __user *, name) | ||
| 222 | { | ||
| 223 | if (name && !copy_to_user(name, utsname(), sizeof (*name))) | ||
| 224 | return 0; | ||
| 225 | return -EFAULT; | ||
| 226 | } | ||
| 227 | |||
| 228 | /* | ||
| 229 | * Compacrapability ... | ||
| 230 | */ | ||
| 231 | SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name) | ||
| 232 | { | ||
| 233 | int error; | ||
| 234 | |||
| 235 | if (!name) | ||
| 236 | return -EFAULT; | ||
| 237 | if (!access_ok(VERIFY_WRITE, name, sizeof(struct oldold_utsname))) | ||
| 238 | return -EFAULT; | ||
| 239 | |||
| 240 | error = __copy_to_user(&name->sysname, &utsname()->sysname, | ||
| 241 | __OLD_UTS_LEN); | ||
| 242 | error -= __put_user(0, name->sysname + __OLD_UTS_LEN); | ||
| 243 | error -= __copy_to_user(&name->nodename, &utsname()->nodename, | ||
| 244 | __OLD_UTS_LEN); | ||
| 245 | error -= __put_user(0, name->nodename + __OLD_UTS_LEN); | ||
| 246 | error -= __copy_to_user(&name->release, &utsname()->release, | ||
| 247 | __OLD_UTS_LEN); | ||
| 248 | error -= __put_user(0, name->release + __OLD_UTS_LEN); | ||
| 249 | error -= __copy_to_user(&name->version, &utsname()->version, | ||
| 250 | __OLD_UTS_LEN); | ||
| 251 | error -= __put_user(0, name->version + __OLD_UTS_LEN); | ||
| 252 | error -= __copy_to_user(&name->machine, &utsname()->machine, | ||
| 253 | __OLD_UTS_LEN); | ||
| 254 | error = __put_user(0, name->machine + __OLD_UTS_LEN); | ||
| 255 | error = error ? -EFAULT : 0; | ||
| 256 | |||
| 257 | return error; | ||
| 258 | } | ||
| 259 | |||
| 260 | SYSCALL_DEFINE1(set_thread_area, unsigned long, addr) | 218 | SYSCALL_DEFINE1(set_thread_area, unsigned long, addr) |
| 261 | { | 219 | { |
| 262 | struct thread_info *ti = task_thread_info(current); | 220 | struct thread_info *ti = task_thread_info(current); |
| @@ -407,94 +365,6 @@ _sys_sysmips(nabi_no_regargs struct pt_regs regs) | |||
| 407 | } | 365 | } |
| 408 | 366 | ||
| 409 | /* | 367 | /* |
| 410 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. | ||
| 411 | * | ||
| 412 | * This is really horribly ugly. | ||
| 413 | */ | ||
| 414 | SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, int, second, | ||
| 415 | unsigned long, third, void __user *, ptr, long, fifth) | ||
| 416 | { | ||
| 417 | int version, ret; | ||
| 418 | |||
| 419 | version = call >> 16; /* hack for backward compatibility */ | ||
| 420 | call &= 0xffff; | ||
| 421 | |||
| 422 | switch (call) { | ||
| 423 | case SEMOP: | ||
| 424 | return sys_semtimedop(first, (struct sembuf __user *)ptr, | ||
| 425 | second, NULL); | ||
| 426 | case SEMTIMEDOP: | ||
| 427 | return sys_semtimedop(first, (struct sembuf __user *)ptr, | ||
| 428 | second, | ||
| 429 | (const struct timespec __user *)fifth); | ||
| 430 | case SEMGET: | ||
| 431 | return sys_semget(first, second, third); | ||
| 432 | case SEMCTL: { | ||
| 433 | union semun fourth; | ||
| 434 | if (!ptr) | ||
| 435 | return -EINVAL; | ||
| 436 | if (get_user(fourth.__pad, (void __user *__user *) ptr)) | ||
| 437 | return -EFAULT; | ||
| 438 | return sys_semctl(first, second, third, fourth); | ||
| 439 | } | ||
| 440 | |||
| 441 | case MSGSND: | ||
| 442 | return sys_msgsnd(first, (struct msgbuf __user *) ptr, | ||
| 443 | second, third); | ||
| 444 | case MSGRCV: | ||
| 445 | switch (version) { | ||
| 446 | case 0: { | ||
| 447 | struct ipc_kludge tmp; | ||
| 448 | if (!ptr) | ||
| 449 | return -EINVAL; | ||
| 450 | |||
| 451 | if (copy_from_user(&tmp, | ||
| 452 | (struct ipc_kludge __user *) ptr, | ||
| 453 | sizeof(tmp))) | ||
| 454 | return -EFAULT; | ||
| 455 | return sys_msgrcv(first, tmp.msgp, second, | ||
| 456 | tmp.msgtyp, third); | ||
| 457 | } | ||
| 458 | default: | ||
| 459 | return sys_msgrcv(first, | ||
| 460 | (struct msgbuf __user *) ptr, | ||
| 461 | second, fifth, third); | ||
| 462 | } | ||
| 463 | case MSGGET: | ||
| 464 | return sys_msgget((key_t) first, second); | ||
| 465 | case MSGCTL: | ||
| 466 | return sys_msgctl(first, second, | ||
| 467 | (struct msqid_ds __user *) ptr); | ||
| 468 | |||
| 469 | case SHMAT: | ||
| 470 | switch (version) { | ||
| 471 | default: { | ||
| 472 | unsigned long raddr; | ||
| 473 | ret = do_shmat(first, (char __user *) ptr, second, | ||
| 474 | &raddr); | ||
| 475 | if (ret) | ||
| 476 | return ret; | ||
| 477 | return put_user(raddr, (unsigned long __user *) third); | ||
| 478 | } | ||
| 479 | case 1: /* iBCS2 emulator entry point */ | ||
| 480 | if (!segment_eq(get_fs(), get_ds())) | ||
| 481 | return -EINVAL; | ||
| 482 | return do_shmat(first, (char __user *) ptr, second, | ||
| 483 | (unsigned long *) third); | ||
| 484 | } | ||
| 485 | case SHMDT: | ||
| 486 | return sys_shmdt((char __user *)ptr); | ||
| 487 | case SHMGET: | ||
| 488 | return sys_shmget(first, second, third); | ||
| 489 | case SHMCTL: | ||
| 490 | return sys_shmctl(first, second, | ||
| 491 | (struct shmid_ds __user *) ptr); | ||
| 492 | default: | ||
| 493 | return -ENOSYS; | ||
| 494 | } | ||
| 495 | } | ||
| 496 | |||
| 497 | /* | ||
| 498 | * No implemented yet ... | 368 | * No implemented yet ... |
| 499 | */ | 369 | */ |
| 500 | SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op) | 370 | SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op) |
