diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-06 13:52:37 -0400 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2012-11-16 08:44:57 +0100 |
commit | 2319295dd8dbd076afa136bffb797ef726b605a0 (patch) | |
tree | 9699149edbd77d16d8c41914677068ab6cde167c /arch/microblaze/kernel/entry.S | |
parent | fd11ff7380fe7c61f55e6caf33982edeab3fbc19 (diff) | |
download | op-kernel-dev-2319295dd8dbd076afa136bffb797ef726b605a0.zip op-kernel-dev-2319295dd8dbd076afa136bffb797ef726b605a0.tar.gz |
microblaze: switch to generic kernel_thread()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'arch/microblaze/kernel/entry.S')
-rw-r--r-- | arch/microblaze/kernel/entry.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index 1cf702a..be76d13 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S @@ -484,6 +484,15 @@ C_ENTRY(ret_from_fork): brid ret_from_trap; /* Do normal trap return */ add r3, r0, r0; /* Child's fork call should return 0. */ +C_ENTRY(ret_from_kernel_thread): + bralid r15, schedule_tail; /* ...which is schedule_tail's arg */ + add r5, r3, r0; /* switch_thread returns the prev task */ + /* ( in the delay slot ) */ + brald r15, r20 /* fn was left in r20 */ + addk r5, r0, r19 /* ... and argument - in r19 */ + brid sys_exit /* won't be returning... */ + addk r5, r0, r0 + C_ENTRY(sys_vfork): brid microblaze_vfork /* Do real work (tail-call) */ addik r5, r1, 0 |