diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-14 01:41:42 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-22 22:31:01 -0400 |
| commit | 7147e215480323bb2617fcebf585c447188ff760 (patch) | |
| tree | fb5d92e4f9e2f4d5d5c8e4449c4ef43e05275826 /arch/sh/kernel/cpu/sh5 | |
| parent | ddffeb8c4d0331609ef2581d84de4d763607bd37 (diff) | |
sh: switch to generic kernel_thread()/kernel_execve()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/sh/kernel/cpu/sh5')
| -rw-r--r-- | arch/sh/kernel/cpu/sh5/entry.S | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S index 7e605b95592a..0c8d0377d40b 100644 --- a/arch/sh/kernel/cpu/sh5/entry.S +++ b/arch/sh/kernel/cpu/sh5/entry.S | |||
| @@ -1228,6 +1228,25 @@ ret_from_fork: | |||
| 1228 | pta ret_from_syscall, tr0 | 1228 | pta ret_from_syscall, tr0 |
| 1229 | blink tr0, ZERO | 1229 | blink tr0, ZERO |
| 1230 | 1230 | ||
| 1231 | .global ret_from_kernel_thread | ||
| 1232 | ret_from_kernel_thread: | ||
| 1233 | |||
| 1234 | movi schedule_tail,r5 | ||
| 1235 | ori r5, 1, r5 | ||
| 1236 | ptabs r5, tr0 | ||
| 1237 | blink tr0, LINK | ||
| 1238 | |||
| 1239 | ld.q SP, FRAME_R(2), r2 | ||
| 1240 | ld.q SP, FRAME_R(3), r3 | ||
| 1241 | ptabs r3, tr0 | ||
| 1242 | blink tr0, LINK | ||
| 1243 | |||
| 1244 | ld.q SP, FRAME_S(FSPC), r2 | ||
| 1245 | addi r2, 4, r2 /* Move PC, being pre-execution event */ | ||
| 1246 | st.q SP, FRAME_S(FSPC), r2 | ||
| 1247 | pta ret_from_syscall, tr0 | ||
| 1248 | blink tr0, ZERO | ||
| 1249 | |||
| 1231 | syscall_allowed: | 1250 | syscall_allowed: |
| 1232 | /* Use LINK to deflect the exit point, default is syscall_ret */ | 1251 | /* Use LINK to deflect the exit point, default is syscall_ret */ |
| 1233 | pta syscall_ret, tr0 | 1252 | pta syscall_ret, tr0 |
