summaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel/intvec_64.S
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2012-10-19 16:25:12 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-20 13:13:29 -0400
commit0f8b983812f5ff588d7e3459b203714e4e58a9b2 (patch)
treec3daaff762ca64667dc4d412509e9472b4f3d72d /arch/tile/kernel/intvec_64.S
parent733deca197143857f938b41d671cd7ce9c53c4bc (diff)
downloadblackbird-op-linux-0f8b983812f5ff588d7e3459b203714e4e58a9b2.tar.gz
blackbird-op-linux-0f8b983812f5ff588d7e3459b203714e4e58a9b2.zip
tile: support GENERIC_KERNEL_THREAD and GENERIC_KERNEL_EXECVE
Also provide an optimized current_pt_regs() while we're at it. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/tile/kernel/intvec_64.S')
-rw-r--r--arch/tile/kernel/intvec_64.S15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/tile/kernel/intvec_64.S b/arch/tile/kernel/intvec_64.S
index 73f6c0a648c4..f66bd5f67d44 100644
--- a/arch/tile/kernel/intvec_64.S
+++ b/arch/tile/kernel/intvec_64.S
@@ -1150,6 +1150,21 @@ STD_ENTRY(ret_from_fork)
}
STD_ENDPROC(ret_from_fork)
+STD_ENTRY(ret_from_kernel_thread)
+ jal sim_notify_fork
+ jal schedule_tail
+ FEEDBACK_REENTER(ret_from_fork)
+ {
+ move r0, r31
+ jalr r30
+ }
+ FEEDBACK_REENTER(ret_from_kernel_thread)
+ {
+ movei r30, 0 /* not an NMI */
+ j .Lresume_userspace /* jump into middle of interrupt_return */
+ }
+ STD_ENDPROC(ret_from_kernel_thread)
+
/* Various stub interrupt handlers and syscall handlers */
STD_ENTRY_LOCAL(_kernel_double_fault)
OpenPOWER on IntegriCloud