Commit e72b0475 authored by Hyok S. Choi's avatar Hyok S. Choi Committed by Russell King

[ARM] start_thread fixup for nommu mode

This patch supports start_thread in nommu mode which requires the
base index register.
Signed-off-by: default avatarHyok S. Choi <hyok.choi@samsung.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 946d4935
...@@ -49,6 +49,12 @@ struct thread_struct { ...@@ -49,6 +49,12 @@ struct thread_struct {
#define INIT_THREAD { } #define INIT_THREAD { }
#ifdef CONFIG_MMU
#define nommu_start_thread(regs) do { } while (0)
#else
#define nommu_start_thread(regs) regs->ARM_r10 = current->mm->start_data
#endif
#define start_thread(regs,pc,sp) \ #define start_thread(regs,pc,sp) \
({ \ ({ \
unsigned long *stack = (unsigned long *)sp; \ unsigned long *stack = (unsigned long *)sp; \
...@@ -65,6 +71,7 @@ struct thread_struct { ...@@ -65,6 +71,7 @@ struct thread_struct {
regs->ARM_r2 = stack[2]; /* r2 (envp) */ \ regs->ARM_r2 = stack[2]; /* r2 (envp) */ \
regs->ARM_r1 = stack[1]; /* r1 (argv) */ \ regs->ARM_r1 = stack[1]; /* r1 (argv) */ \
regs->ARM_r0 = stack[0]; /* r0 (argc) */ \ regs->ARM_r0 = stack[0]; /* r0 (argc) */ \
nommu_start_thread(regs); \
}) })
/* Forward declaration, a strange C thing */ /* Forward declaration, a strange C thing */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment