diff options
author | Chris Metcalf <cmetcalf@tilera.com> | 2012-10-19 16:25:12 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-20 13:13:29 -0400 |
commit | 0f8b983812f5ff588d7e3459b203714e4e58a9b2 (patch) | |
tree | c3daaff762ca64667dc4d412509e9472b4f3d72d /arch/tile/kernel/intvec_64.S | |
parent | 733deca197143857f938b41d671cd7ce9c53c4bc (diff) | |
download | blackbird-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.S | 15 |
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) |