提交 1e00227d 编写于 作者: D David Howells 提交者: Linus Torvalds

MN10300: Fix ret_from_kernel_thread

ret_from_kernel_thread needs to set A2 to the thread_info pointer before
jumping to syscall_exit.

Without this, we never correctly start userspace.

This was caused by the rejuggling of the fork/exec paths in commit
ddf23e87 ("mn10300: switch to saner kernel_execve() semantics")
Reported-by: NKen Cox <jkc@redhat.com>
Signed-off-by: NDavid Howells <dhowells@redhat.com>
Acked-by: NKen Cox <jkc@redhat.com>
Acked-by: NAl Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 e4aa937e
...@@ -60,6 +60,7 @@ ENTRY(ret_from_kernel_thread) ...@@ -60,6 +60,7 @@ ENTRY(ret_from_kernel_thread)
mov (REG_D0,fp),d0 mov (REG_D0,fp),d0
mov (REG_A0,fp),a0 mov (REG_A0,fp),a0
calls (a0) calls (a0)
GET_THREAD_INFO a2 # A2 must be set on return from sys_exit()
clr d0 clr d0
mov d0,(REG_D0,fp) mov d0,(REG_D0,fp)
jmp syscall_exit jmp syscall_exit
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册