Loading arch/c6x/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ config C6X select OF select OF_EARLY_FLATTREE select GENERIC_CLOCKEVENTS select GENERIC_KERNEL_THREAD config MMU def_bool n Loading arch/c6x/include/asm/processor.h +0 −2 Original line number Diff line number Diff line Loading @@ -92,8 +92,6 @@ static inline void release_thread(struct task_struct *dead_task) { } extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); #define copy_segments(tsk, mm) do { } while (0) #define release_segments(mm) do { } while (0) Loading arch/c6x/kernel/process.c +5 −19 Original line number Diff line number Diff line Loading @@ -104,22 +104,6 @@ void machine_power_off(void) halt_loop(); } /* * Create a kernel thread */ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) { struct pt_regs regs = { .a0 = (unsigned long)fn, .a1 = (unsigned long)arg, .tsr = 0, /* kernel mode */ }; /* Ok, create the new process.. */ return do_fork(flags | CLONE_VM | CLONE_UNTRACED, -1, ®s, 0, NULL, NULL); } void flush_thread(void) { } Loading Loading @@ -177,14 +161,16 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, childregs = task_pt_regs(p); *childregs = *regs; if (usp == -1) { if (!regs) { /* case of __kernel_thread: we return to supervisor space */ memset(childregs, 0, sizeof(struct pt_regs)); childregs->sp = (unsigned long)(childregs + 1); p->thread.pc = (unsigned long) ret_from_kernel_thread; childregs->a0 = usp; /* function */ childregs->a1 = ustk_size; /* argument */ } else { /* Otherwise use the given stack */ *childregs = *regs; childregs->sp = usp; p->thread.pc = (unsigned long) ret_from_fork; } Loading Loading
arch/c6x/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ config C6X select OF select OF_EARLY_FLATTREE select GENERIC_CLOCKEVENTS select GENERIC_KERNEL_THREAD config MMU def_bool n Loading
arch/c6x/include/asm/processor.h +0 −2 Original line number Diff line number Diff line Loading @@ -92,8 +92,6 @@ static inline void release_thread(struct task_struct *dead_task) { } extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); #define copy_segments(tsk, mm) do { } while (0) #define release_segments(mm) do { } while (0) Loading
arch/c6x/kernel/process.c +5 −19 Original line number Diff line number Diff line Loading @@ -104,22 +104,6 @@ void machine_power_off(void) halt_loop(); } /* * Create a kernel thread */ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) { struct pt_regs regs = { .a0 = (unsigned long)fn, .a1 = (unsigned long)arg, .tsr = 0, /* kernel mode */ }; /* Ok, create the new process.. */ return do_fork(flags | CLONE_VM | CLONE_UNTRACED, -1, ®s, 0, NULL, NULL); } void flush_thread(void) { } Loading Loading @@ -177,14 +161,16 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, childregs = task_pt_regs(p); *childregs = *regs; if (usp == -1) { if (!regs) { /* case of __kernel_thread: we return to supervisor space */ memset(childregs, 0, sizeof(struct pt_regs)); childregs->sp = (unsigned long)(childregs + 1); p->thread.pc = (unsigned long) ret_from_kernel_thread; childregs->a0 = usp; /* function */ childregs->a1 = ustk_size; /* argument */ } else { /* Otherwise use the given stack */ *childregs = *regs; childregs->sp = usp; p->thread.pc = (unsigned long) ret_from_fork; } Loading