···331331 l %r12,__LC_THREAD_INFO332332 l %r13,__LC_SVC_NEW_PSW+4333333 tm __PT_PSW+1(%r11),0x01 # forking a kernel thread ?334334- jo 0f335335- st %r15,__PT_R15(%r11) # store stack pointer for new kthread336336-0: l %r1,BASED(.Lschedule_tail)334334+ je 1f335335+ l %r1,BASED(.Lschedule_tail)337336 basr %r14,%r1 # call schedule_tail338337 TRACE_IRQS_ON339338 ssm __LC_SVC_NEW_PSW # reenable interrupts340339 j sysc_tracenogo340340+341341+1: # it's a kernel thread342342+ st %r15,__PT_R15(%r11) # store stack pointer for new kthread343343+ l %r1,BASED(.Lschedule_tail)344344+ basr %r14,%r1 # call schedule_tail345345+ TRACE_IRQS_ON346346+ ssm __LC_SVC_NEW_PSW # reenable interrupts347347+ lm %r9,%r11,__PT_R9(%r11) # load gprs348348+ENTRY(kernel_thread_starter)349349+ la %r2,0(%r10)350350+ basr %r14,%r9351351+ la %r2,0352352+ br %r11 # do_exit341353342354#343355# kernel_execve function needs to deal with pt_regs that is not
+13-3
arch/s390/kernel/entry64.S
···352352 la %r11,STACK_FRAME_OVERHEAD(%r15)353353 lg %r12,__LC_THREAD_INFO354354 tm __PT_PSW+1(%r11),0x01 # forking a kernel thread ?355355- jo 0f356356- stg %r15,__PT_R15(%r11) # store stack pointer for new kthread357357-0: brasl %r14,schedule_tail355355+ je 1f356356+ brasl %r14,schedule_tail358357 TRACE_IRQS_ON359358 ssm __LC_SVC_NEW_PSW # reenable interrupts360359 j sysc_tracenogo360360+1: # it's a kernel thread361361+ stg %r15,__PT_R15(%r11) # store stack pointer for new kthread362362+ brasl %r14,schedule_tail363363+ TRACE_IRQS_ON364364+ ssm __LC_SVC_NEW_PSW # reenable interrupts365365+ lmg %r9,%r11,__PT_R9(%r11) # load gprs366366+ENTRY(kernel_thread_starter)367367+ la %r2,0(%r10)368368+ basr %r14,%r9369369+ la %r2,0370370+ br %r11 # do_exit361371362372#363373# kernel_execve function needs to deal with pt_regs that is not