Messages in this thread | | | Date | Mon, 20 Oct 2008 11:23:24 +0200 | From | Cedric Le Goater <> | Subject | Re: [PATCH 08/10] Introduce functions to restart a process |
| |
Hello Andrey !
> diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S > index 109792b..a4848a3 100644 > --- a/arch/x86/kernel/entry_32.S > +++ b/arch/x86/kernel/entry_32.S > @@ -225,6 +225,7 @@ ENTRY(ret_from_fork) > GET_THREAD_INFO(%ebp) > popl %eax > CFI_ADJUST_CFA_OFFSET -4 > +ret_from_fork_tail: > pushl $0x0202 # Reset kernel eflags > CFI_ADJUST_CFA_OFFSET 4 > popfl > @@ -233,6 +234,26 @@ ENTRY(ret_from_fork) > CFI_ENDPROC > END(ret_from_fork) > > +ENTRY(i386_ret_from_resume) > + CFI_STARTPROC > + pushl %eax > + CFI_ADJUST_CFA_OFFSET 4 > + call schedule_tail > + GET_THREAD_INFO(%ebp) > + popl %eax > + CFI_ADJUST_CFA_OFFSET -4 > + movl (%esp), %eax > + testl %eax, %eax > + jz 1f > + pushl %esp > + call *%eax > + addl $4, %esp > +1: > + addl $256, %esp > + jmp ret_from_fork_tail > + CFI_ENDPROC > +END(i386_ret_from_resume)
Could you explain why you need to do this
call *%eax
is it related to the freezer code ?
C.
| |