Re: [PATCH for review] [127/145] i386: move kernel_thread_helper into entry.S

Jan Beulich
2006-08-11T09:48:12Z

>> And this too - the value now in %eax has no relation with the
>> value known by the caller of this routine (which doesn't expect
>> any return from here anyway).
>
>Ok, but somehow it needs to be annotiated so that the unwinder stops
>and doesn't fall back. Can you please send a replacement patch that
>does this correctly?

I would do it this way (untested):

ENTRY(kernel_thread_helper)
CFI_STARTPROC
movl %edx,%eax
pushl %edx
CFI_ADJUST_CFA_OFFSET 4
call *%ebx
pushl %eax
CFI_ADJUST_CFA_OFFSET 4
call do_exit
CFI_ENDPROC
ENDPROC(kernel_thread_helper)

(i.e. tracking the stack pointer movement, but not the register values
other than the return address)

Jan