Loading arch/powerpc/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ config PPC select GENERIC_CLOCKEVENTS select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER select GENERIC_KERNEL_THREAD config EARLY_PRINTK bool Loading arch/powerpc/include/asm/processor.h +0 −3 Original line number Diff line number Diff line Loading @@ -74,9 +74,6 @@ struct task_struct; void start_thread(struct pt_regs *regs, unsigned long fdptr, unsigned long sp); void release_thread(struct task_struct *); /* Create a new kernel thread. */ extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); /* Lazy FPU handling on uni-processor */ extern struct task_struct *last_task_used_math; extern struct task_struct *last_task_used_altivec; Loading arch/powerpc/kernel/entry_32.S +11 −0 Original line number Diff line number Diff line Loading @@ -435,6 +435,17 @@ ret_from_fork: li r3,0 b ret_from_syscall .globl ret_from_kernel_thread ret_from_kernel_thread: REST_NVGPRS(r1) bl schedule_tail mtlr r14 mr r3,r15 PPC440EP_ERR42 blrl li r3,0 b do_exit # no return /* Traced system call support */ syscall_dotrace: SAVE_NVGPRS(r1) Loading arch/powerpc/kernel/entry_64.S +10 −0 Original line number Diff line number Diff line Loading @@ -370,6 +370,16 @@ _GLOBAL(ret_from_fork) li r3,0 b syscall_exit _GLOBAL(ret_from_kernel_thread) bl .schedule_tail REST_NVGPRS(r1) REST_GPR(2,r1) mtlr r14 mr r3,r15 blrl li r3,0 b .do_exit # no return .section ".toc","aw" DSCR_DEFAULT: .tc dscr_default[TC],dscr_default Loading arch/powerpc/kernel/misc_32.S +0 −33 Original line number Diff line number Diff line Loading @@ -663,39 +663,6 @@ _GLOBAL(abs) sub r3,r3,r4 blr /* * Create a kernel thread * kernel_thread(fn, arg, flags) */ _GLOBAL(kernel_thread) stwu r1,-16(r1) stw r30,8(r1) stw r31,12(r1) mr r30,r3 /* function */ mr r31,r4 /* argument */ ori r3,r5,CLONE_VM /* flags */ oris r3,r3,CLONE_UNTRACED>>16 li r4,0 /* new sp (unused) */ li r0,__NR_clone sc bns+ 1f /* did system call indicate error? */ neg r3,r3 /* if so, make return code negative */ 1: cmpwi 0,r3,0 /* parent or child? */ bne 2f /* return if parent */ li r0,0 /* make top-level stack frame */ stwu r0,-16(r1) mtlr r30 /* fn addr in lr */ mr r3,r31 /* load arg and call fn */ PPC440EP_ERR42 blrl li r0,__NR_exit /* exit if function returns */ li r3,0 sc 2: lwz r30,8(r1) lwz r31,12(r1) addi r1,r1,16 blr #ifdef CONFIG_SMP _GLOBAL(start_secondary_resume) /* Reset stack */ Loading Loading
arch/powerpc/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,7 @@ config PPC select GENERIC_CLOCKEVENTS select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER select GENERIC_KERNEL_THREAD config EARLY_PRINTK bool Loading
arch/powerpc/include/asm/processor.h +0 −3 Original line number Diff line number Diff line Loading @@ -74,9 +74,6 @@ struct task_struct; void start_thread(struct pt_regs *regs, unsigned long fdptr, unsigned long sp); void release_thread(struct task_struct *); /* Create a new kernel thread. */ extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); /* Lazy FPU handling on uni-processor */ extern struct task_struct *last_task_used_math; extern struct task_struct *last_task_used_altivec; Loading
arch/powerpc/kernel/entry_32.S +11 −0 Original line number Diff line number Diff line Loading @@ -435,6 +435,17 @@ ret_from_fork: li r3,0 b ret_from_syscall .globl ret_from_kernel_thread ret_from_kernel_thread: REST_NVGPRS(r1) bl schedule_tail mtlr r14 mr r3,r15 PPC440EP_ERR42 blrl li r3,0 b do_exit # no return /* Traced system call support */ syscall_dotrace: SAVE_NVGPRS(r1) Loading
arch/powerpc/kernel/entry_64.S +10 −0 Original line number Diff line number Diff line Loading @@ -370,6 +370,16 @@ _GLOBAL(ret_from_fork) li r3,0 b syscall_exit _GLOBAL(ret_from_kernel_thread) bl .schedule_tail REST_NVGPRS(r1) REST_GPR(2,r1) mtlr r14 mr r3,r15 blrl li r3,0 b .do_exit # no return .section ".toc","aw" DSCR_DEFAULT: .tc dscr_default[TC],dscr_default Loading
arch/powerpc/kernel/misc_32.S +0 −33 Original line number Diff line number Diff line Loading @@ -663,39 +663,6 @@ _GLOBAL(abs) sub r3,r3,r4 blr /* * Create a kernel thread * kernel_thread(fn, arg, flags) */ _GLOBAL(kernel_thread) stwu r1,-16(r1) stw r30,8(r1) stw r31,12(r1) mr r30,r3 /* function */ mr r31,r4 /* argument */ ori r3,r5,CLONE_VM /* flags */ oris r3,r3,CLONE_UNTRACED>>16 li r4,0 /* new sp (unused) */ li r0,__NR_clone sc bns+ 1f /* did system call indicate error? */ neg r3,r3 /* if so, make return code negative */ 1: cmpwi 0,r3,0 /* parent or child? */ bne 2f /* return if parent */ li r0,0 /* make top-level stack frame */ stwu r0,-16(r1) mtlr r30 /* fn addr in lr */ mr r3,r31 /* load arg and call fn */ PPC440EP_ERR42 blrl li r0,__NR_exit /* exit if function returns */ li r3,0 sc 2: lwz r30,8(r1) lwz r31,12(r1) addi r1,r1,16 blr #ifdef CONFIG_SMP _GLOBAL(start_secondary_resume) /* Reset stack */ Loading