diff options
| -rw-r--r-- | arch/sparc/kernel/sys32.S | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/syscalls.S | 14 | ||||
| -rw-r--r-- | arch/sparc/kernel/systbls_64.S | 2 |
3 files changed, 14 insertions, 4 deletions
diff --git a/arch/sparc/kernel/sys32.S b/arch/sparc/kernel/sys32.S index 44025f4ba41f..8475a474273a 100644 --- a/arch/sparc/kernel/sys32.S +++ b/arch/sparc/kernel/sys32.S | |||
| @@ -47,7 +47,7 @@ STUB: sra REG1, 0, REG1; \ | |||
| 47 | sra REG4, 0, REG4 | 47 | sra REG4, 0, REG4 |
| 48 | 48 | ||
| 49 | SIGN1(sys32_exit, sparc_exit, %o0) | 49 | SIGN1(sys32_exit, sparc_exit, %o0) |
| 50 | SIGN1(sys32_exit_group, sys_exit_group, %o0) | 50 | SIGN1(sys32_exit_group, sparc_exit_group, %o0) |
| 51 | SIGN1(sys32_wait4, compat_sys_wait4, %o2) | 51 | SIGN1(sys32_wait4, compat_sys_wait4, %o2) |
| 52 | SIGN1(sys32_creat, sys_creat, %o1) | 52 | SIGN1(sys32_creat, sys_creat, %o1) |
| 53 | SIGN1(sys32_mknod, sys_mknod, %o1) | 53 | SIGN1(sys32_mknod, sys_mknod, %o1) |
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S index 7f5f65d0b3fd..bf2347794e33 100644 --- a/arch/sparc/kernel/syscalls.S +++ b/arch/sparc/kernel/syscalls.S | |||
| @@ -118,10 +118,20 @@ ret_from_syscall: | |||
| 118 | ba,pt %xcc, ret_sys_call | 118 | ba,pt %xcc, ret_sys_call |
| 119 | ldx [%sp + PTREGS_OFF + PT_V9_I0], %o0 | 119 | ldx [%sp + PTREGS_OFF + PT_V9_I0], %o0 |
| 120 | 120 | ||
| 121 | .globl sparc_exit_group | ||
| 122 | .type sparc_exit_group,#function | ||
| 123 | sparc_exit_group: | ||
| 124 | sethi %hi(sys_exit_group), %g7 | ||
| 125 | ba,pt %xcc, 1f | ||
| 126 | or %g7, %lo(sys_exit_group), %g7 | ||
| 127 | .size sparc_exit_group,.-sparc_exit_group | ||
| 128 | |||
| 121 | .globl sparc_exit | 129 | .globl sparc_exit |
| 122 | .type sparc_exit,#function | 130 | .type sparc_exit,#function |
| 123 | sparc_exit: | 131 | sparc_exit: |
| 124 | rdpr %pstate, %g2 | 132 | sethi %hi(sys_exit), %g7 |
| 133 | or %g7, %lo(sys_exit), %g7 | ||
| 134 | 1: rdpr %pstate, %g2 | ||
| 125 | wrpr %g2, PSTATE_IE, %pstate | 135 | wrpr %g2, PSTATE_IE, %pstate |
| 126 | rdpr %otherwin, %g1 | 136 | rdpr %otherwin, %g1 |
| 127 | rdpr %cansave, %g3 | 137 | rdpr %cansave, %g3 |
| @@ -129,7 +139,7 @@ sparc_exit: | |||
| 129 | wrpr %g3, 0x0, %cansave | 139 | wrpr %g3, 0x0, %cansave |
| 130 | wrpr %g0, 0x0, %otherwin | 140 | wrpr %g0, 0x0, %otherwin |
| 131 | wrpr %g2, 0x0, %pstate | 141 | wrpr %g2, 0x0, %pstate |
| 132 | ba,pt %xcc, sys_exit | 142 | jmpl %g7, %g0 |
| 133 | stb %g0, [%g6 + TI_WSAVED] | 143 | stb %g0, [%g6 + TI_WSAVED] |
| 134 | .size sparc_exit,.-sparc_exit | 144 | .size sparc_exit,.-sparc_exit |
| 135 | 145 | ||
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S index 1c9af9fa38e9..017b74a63dcb 100644 --- a/arch/sparc/kernel/systbls_64.S +++ b/arch/sparc/kernel/systbls_64.S | |||
| @@ -133,7 +133,7 @@ sys_call_table: | |||
| 133 | /*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents | 133 | /*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents |
| 134 | .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr | 134 | .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr |
| 135 | /*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall | 135 | /*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall |
| 136 | .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname | 136 | .word sys_setpgid, sys_fremovexattr, sys_tkill, sparc_exit_group, sys_newuname |
| 137 | /*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl | 137 | /*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl |
| 138 | .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask | 138 | .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask |
| 139 | /*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall | 139 | /*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall |
