|
@@ -49,6 +49,12 @@ struct thread_struct {
|
|
|
|
|
|
#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) \
|
|
|
({ \
|
|
|
unsigned long *stack = (unsigned long *)sp; \
|
|
@@ -65,6 +71,7 @@ struct thread_struct {
|
|
|
regs->ARM_r2 = stack[2]; /* r2 (envp) */ \
|
|
|
regs->ARM_r1 = stack[1]; /* r1 (argv) */ \
|
|
|
regs->ARM_r0 = stack[0]; /* r0 (argc) */ \
|
|
|
+ nommu_start_thread(regs); \
|
|
|
})
|
|
|
|
|
|
/* Forward declaration, a strange C thing */
|