diff options
| -rw-r--r-- | arch/microblaze/kernel/sys_microblaze.c | 99 | ||||
| -rw-r--r-- | arch/microblaze/kernel/syscall_table.S | 2 |
2 files changed, 1 insertions, 100 deletions
diff --git a/arch/microblaze/kernel/sys_microblaze.c b/arch/microblaze/kernel/sys_microblaze.c index e000bce09b2b..b96f1682bb24 100644 --- a/arch/microblaze/kernel/sys_microblaze.c +++ b/arch/microblaze/kernel/sys_microblaze.c | |||
| @@ -33,105 +33,6 @@ | |||
| 33 | #include <linux/unistd.h> | 33 | #include <linux/unistd.h> |
| 34 | 34 | ||
| 35 | #include <asm/syscalls.h> | 35 | #include <asm/syscalls.h> |
| 36 | /* | ||
| 37 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. | ||
| 38 | * | ||
| 39 | * This is really horribly ugly. This will be remove with new toolchain. | ||
| 40 | */ | ||
| 41 | asmlinkage long | ||
| 42 | sys_ipc(uint call, int first, int second, int third, void *ptr, long fifth) | ||
| 43 | { | ||
| 44 | int version, ret; | ||
| 45 | |||
| 46 | version = call >> 16; /* hack for backward compatibility */ | ||
| 47 | call &= 0xffff; | ||
| 48 | |||
| 49 | ret = -EINVAL; | ||
| 50 | switch (call) { | ||
| 51 | case SEMOP: | ||
| 52 | ret = sys_semop(first, (struct sembuf *)ptr, second); | ||
| 53 | break; | ||
| 54 | case SEMGET: | ||
| 55 | ret = sys_semget(first, second, third); | ||
| 56 | break; | ||
| 57 | case SEMCTL: | ||
| 58 | { | ||
| 59 | union semun fourth; | ||
| 60 | |||
| 61 | if (!ptr) | ||
| 62 | break; | ||
| 63 | ret = (access_ok(VERIFY_READ, ptr, sizeof(long)) ? 0 : -EFAULT) | ||
| 64 | || (get_user(fourth.__pad, (void **)ptr)) ; | ||
| 65 | if (ret) | ||
| 66 | break; | ||
| 67 | ret = sys_semctl(first, second, third, fourth); | ||
| 68 | break; | ||
| 69 | } | ||
| 70 | case MSGSND: | ||
| 71 | ret = sys_msgsnd(first, (struct msgbuf *) ptr, second, third); | ||
| 72 | break; | ||
| 73 | case MSGRCV: | ||
| 74 | switch (version) { | ||
| 75 | case 0: { | ||
| 76 | struct ipc_kludge tmp; | ||
| 77 | |||
| 78 | if (!ptr) | ||
| 79 | break; | ||
| 80 | ret = (access_ok(VERIFY_READ, ptr, sizeof(tmp)) | ||
| 81 | ? 0 : -EFAULT) || copy_from_user(&tmp, | ||
| 82 | (struct ipc_kludge *) ptr, sizeof(tmp)); | ||
| 83 | if (ret) | ||
| 84 | break; | ||
| 85 | ret = sys_msgrcv(first, tmp.msgp, second, tmp.msgtyp, | ||
| 86 | third); | ||
| 87 | break; | ||
| 88 | } | ||
| 89 | default: | ||
| 90 | ret = sys_msgrcv(first, (struct msgbuf *) ptr, | ||
| 91 | second, fifth, third); | ||
| 92 | break; | ||
| 93 | } | ||
| 94 | break; | ||
| 95 | case MSGGET: | ||
| 96 | ret = sys_msgget((key_t) first, second); | ||
| 97 | break; | ||
| 98 | case MSGCTL: | ||
| 99 | ret = sys_msgctl(first, second, (struct msqid_ds *) ptr); | ||
| 100 | break; | ||
| 101 | case SHMAT: | ||
| 102 | switch (version) { | ||
| 103 | default: { | ||
| 104 | ulong raddr; | ||
| 105 | ret = access_ok(VERIFY_WRITE, (ulong *) third, | ||
| 106 | sizeof(ulong)) ? 0 : -EFAULT; | ||
| 107 | if (ret) | ||
| 108 | break; | ||
| 109 | ret = do_shmat(first, (char *) ptr, second, &raddr); | ||
| 110 | if (ret) | ||
| 111 | break; | ||
| 112 | ret = put_user(raddr, (ulong *) third); | ||
| 113 | break; | ||
| 114 | } | ||
| 115 | case 1: /* iBCS2 emulator entry point */ | ||
| 116 | if (!segment_eq(get_fs(), get_ds())) | ||
| 117 | break; | ||
| 118 | ret = do_shmat(first, (char *) ptr, second, | ||
| 119 | (ulong *) third); | ||
| 120 | break; | ||
| 121 | } | ||
| 122 | break; | ||
| 123 | case SHMDT: | ||
| 124 | ret = sys_shmdt((char *)ptr); | ||
| 125 | break; | ||
| 126 | case SHMGET: | ||
| 127 | ret = sys_shmget(first, second, third); | ||
| 128 | break; | ||
| 129 | case SHMCTL: | ||
| 130 | ret = sys_shmctl(first, second, (struct shmid_ds *) ptr); | ||
| 131 | break; | ||
| 132 | } | ||
| 133 | return ret; | ||
| 134 | } | ||
| 135 | 36 | ||
| 136 | asmlinkage long microblaze_vfork(struct pt_regs *regs) | 37 | asmlinkage long microblaze_vfork(struct pt_regs *regs) |
| 137 | { | 38 | { |
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S index 31b32a6c5f4e..216db817beb6 100644 --- a/arch/microblaze/kernel/syscall_table.S +++ b/arch/microblaze/kernel/syscall_table.S | |||
| @@ -121,7 +121,7 @@ ENTRY(sys_call_table) | |||
| 121 | .long sys_wait4 | 121 | .long sys_wait4 |
| 122 | .long sys_swapoff /* 115 */ | 122 | .long sys_swapoff /* 115 */ |
| 123 | .long sys_sysinfo | 123 | .long sys_sysinfo |
| 124 | .long sys_ipc | 124 | .long sys_ni_syscall /* old sys_ipc */ |
| 125 | .long sys_fsync | 125 | .long sys_fsync |
| 126 | .long sys_ni_syscall /* sys_sigreturn_wrapper */ | 126 | .long sys_ni_syscall /* sys_sigreturn_wrapper */ |
| 127 | .long sys_clone /* 120 */ | 127 | .long sys_clone /* 120 */ |
