Re: [PATCH 4/5 v3] ftrace/x86_32: Clean up ftrace_regs_caller

From: Steven Rostedt
Date: Thu Mar 16 2017 - 15:26:14 EST


On Thu, 16 Mar 2017 15:19:32 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
>
> The thing is we don't return, we jump to the location that may be
> modified to run the function graph tracer.

That said, maybe the below is better?

/* restore flags */
pushl 14*4(%esp)
popf

/* Move return ip back to its original location */
movl 12*4(%esp), %eax
movl %eax, 14*4(%esp)

popl %ebx
popl %ecx
popl %edx
popl %esi
popl %edi
popl %ebp
popl %eax
popl %ds
popl %es
popl %fs
popl %gs

/* use lea to not affect flags */
lea (3*4)%esp, %esp /* Skip orig_ax, ip and flags */

jmp .Lftrace_ret

-- Steve