diff options
Diffstat (limited to 'include/asm-arm/processor.h')
| -rw-r--r-- | include/asm-arm/processor.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/asm-arm/processor.h b/include/asm-arm/processor.h index 31290694648b..04f4d34c6317 100644 --- a/include/asm-arm/processor.h +++ b/include/asm-arm/processor.h | |||
| @@ -49,6 +49,12 @@ struct thread_struct { | |||
| 49 | 49 | ||
| 50 | #define INIT_THREAD { } | 50 | #define INIT_THREAD { } |
| 51 | 51 | ||
| 52 | #ifdef CONFIG_MMU | ||
| 53 | #define nommu_start_thread(regs) do { } while (0) | ||
| 54 | #else | ||
| 55 | #define nommu_start_thread(regs) regs->ARM_r10 = current->mm->start_data | ||
| 56 | #endif | ||
| 57 | |||
| 52 | #define start_thread(regs,pc,sp) \ | 58 | #define start_thread(regs,pc,sp) \ |
| 53 | ({ \ | 59 | ({ \ |
| 54 | unsigned long *stack = (unsigned long *)sp; \ | 60 | unsigned long *stack = (unsigned long *)sp; \ |
| @@ -65,6 +71,7 @@ struct thread_struct { | |||
| 65 | regs->ARM_r2 = stack[2]; /* r2 (envp) */ \ | 71 | regs->ARM_r2 = stack[2]; /* r2 (envp) */ \ |
| 66 | regs->ARM_r1 = stack[1]; /* r1 (argv) */ \ | 72 | regs->ARM_r1 = stack[1]; /* r1 (argv) */ \ |
| 67 | regs->ARM_r0 = stack[0]; /* r0 (argc) */ \ | 73 | regs->ARM_r0 = stack[0]; /* r0 (argc) */ \ |
| 74 | nommu_start_thread(regs); \ | ||
| 68 | }) | 75 | }) |
| 69 | 76 | ||
| 70 | /* Forward declaration, a strange C thing */ | 77 | /* Forward declaration, a strange C thing */ |
